summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--generic/tclEnsemble.c29
-rw-r--r--library/manifest.txt2
-rw-r--r--library/tcltest/pkgIndex.tcl2
-rw-r--r--library/tcltest/tcltest.tcl14
-rw-r--r--tests/chanio.test2
-rw-r--r--tests/fileSystem.test18
-rw-r--r--tests/io.test2
-rw-r--r--tests/winFCmd.test4
-rw-r--r--unix/Makefile.in4
-rw-r--r--win/Makefile.in4
10 files changed, 50 insertions, 31 deletions
diff --git a/generic/tclEnsemble.c b/generic/tclEnsemble.c
index ad6ced3..051eb7f 100644
--- a/generic/tclEnsemble.c
+++ b/generic/tclEnsemble.c
@@ -330,7 +330,7 @@ TclNamespaceEnsembleCmd(
}
continue;
}
- case CRT_PREFIX:
+ case CRT_PREFIX: {
if (Tcl_GetBooleanFromObj(interp, objv[1],
&permitPrefix) != TCL_OK) {
if (allocatedMapFlag) {
@@ -339,6 +339,7 @@ TclNamespaceEnsembleCmd(
return TCL_ERROR;
}
continue;
+ }
case CRT_UNKNOWN:
if (TclListObjLength(interp, objv[1], &len) != TCL_OK) {
if (allocatedMapFlag) {
@@ -2934,14 +2935,14 @@ TclCompileEnsemble(
TclNewObj(replaced);
Tcl_IncrRefCount(replaced);
if (parsePtr->numWords <= depth) {
- goto failed;
+ goto tryCompileToInv;
}
if (tokenPtr->type != TCL_TOKEN_SIMPLE_WORD) {
/*
* Too hard.
*/
- goto failed;
+ goto tryCompileToInv;
}
/*
@@ -2966,7 +2967,7 @@ TclCompileEnsemble(
* to proceed.
*/
- goto failed;
+ goto tryCompileToInv;
}
/*
@@ -2980,7 +2981,7 @@ TclCompileEnsemble(
* Figuring out how to compile this has become too much. Bail out.
*/
- goto failed;
+ goto tryCompileToInv;
}
/*
@@ -3003,7 +3004,7 @@ TclCompileEnsemble(
Tcl_Obj *matchObj = NULL;
if (TclListObjGetElements(NULL, listObj, &len, &elems) != TCL_OK) {
- goto failed;
+ goto tryCompileToInv;
}
for (i=0 ; i<len ; i++) {
str = Tcl_GetStringFromObj(elems[i], &sclen);
@@ -3014,7 +3015,7 @@ TclCompileEnsemble(
result = Tcl_DictObjGet(NULL, mapObj,elems[i], &targetCmdObj);
if (result != TCL_OK || targetCmdObj == NULL) {
- goto failed;
+ goto tryCompileToInv;
}
replacement = elems[i];
goto doneMapLookup;
@@ -3032,17 +3033,17 @@ TclCompileEnsemble(
if ((flags & TCL_ENSEMBLE_PREFIX)
&& strncmp(word, str, numBytes) == 0) {
if (matchObj != NULL) {
- goto failed;
+ goto tryCompileToInv;
}
matchObj = elems[i];
}
}
if (matchObj == NULL) {
- goto failed;
+ goto tryCompileToInv;
}
result = Tcl_DictObjGet(NULL, mapObj, matchObj, &targetCmdObj);
if (result != TCL_OK || targetCmdObj == NULL) {
- goto failed;
+ goto tryCompileToInv;
}
replacement = matchObj;
} else {
@@ -3072,7 +3073,7 @@ TclCompileEnsemble(
*/
if (!(flags & TCL_ENSEMBLE_PREFIX)) {
- goto failed;
+ goto tryCompileToInv;
}
/*
@@ -3107,7 +3108,7 @@ TclCompileEnsemble(
if (matched != 1) {
invokeAnyway = 1;
- goto failed;
+ goto tryCompileToInv;
}
}
@@ -3123,7 +3124,7 @@ TclCompileEnsemble(
doneMapLookup:
Tcl_ListObjAppendElement(NULL, replaced, replacement);
if (TclListObjGetElements(NULL, targetCmdObj, &len, &elems) != TCL_OK) {
- goto failed;
+ goto tryCompileToInv;
} else if (len != 1) {
/*
* Note that at this point we know we can't issue any special
@@ -3211,7 +3212,7 @@ TclCompileEnsemble(
* instead of going through the ensemble lookup process again.
*/
- failed:
+ tryCompileToInv:
if (depth < 250) {
if (depth > 1) {
if (!invokeAnyway) {
diff --git a/library/manifest.txt b/library/manifest.txt
index 4634852..ab8bb15 100644
--- a/library/manifest.txt
+++ b/library/manifest.txt
@@ -11,7 +11,7 @@ apply {{dir} {
0 tcl::idna 1.0.1 {cookiejar idna.tcl}
0 platform 1.0.19 {platform platform.tcl}
0 platform::shell 1.1.4 {platform shell.tcl}
- 1 tcltest 2.5.7 {tcltest tcltest.tcl}
+ 1 tcltest 2.5.8 {tcltest tcltest.tcl}
} {
if {$isafe && !$safe} continue
package ifneeded $package $version [list source [file join $dir {*}$file]]
diff --git a/library/tcltest/pkgIndex.tcl b/library/tcltest/pkgIndex.tcl
index 1e6023b..2fff5f4 100644
--- a/library/tcltest/pkgIndex.tcl
+++ b/library/tcltest/pkgIndex.tcl
@@ -9,4 +9,4 @@
# full path name of this file's directory.
if {![package vsatisfies [package provide Tcl] 8.5-]} {return}
-package ifneeded tcltest 2.5.7 [list source [file join $dir tcltest.tcl]]
+package ifneeded tcltest 2.5.8 [list source [file join $dir tcltest.tcl]]
diff --git a/library/tcltest/tcltest.tcl b/library/tcltest/tcltest.tcl
index d5bb7fe..12b0976 100644
--- a/library/tcltest/tcltest.tcl
+++ b/library/tcltest/tcltest.tcl
@@ -21,7 +21,7 @@ namespace eval tcltest {
# When the version number changes, be sure to update the pkgIndex.tcl file,
# and the install directory in the Makefiles. When the minor version
# changes (new feature) be sure to update the man page as well.
- variable Version 2.5.7
+ variable Version 2.5.8
# Compatibility support for dumb variables defined in tcltest 1
# Do not use these. Call [package require] and [info patchlevel]
@@ -1282,19 +1282,23 @@ proc tcltest::DefineConstraintInitializers {} {
# Skip empty tests
- ConstraintInitializer emptyTest {format 0}
+ ConstraintInitializer emptyTest {expr 0}
# By default, tests that expose known bugs are skipped.
- ConstraintInitializer knownBug {format 0}
+ ConstraintInitializer knownBug {expr 0}
# By default, non-portable tests are skipped.
- ConstraintInitializer nonPortable {format 0}
+ ConstraintInitializer nonPortable {expr 0}
+
+ # By default, extremely slow, extensive or IO-aggressive tests are skipped.
+
+ ConstraintInitializer extensive {expr 0}
# Some tests require user interaction.
- ConstraintInitializer userInteraction {format 0}
+ ConstraintInitializer userInteraction {expr 0}
# Some tests must be skipped if the interpreter is not in
# interactive mode
diff --git a/tests/chanio.test b/tests/chanio.test
index 69f9690..6173d0d 100644
--- a/tests/chanio.test
+++ b/tests/chanio.test
@@ -4535,7 +4535,7 @@ test chan-io-34.20 {Tcl_Tell combined with writing} -setup {
test chan-io-34.21 {Tcl_Seek and Tcl_Tell on large files} -setup {
file delete $path(test3)
set l ""
-} -constraints {largefileSupport} -body {
+} -constraints {largefileSupport extensive} -body {
set f [open $path(test3) w]
chan configure $f -encoding binary
lappend l [chan tell $f]
diff --git a/tests/fileSystem.test b/tests/fileSystem.test
index 5f841b5..a6238c2 100644
--- a/tests/fileSystem.test
+++ b/tests/fileSystem.test
@@ -577,7 +577,14 @@ test filesystem-7.1.1 {load from vfs} -setup {
set dir [pwd]
} -constraints {win testsimplefilesystem loaddll} -body {
# This may cause a crash on exit
- cd [file dirname $::ddelib]
+ if {[file dirname $::ddelib] ne "."} {
+ cd [file dirname $::ddelib]
+ } else {
+ cd [file dirname [info nameofexecutable]]
+ }
+ if {![file exists [file tail $::ddelib]]} {
+ ::tcltest::Skip "no-ddelib"
+ }
testsimplefilesystem 1
# This loads dde via a complex copy-to-temp operation
load simplefs:/[file tail $::ddelib] Dde
@@ -591,7 +598,14 @@ test filesystem-7.1.2 {load from vfs, and then unload again} -setup {
set dir [pwd]
} -constraints {win testsimplefilesystem loaddll} -body {
# This may cause a crash on exit
- cd [file dirname $::reglib]
+ if {[file dirname $::reglib] ne "."} {
+ cd [file dirname $::reglib]
+ } else {
+ cd [file dirname [info nameofexecutable]]
+ }
+ if {![file exists [file tail $::reglib]]} {
+ ::tcltest::Skip "no-reglib"
+ }
testsimplefilesystem 1
# This loads reg via a complex copy-to-temp operation
load simplefs:/[file tail $::reglib] Registry
diff --git a/tests/io.test b/tests/io.test
index 86a871b..5c0e5aa 100644
--- a/tests/io.test
+++ b/tests/io.test
@@ -4996,7 +4996,7 @@ test io-34.20 {Tcl_Tell combined with writing} {
close $f
set l
} {29 39 40 447}
-test io-34.21 {Tcl_Seek and Tcl_Tell on large files} {largefileSupport} {
+test io-34.21 {Tcl_Seek and Tcl_Tell on large files} {largefileSupport extensive} {
file delete $path(test3)
set f [open $path(test3) w]
fconfigure $f -encoding binary
diff --git a/tests/winFCmd.test b/tests/winFCmd.test
index ac5ae4e..69a3612 100644
--- a/tests/winFCmd.test
+++ b/tests/winFCmd.test
@@ -367,7 +367,7 @@ proc MakeFiles {dirname} {
while {1} {
# upped to 50K for 64bit Server 2008
if {$ndx > 50000} {
- return -code error "limit reached without finding a collistion."
+ tcltest::Skip "limit-reached:no-collistion"
}
set filename [file join $dirname Test[incr ndx]]
set f [open $filename w]
@@ -383,7 +383,7 @@ proc MakeFiles {dirname} {
test winFCmd-1.38 {TclpRenameFile: check rename of conflicting inodes} -setup {
cleanup
-} -constraints {win winNonZeroInodes knownMsvcBug notInCIenv} -body {
+} -constraints {win winNonZeroInodes knownMsvcBug notInCIenv extensive} -body {
file mkdir td1
lassign [MakeFiles td1] a b
file rename -force $a $b
diff --git a/unix/Makefile.in b/unix/Makefile.in
index a4bb907..eed8d91 100644
--- a/unix/Makefile.in
+++ b/unix/Makefile.in
@@ -1086,9 +1086,9 @@ install-libraries: libraries
@echo "Installing package msgcat 1.7.1 as a Tcl Module"
@$(INSTALL_DATA) $(TOP_DIR)/library/msgcat/msgcat.tcl \
"$(MODULE_INSTALL_DIR)/9.0/msgcat-1.7.1.tm"
- @echo "Installing package tcltest 2.5.7 as a Tcl Module"
+ @echo "Installing package tcltest 2.5.8 as a Tcl Module"
@$(INSTALL_DATA) $(TOP_DIR)/library/tcltest/tcltest.tcl \
- "$(MODULE_INSTALL_DIR)/9.0/tcltest-2.5.7.tm"
+ "$(MODULE_INSTALL_DIR)/9.0/tcltest-2.5.8.tm"
@echo "Installing package platform 1.0.19 as a Tcl Module"
@$(INSTALL_DATA) $(TOP_DIR)/library/platform/platform.tcl \
"$(MODULE_INSTALL_DIR)/9.0/platform-1.0.19.tm"
diff --git a/win/Makefile.in b/win/Makefile.in
index 0cb111c..625d9e7 100644
--- a/win/Makefile.in
+++ b/win/Makefile.in
@@ -935,8 +935,8 @@ install-libraries: libraries install-tzdata install-msgs
done;
@echo "Installing package msgcat 1.7.1 as a Tcl Module";
@$(COPY) $(ROOT_DIR)/library/msgcat/msgcat.tcl "$(MODULE_INSTALL_DIR)/9.0/msgcat-1.7.1.tm";
- @echo "Installing package tcltest 2.5.7 as a Tcl Module";
- @$(COPY) $(ROOT_DIR)/library/tcltest/tcltest.tcl "$(MODULE_INSTALL_DIR)/9.0/tcltest-2.5.7.tm";
+ @echo "Installing package tcltest 2.5.8 as a Tcl Module";
+ @$(COPY) $(ROOT_DIR)/library/tcltest/tcltest.tcl "$(MODULE_INSTALL_DIR)/9.0/tcltest-2.5.8.tm";
@echo "Installing package platform 1.0.19 as a Tcl Module";
@$(COPY) $(ROOT_DIR)/library/platform/platform.tcl "$(MODULE_INSTALL_DIR)/9.0/platform-1.0.19.tm";
@echo "Installing package platform::shell 1.1.4 as a Tcl Module";