summaryrefslogtreecommitdiffstats
path: root/generic/tclTest.c
diff options
context:
space:
mode:
authorjan.nijtmans <nijtmans@users.sourceforge.net>2012-07-30 11:42:26 (GMT)
committerjan.nijtmans <nijtmans@users.sourceforge.net>2012-07-30 11:42:26 (GMT)
commit6f401c3e624c251bbe6f116a38dc1ac035318c29 (patch)
tree08e02dbbddc23846aa5be3fe6762094338d356cb /generic/tclTest.c
parent4409afbad7d1d65061c9ae270c3cd589c7230ebb (diff)
downloadtcl-6f401c3e624c251bbe6f116a38dc1ac035318c29.zip
tcl-6f401c3e624c251bbe6f116a38dc1ac035318c29.tar.gz
tcl-6f401c3e624c251bbe6f116a38dc1ac035318c29.tar.bz2
Fix various test when run outside of the build environment [3549770]
Diffstat (limited to 'generic/tclTest.c')
-rw-r--r--generic/tclTest.c16
1 files changed, 14 insertions, 2 deletions
diff --git a/generic/tclTest.c b/generic/tclTest.c
index bf75a0f..680e360 100644
--- a/generic/tclTest.c
+++ b/generic/tclTest.c
@@ -313,11 +313,13 @@ static int TestexitmainloopCmd(ClientData dummy,
Tcl_Interp *interp, int argc, const char **argv);
static int TestpanicCmd(ClientData dummy,
Tcl_Interp *interp, int argc, const char **argv);
+#ifndef _WIN32
static int TestfinexitObjCmd(ClientData dummy,
Tcl_Interp *interp, int objc,
Tcl_Obj *const objv[]);
-static int TestparseargsCmd(ClientData dummy, Tcl_Interp *interp,
- int objc, Tcl_Obj *const objv[]);
+#endif /* _WIN32 */
+static int TestparseargsCmd(ClientData dummy, Tcl_Interp *interp,
+ int objc, Tcl_Obj *const objv[]);
static int TestparserObjCmd(ClientData dummy,
Tcl_Interp *interp, int objc,
Tcl_Obj *const objv[]);
@@ -638,7 +640,9 @@ Tcltest_Init(
Tcl_CreateObjCommand(interp, "testlocale", TestlocaleCmd, NULL,
NULL);
Tcl_CreateCommand(interp, "testpanic", TestpanicCmd, NULL, NULL);
+#ifndef _WIN32
Tcl_CreateObjCommand(interp, "testfinexit", TestfinexitObjCmd, NULL, NULL);
+#endif /* _WIN32 */
Tcl_CreateObjCommand(interp, "testparseargs", TestparseargsCmd,NULL,NULL);
Tcl_CreateObjCommand(interp, "testparser", TestparserObjCmd,
NULL, NULL);
@@ -4559,6 +4563,11 @@ TestpanicCmd(
*
* Calls a variant of [exit] including the full finalization path.
*
+ * On Win32, the test suite is run with all Tcltest funcions in a dll,
+ * but TclpExit cannot be called from inside a dynamically loaded dll.
+ * It would mean that the dll is terminated, while there is still a
+ * function on the stack which belong to the dll.
+ *
* Results:
* Error, or doesn't return.
*
@@ -4568,6 +4577,7 @@ TestpanicCmd(
*----------------------------------------------------------------------
*/
+#ifndef _WIN32
static int
TestfinexitObjCmd(
ClientData dummy, /* Not used. */
@@ -4592,6 +4602,8 @@ TestfinexitObjCmd(
/*NOTREACHED*/
return TCL_ERROR; /* Better not ever reach this! */
}
+#endif /* _WIN32 */
+
static int
TestfileCmd(