diff options
-rw-r--r-- | generic/tclEnsemble.c | 29 | ||||
-rw-r--r-- | library/manifest.txt | 2 | ||||
-rw-r--r-- | library/tcltest/pkgIndex.tcl | 2 | ||||
-rw-r--r-- | library/tcltest/tcltest.tcl | 14 | ||||
-rw-r--r-- | tests/chanio.test | 2 | ||||
-rw-r--r-- | tests/fileSystem.test | 18 | ||||
-rw-r--r-- | tests/io.test | 2 | ||||
-rw-r--r-- | tests/winFCmd.test | 4 | ||||
-rw-r--r-- | unix/Makefile.in | 4 | ||||
-rw-r--r-- | win/Makefile.in | 4 |
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"; |