diff options
| author | pooryorick <com.digitalsmarties@pooryorick.com> | 2018-06-21 22:21:31 (GMT) |
|---|---|---|
| committer | pooryorick <com.digitalsmarties@pooryorick.com> | 2018-06-21 22:21:31 (GMT) |
| commit | 56ca35e8a95b8cfaac73104d3699c2b901298a2d (patch) | |
| tree | 14e05bfc1dadc4a05b0c9c77297092eda6333b09 /generic/tclTest.c | |
| parent | 107fb1eb331d7f346dfbdf5e7655a28f4643899c (diff) | |
| download | tcl-56ca35e8a95b8cfaac73104d3699c2b901298a2d.zip tcl-56ca35e8a95b8cfaac73104d3699c2b901298a2d.tar.gz tcl-56ca35e8a95b8cfaac73104d3699c2b901298a2d.tar.bz2 | |
Add custom exit procedure for tcltests executable.
Diffstat (limited to 'generic/tclTest.c')
| -rw-r--r-- | generic/tclTest.c | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/generic/tclTest.c b/generic/tclTest.c index 45cca5a..952f384 100644 --- a/generic/tclTest.c +++ b/generic/tclTest.c @@ -52,6 +52,7 @@ #define TCL_STORAGE_CLASS DLLEXPORT EXTERN int Tcltest_Init(Tcl_Interp *interp); EXTERN int Tcltest_SafeInit(Tcl_Interp *interp); +EXTERN TCL_NORETURN void Tcltest_Exit(ClientData clientData); /* * Dynamic string shared by TestdcallCmd and DelCallbackProc; used to collect @@ -563,6 +564,10 @@ Tcltest_Init( return TCL_ERROR; } + + /* Finalizer */ + Tcl_SetExitProc(Tcltest_Exit); + /* * Create additional commands and math functions for testing Tcl. */ @@ -790,6 +795,17 @@ Tcltest_SafeInit( return Procbodytest_SafeInit(interp); } +TCL_NORETURN void Tcltest_Exit( + ClientData clientData +) { + int status = PTR2INT(clientData); + Tcl_Finalize(); + TclThreadTestFinalize(); + TclpExit(status); + Tcl_Panic("OS exit failed!"); +} + + /* *---------------------------------------------------------------------- * |
