Ticket UUID: | 549614 | |||
Title: | main.test fails with space in dir | |||
Type: | Bug | Version: | obsolete: 8.4a5 | |
Submitter: | kennykb | Created on: | 2002-04-27 22:34:50 | |
Subsystem: | 50. Embedding Support | Assigned To: | dgp | |
Priority: | 5 Medium | Severity: | ||
Status: | Closed | Last Modified: | 2002-05-08 13:00:59 | |
Resolution: | Fixed | Closed By: | dgp | |
Closed on: | 2002-05-08 06:00:59 | |||
Description: |
If [info nameof] contains a space character, several test cases in main.test fail. The fault is in the test suite and not the code under test. The attached patch fixes it. ==== Tcl_Main-1.1 Tcl_Main: startup script - normal FAILED ==== Contents of test case: read $f ---- Result was: can't read "f": no such variable ---- Result should have been (exact matching): script {} 0 ---- Test generated error; Return code was: 1 ---- Return code should have been one of: 0 2 ---- Test cleanup failed: can't read "f": no such variable ==== Tcl_Main-1.1 FAILED ==== Tcl_Main-1.2 Tcl_Main: startup script - can't begin with '-' FAILED ==== Contents of test case: puts $f {puts [list $argv0 $argv $tcl_interactive]; exit} flush $f read $f ---- Result was: can't read "f": no such variable ---- Result should have been (exact matching): {C:/Documents and Settings/kevin/My Documents/SourceForge/tcl/win/Release/tcltest.exe} -script 0 ---- Test generated error; Return code was: 1 ---- Return code should have been one of: 0 2 ---- Test cleanup failed: can't read "f": no such variable ==== Tcl_Main-1.2 FAILED ==== Tcl_Main-1.3 Tcl_Main: encoding of arguments: done by system encoding Note the shortcoming explained in Tcl Patch 491789 FAILED ==== Contents of test case: read $f ---- Result was: can't read "f": no such variable ---- Result should have been (exact matching): script À 0 ---- Test generated error; Return code was: 1 ---- Return code should have been one of: 0 2 ---- Test cleanup failed: can't read "f": no such variable ==== Tcl_Main-1.3 FAILED ==== Tcl_Main-1.4 Tcl_Main: encoding of arguments: done by system encoding Note the shortcoming explained in Tcl Patch 491789 FAILED ==== Contents of test case: read $f ---- Result was: can't read "f": no such variable ---- Result should have been (exact matching): script ? 0 ---- Test generated error; Return code was: 1 ---- Return code should have been one of: 0 2 ---- Test cleanup failed: can't read "f": no such variable ==== Tcl_Main-1.4 FAILED ==== Tcl_Main-1.5 Tcl_Main: encoding of script name: system encoding loss Note the shortcoming explained in Tcl Patch 491789 FAILED ==== Contents of test case: read $f ---- Result was: can't read "f": no such variable ---- Result should have been (exact matching): À {} 0 ---- Test generated error; Return code was: 1 ---- Return code should have been one of: 0 2 ---- Test cleanup failed: can't read "f": no such variable ==== Tcl_Main-1.5 FAILED ==== Tcl_Main-1.6 Tcl_Main: encoding of script name: system encoding loss Note the shortcoming explained in Tcl Patch 491789 FAILED ==== Contents of test case: read $f ---- Result was: can't read "f": no such variable ---- Result should have been (exact matching): ? {} 0 ---- Test generated error; Return code was: 1 ---- Return code should have been one of: 0 2 ---- Test cleanup failed: can't read "f": no such variable ==== Tcl_Main-1.6 FAILED ==== Tcl_Main-5.2 Tcl_Main able to handle non-blocking stdin FAILED ==== Contents of test case: type $f { fconfigure stdin -blocking 0 puts SUCCESS } list [catch {gets $f} line] $line ---- Result was: 1 {can not find channel named "filea21cc8"} ---- Result should have been (exact matching): 0 SUCCESS ---- Test cleanup failed: can not find channel named "filea21cc8" ==== Tcl_Main-5.2 FAILED ==== Tcl_Main-5.3 Tcl_Main handles stdin EOF in mid-command FAILED ==== Contents of test case: type $f "fconfigure stdin -eofchar \\032 if 1 \{\n\032" variable wait fileevent $f readable [list set [namespace which -variable wait] "child exit"] set id [after 2000 [list set [namespace which -variable wait] timeout]] vwait [namespace which -variable wait] after cancel $id set wait ---- Result was: can not find channel named "filea21cc8" ---- Result should have been (exact matching): child exit ---- Test generated error; Return code was: 1 ---- Return code should have been one of: 0 2 ---- Test cleanup failed: can't read "wait": no such variable ==== Tcl_Main-5.3 FAILED ==== Tcl_Main-5.4 Tcl_Main handles stdin EOF in mid-command FAILED ==== Contents of test case: variable wait fileevent $f readable [list set [namespace which -variable wait] "child exit"] set id [after 2000 [list set [namespace which -variable wait] timeout]] vwait [namespace which -variable wait] after cancel $id set wait ---- Result was: can not find channel named "filea21cc8" ---- Result should have been (exact matching): child exit ---- Test generated error; Return code was: 1 ---- Return code should have been one of: 0 2 ---- Test cleanup failed: can't read "wait": no such variable ==== Tcl_Main-5.4 FAILED ==== Tcl_Main-5.10 Tcl_Main: exit main loop in mid-interactive command FAILED ==== Contents of test case: type $f "testsetmainloop after 2000 testexitmainloop puts \{1 2" after 4000 type $f "3 4\}" set code1 [catch {gets $f} line1] set code2 [catch {gets $f} line2] set code3 [catch {gets $f} line3] list $code1 $line1 $code2 $line2 $code3 $line3 ---- Result was: 1 {can not find channel named "filea08730"} 1 {can not find channel named "filea08730"} 1 {can not find channel named "filea08730"} ---- Result should have been (exact matching): 0 {Exit MainLoop} 0 {1 2} 0 {3 4} ---- Test cleanup failed: can not find channel named "filea08730" ==== Tcl_Main-5.10 FAILED | |||
User Comments: |
dgp added on 2002-05-08 13:00:59:
Logged In: YES user_id=80530 fixed in the HEAD (8.4a5) dgp added on 2002-05-08 12:57:34: File Added - 22691: spacetest.patch Logged In: YES user_id=80530 Here's a patch with the alternate fixes to main.test as well as fixes for similar problems in load.test and in fileName.test. dgp added on 2002-05-08 10:20:22: Logged In: YES user_id=80530 This patch works, but I prefer a style that when [list] is required for proper quoting, you go ahead and quote all elements within a single [list]. So: open "|[list [interpreter] arg1 arg2]" w+ rather than open "|[list [interpreter]] arg1 arg2" w+ even though the literals "arg1" and "arg2" do not need the quoting. I'm working up a jumbo patch to deal with space in path problems in the test suite. I'll include my alternative in that. kennykb added on 2002-04-28 05:34:51: File Added - 22064: main.test.diff |