Menu

#1867 main.test fails with space in dir

obsolete: 8.4a5
closed-fixed
5
2002-05-08
2002-04-27
No

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

Discussion

  • Kevin B KENNY

    Kevin B KENNY - 2002-04-27

    Patch for main.test

     
  • Don Porter

    Don Porter - 2002-05-08

    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.

     
  • Don Porter

    Don Porter - 2002-05-08

    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.

     
  • Don Porter

    Don Porter - 2002-05-08
     
  • Don Porter

    Don Porter - 2002-05-08

    Logged In: YES
    user_id=80530

    fixed in the HEAD (8.4a5)

     
  • Don Porter

    Don Porter - 2002-05-08
    • milestone: --> obsolete: 8.4a5
    • status: open --> closed-fixed