Tcl Source Code

View Ticket
Login
Ticket UUID: 460993
Title: ioCmd-8.{11,12,13} failures
Type: Bug Version: obsolete: 8.4a4
Submitter: dgp Created on: 2001-09-12 19:45:12
Subsystem: 24. Channel Commands Assigned To: andreas_kupries
Priority: 5 Medium Severity:
Status: Closed Last Modified: 2001-09-14 02:11:14
Resolution: Fixed Closed By: andreas_kupries
    Closed on: 2001-09-13 19:11:14
Description:
$ ./configure --disbale-shared
$ make tcltest
$ ./tcltest ../tests/ioCmd.test

==== iocmd-8.11 fconfigure command FAILED
==== Contents of test case:

    list [catch {fconfigure stdout -froboz blarfo} msg]
$msg

---- Result was:
1 {bad option "-froboz": should be one of -blocking,
-buffering, -buffersize, -encoding, -eofchar,
-translation, or -mode}
---- Result should have been (exact matching):
1 {bad option "-froboz": should be one of -blocking,
-buffering, -buffersize, -encoding, -eofchar, or
-translation}
==== iocmd-8.11 FAILED


==== iocmd-8.12 fconfigure command FAILED
==== Contents of test case:

    list [catch {fconfigure stdout -b blarfo} msg] $msg

---- Result was:
1 {bad option "-b": should be one of -blocking,
-buffering, -buffersize, -encoding, -eofchar,
-translation, or -mode}
---- Result should have been (exact matching):
1 {bad option "-b": should be one of -blocking,
-buffering, -buffersize, -encoding, -eofchar, or
-translation}
==== iocmd-8.12 FAILED


==== iocmd-8.13 fconfigure command FAILED
==== Contents of test case:

    list [catch {fconfigure stdout -buffer blarfo} msg]
$msg

---- Result was:
1 {bad option "-buffer": should be one of -blocking,
-buffering, -buffersize, -encoding, -eofchar,
-translation, or -mode}
---- Result should have been (exact matching):
1 {bad option "-buffer": should be one of -blocking,
-buffering, -buffersize, -encoding, -eofchar, or
-translation}
==== iocmd-8.13 FAILED

ioCmd.test:     Total   105     Passed  99      Skipped
3       Failed  3
Number of tests skipped for each constraint:
        3       nonPortable
User Comments: andreas_kupries added on 2001-09-14 02:11:14:
Logged In: YES 
user_id=75003

Committed the alternate patch to head and core-8-3-1-branch.

dgp added on 2001-09-14 01:43:11:
Logged In: YES 
user_id=80530

Latest patch is an effective fix and looks fine to me.

andreas_kupries added on 2001-09-14 00:06:10:

File Added - 10746: 460993-alt.diff

Logged In: YES 
user_id=75003

Here is the alternate patch. I like it better than the 
original one. Less hackish.

andreas_kupries added on 2001-09-13 23:55:40:
Logged In: YES 
user_id=75003

I will try that and post an alternate patch.

dkf added on 2001-09-13 15:59:08:
Logged In: YES 
user_id=79902

I agree completely with the analysis. Perhaps it would be
better to create and open a temporary file and then perform
these [fconfigure] tests on that? It has to be a temporary
file since we can't easily guarantee what the correct list
of options will be on any pre-existing resource in the
system (e.g. we might add things for pipes, named pipes,
unix-domain sockets, selected devices, etc. in the future.)

andreas_kupries added on 2001-09-13 04:35:28:

File Added - 10716: 460993.diff

Logged In: YES 
user_id=75003

Here is the patch.

dgp added on 2001-09-13 04:13:22:
Logged In: YES 
user_id=80530

I also prefer your alternative.

Bug 461000 also reports trouble with the
[tcltest::singleProcess] command, but it doesn't
explain this, I don't think.  Test ioCmd-8.* do
not reference the singleTestInterp constraint.

andreas_kupries added on 2001-09-13 04:08:43:
Logged In: YES 
user_id=75003

So, one possible solution would be to strip out the -mode 
out of the result (msg) before returning it to the test 
framework.

Alternative: Create a standard result string using 
[fconfigure stdout] and use that to compose the expected 
results for the tests ...

The alternative seems to me to be the better solution.

As for the anomaly maybe -singleProc 1 is not handled 
correctly. Wasn't there another bug of yours which reported 
this ?

dgp added on 2001-09-13 03:58:13:
Logged In: YES 
user_id=80530

Except for the TESTFLAGS="-singleProc 1" anamoly, yes
you make sense.

andreas_kupries added on 2001-09-13 03:55:51:
Logged In: YES 
user_id=75003

I suspect the following:

In the multi-process case stdin/out/err of the subshell are 
connected to the main test driver via pipes => no tty, not 
serial => no "-mode".

In the single-process case the stdout reported on is the 
stdout of the main and only tcltest, connected to the 
terminal you used to start the testsuite. This is a tty, 
hence we have serial options in the output of configure ...

Do I make sense ?

dgp added on 2001-09-13 03:50:13:
Logged In: YES 
user_id=80530

Caught me.  When I sanitize my Unix prompt, I only
partially cut & paste.  Some parts I re-type (and
mis-type).

Yes, 8.4a4.  Didn't check earlier versions.

$ ./tcltest
% fconfigure stdout
-blocking 1 -buffering line -buffersize 4096 -encoding
iso8859-1 -eofchar {} -translation crlf -mode 9600,s,7,2

No, the same errors do not occur in a normal 'make test',
nor in a 'make test TESTFLAGS="-singleProc 1"', though
in the latter case I don't know why.

They do show up when you stick a [tcltest::singleProcess 1]
in test/all.tcl before the [runAllTests] call.

I see the same reported error on both Linux and Solaris.

andreas_kupries added on 2001-09-13 02:54:46:
Logged In: YES 
user_id=75003

I guess "--disbale-shared" is a typo in the report.
This is against head ?

"-mode" ... Isn't that one of the serial options ...
And for "stdout" ... what does [fconfigure stdout] returns
when used interactively ?

Do the same failures happen when the whole testsuite is 
executed via 'make test' ?

Note that 'make test' sets up a number of variables (ok, 
disable-shared makes most of them irrelevant, but not 
TCL_LIBRARY).

Attachments: