Tcl Source Code

View Ticket
Login
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

Attachments: