Tcl Source Code

View Ticket
Login
Ticket UUID: 674387
Title: Tcl/Tk threaded test failures on NT4...
Type: Bug Version: obsolete: 8.4.1
Submitter: nobody Created on: 2003-01-25 00:30:45
Subsystem: 37. File System Assigned To: vincentdarley
Priority: 5 Medium Severity:
Status: Deleted Last Modified: 2003-02-05 00:36:32
Resolution: Fixed Closed By: vincentdarley
    Closed on: 2003-02-04 17:36:32
Description:
Output from test suite:

=================================
=================================
=============
*** Compiler has 'Optimizations'
*** Compiler has 'Pentium 0x0f fix'
*** Linker has 'Win98 alignment problem'
*** Doing threads
*** Doing symbols
*** Doing profile
*** Doing memdbg
*** Doing compdbg
*** Intermediate directory will 
be '.\Debug\tcl_ThreadedDynamic'
*** Output directory will be '.\Debug'
*** Suffix for binaries will be 'td'
*** Optional defines are '-DTCL_MEM_DEBUG -
DTCL_COMPILE_DEBUG -DTCL_COMPILE_STAT
S -DTCL_THREADS=1'
*** Dependency rules are not being used.

        set TCL_LIBRARY=../library
        .\Debug\tcltest.exe ../tests/all.tcl
Tests running in interp:  
F:/tcl/checkout/8.4.1/tcl/win/Debug/tcltest.exe
Tests located in:  F:/tcl/checkout/8.4.1/tcl/tests
Tests running in:  F:/tcl/checkout/8.4.1/tcl/win
Temporary files stored in 
F:/tcl/checkout/8.4.1/tcl/win
Test files run in separate interpreters
Running tests that match:  *
Skipping test files that match:  l.*.test
Only running test files that match:  *.test
Tests began at Fri Jan 24 4:04:09 PM Pacific 
Standard Time 2003
append.test
appendComp.test
assocd.test
async.test
autoMkindex.test
basic.test
binary.test
case.test
clock.test
cmdAH.test
cmdIL.test
cmdInfo.test
cmdMZ.test
compExpr-old.test
compExpr.test
compile.test
concat.test
dcall.test
dstring.test
encoding.test
env.test
error.test
eval.test
event.test
exec.test
execute.test
expr-old.test
expr.test
fCmd.test
fileName.test
Warning: files left behind:
        fileName.test:  globTest
fileSystem.test
for-old.test
for.test
foreach.test
format.test
get.test
history.test
http.test
Running httpd in thread 184
httpold.test
if-old.test
if.test
incr-old.test
incr.test
indexObj.test
info.test
init.test
interp.test
io.test
ioCmd.test
ioUtil.test
iogt.test
join.test
lindex.test
link.test
linsert.test
list.test
listObj.test
llength.test
load.test
lrange.test
lreplace.test
lsearch.test
lset.test
lsetComp.test
macFCmd.test
main.test

==== 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:
script ? 0

---- Result should have been (exact matching):
script ? 0

==== Tcl_Main-1.4 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:

---- Result should have been (exact matching):
? {} 0

---- Test cleanup failed:
couldn't read file "?": no such file or directory
==== Tcl_Main-1.6 FAILED

misc.test
msgcat.test
namespace-old.test
namespace.test
obj.test
opt.test
osa.test
package.test
parse.test
parseExpr.test
parseOld.test
pid.test
pkg.test
pkgMkIndex.test
platform.test
proc-old.test
proc.test
pwd.test
reg.test
regexp.test
regexpComp.test
registry.test
rename.test
resource.test
result.test
safe.test
scan.test
security.test
set-old.test
set.test
socket.test
source.test
split.test
stack.test
string.test
stringComp.test
stringObj.test
subst.test
switch.test
tcltest.test
Warning: files left behind:
        tcltest.test:   efile
thread.test
timer.test
trace.test
unixFCmd.test
unixFile.test
unixInit.test
unixNotfy.test
unknown.test
uplevel.test
upvar.test
utf.test
util.test
var.test
while-old.test
while.test
winConsole.test
winDde.test
Test file error: child killed: segmentation violation
winFCmd.test
winFile.test
winNotify.test
winPipe.test
You should see this
winTime.test

Tests ended at Fri Jan 24 4:13:10 PM Pacific 
Standard Time 2003
all.tcl:        Total   10391   Passed  9692    Skipped 
697     Failed  2
Sourced 128 Test Files.
Files with failing tests: main.test
Number of tests skipped for each constraint:
        2       .console
        15      95
        8       cdrom
        22      eformat
        47      emptyTest
        2       hasIsoLocale
        9       hasLinks
        1       interactive
        13      knownBug
        1       largefileSupport
        16      linkDirectory
        3       linkFile
        25      localeRegexp
        133     macOnly
        6       macOrUnix
        121     nonPortable
        1       nonRoot
        26      pkga.dllRequired
        2       sharedCdrive
        1       singleTestInterp
        15      testfilehandler
        1       testfilewait
        21      testwordend
        2       unix
        15      unixExecs
        159     unixOnly
        2       unixOnly && !testthread
        3       unknownFailure
        22      wideIntegerUnparsed
        3       win2000orXP

Test files exiting with errors:

  winDde.test

-----------------------------------------
--------------------------------------

I am unable to duplicate this failure with regularity:

---- Result was:
ok ok
---- Result should have been (exact matching):
timeout ok
==== httpold-4.12 FAILED

-----------------------------------------
--------------------------------------

During the winDde.test failure, the tcltest.exe 
instances all die in the same spot:

TclpFinalizeThreadDataKey(Tcl_ThreadDataKey_ * * 
0x00f754b8) line 672 + 3 bytes
TclFinalizeSynchronization() line 452 + 9 bytes
Tcl_Finalize() line 859
Tcl_Exit(int 0x00000000) line 565
Tcl_ExitObjCmd(void * 0x00000000, Tcl_Interp * 
0x008d6e10, int 0x00000002, Tcl_Obj * const * 
0x0026fc94) line 667 + 9 bytes
TclEvalObjvInternal(Tcl_Interp * 0x008d6e10, int 
0x00000002, Tcl_Obj * const * 0x0026fc94, const 
char * 0x0026fd34, int 0x00000006, int 
0x00000000) line 3055 + 25 bytes
Tcl_EvalEx(Tcl_Interp * 0x008d6e10, const char * 
0x0026fd34, int 0x00000006, int 0x00000000) line 
3654 + 42 bytes
Tcl_Eval(Tcl_Interp * 0x008d6e10, const char * 
0x0026fd34) line 3818 + 17 bytes
Tcl_Main(int 0x00000023, char * * 0x008e1234, int 
(Tcl_Interp *)* 0x0040d615 Tcl_AppInit(Tcl_Interp 
*)) line 500 + 19 bytes
main() line 110 + 19 bytes
mainCRTStartup() line 338 + 17 bytes

void
TclpFinalizeThreadDataKey(keyPtr)
    Tcl_ThreadDataKey *keyPtr;
{
    DWORD *indexPtr;
    if (*keyPtr != NULL) {   // <-- *** CRASH HERE ***
indexPtr = *(DWORD **)keyPtr;
TlsFree(*indexPtr);
ckfree((char *)indexPtr);
*keyPtr = NULL;
    }
}

-----------------------------------------
--------------------------------------

During the unixFCmd.test, a dialog pops up and 
prompts to create program groups:

NOTE: This test should only be run on Unix, not 
Windows, and that is the root cause of this oddity.  
I have attached a screenshot showing the dialog, 
which is apparently a Borland program related to 
their install program.

-----------------------------------------
--------------------------------------

JJM
User Comments: vincentdarley added on 2003-02-05 00:36:32:
Logged In: YES 
user_id=32170

'globTest' directory now removed by tests.  Bug closed.

davygrvy added on 2003-01-30 07:32:43:
Logged In: YES 
user_id=7549

Joe, the DDE issue your having might be better in a NEW 
bug report instead of this one that has turned into a tcltest fix.

mistachkin added on 2003-01-30 07:22:16:
Logged In: YES 
user_id=113501

############################################
#
# this simple script will crash the TclVbDdeTest sample.
#

package require dde

set x [dde services {} {}]

puts stdout $x

############################################

I have attached a simplified VB app that demonstrates 
the problem along with this script.

mistachkin added on 2003-01-30 07:00:18:

File Added - 41005: tclVbDdeSample.zip

dgp added on 2003-01-30 02:38:49:
Logged In: YES 
user_id=80530

The [errorChannel] and [outputChannel] commands
have [open]'s without matching [close]'s.

Fixing that should take care of the efile problem.

Filed that as Bug 676978.

Passing this bug on to File System to deal
with the globTest left behind by fileName.test.

dgp added on 2003-01-29 01:02:33:
Logged In: YES 
user_id=80530

Ah yes.  IIRC I was re-writing main.test
about the same time davygrvy was
proposing to correct this limitation of
the Windows command line.  So I added
tests Tcl_Main-1.4 and Tcl_Main-1.6 for it.

Those tests pass on Unix, so it appears we 
just need to add a constrain to prevent their
running on Windows with tempNotWin
constraint.

Committing fix, and assigning over to
"tcltest package" to track down the 
problem with "efile" left behind.

davygrvy added on 2003-01-28 18:13:16:
Logged In: YES 
user_id=7549

Having just read the Tcl_Main test cases, I can say that what 
the cases are testing ride a fine line of the fact the argv is 
expected to be dirty, not clean.  If any unicode can pass, I'm 
amazed.  Yet testing that both sides fail in the same manner 
looks good.

hobbs added on 2003-01-28 08:55:33:
Logged In: YES 
user_id=72656

The windde problem is resolved, but the Tcl_Main may be an 
NT specific issue.  I can't find the named patch, but DGP did 
rewrite that a bit.

nobody added on 2003-01-25 07:30:45:

File Added - 40601: groups.bmp

Attachments: