Tcl Source Code

View Ticket
Login
Ticket UUID: 3075027
Title: 8.5 head testsuite failures on windows
Type: Bug Version: None
Submitter: andreas_kupries Created on: 2010-09-24 18:08:26
Subsystem: 36. Pathname Management Assigned To: aku
Priority: 5 Medium Severity: Minor
Status: Open Last Modified: 2016-07-08 08:08:02
Resolution: None Closed By: nobody
    Closed on:
Description:
Six tests currently fail for 8.5 head on windows

==== async-4.3 async interrupting loop-less bytecode sequence FAILED
==== async-4.3 FAILED
==== filesystem-1.3 link normalisation FAILED
==== filesystem-1.3 FAILED
==== filesystem-1.4 link normalisation FAILED
==== filesystem-1.4 FAILED
==== stack-1.1 maxNestingDepth reached on infinite recursion FAILED
==== stack-1.1 FAILED
==== stack-3.1 enough room for regexp near recursion limit FAILED
==== stack-3.1 FAILED
==== tcltest-2.0 tcltest (verbose default - 'b') FAILED
==== tcltest-2.0 FAILED

The stack tests I am not sure about, I might have stack checking disabled (They were crashes).

The full test log is attached.
User Comments: apnadkarni added on 2016-07-08 08:08:02:

filesystem-1.{3,4} fixed with check-in [c96de4ed64] on core-8-6-branch for 8.6.6


twylite added on 2012-07-27 16:10:36:
Issue affects core-8-5-branch and trunk.

twylite added on 2012-07-27 16:09:38:
A 32-bit tclsh build from tag 'core-8-5-12' using MSVC10, running on Windows 7 64-bit confirms that the only test failures that remain are filesystem-1.3 and filesystem-1.4.  

These two filesystem-* failures were also reported in #3545366 "Win32 link normalization test failures"; that bug has now been closed as a duplicate.

nijtmans added on 2012-06-13 16:15:02:
Did a "fossil bisect" in order to try to find out which commit
introduces this test failure. The result is:
       http://core.tcl.tk/tcl/info/40f723e2c0
Changelog entry:
2008-07-21  Andreas Kupries <[email protected]>

* generic/tclBasic.c: Extended the existing TIP #280 system (info
* generic/tclCmdAH.c: frame), added the ability to track the
* generic/tclCompCmds.c: absolute location of literal procedure
* generic/tclCompile.c: arguments, and making this information
* generic/tclCompile.h: available to uplevel, eval, and
* generic/tclInterp.c: siblings. This allows proper tracking of
* generic/tclInt.h: absolute location through custom (Tcl-coded)
* generic/tclNamesp.c: control structures based on uplevel, etc.
* generic/tclProc.c:

However, I don't think this commit itself is to
blame. It only changed the caching mechanism
for literals, which apparently indirectly affects the
normalization of file paths. It's really complicated!!!!!

Also I found bug #1972879, which handles the
caching of normalized paths. See pat Thoyts'
remark in this issue regarding
the failing test-cases filesystem-1.[34].
These tests are already failing for
almost 4 years!
My current suspicion is that bug  #1972879 is
not fixed yet for some Windows paths, and that
Andreas' commit only triggered it. The
bug was there already before, but it only
didn't manifest itself until Andreas' commit.

The prove that this really is a caching issue:
If I manually create a link to a directory
with a file in it, the file normalization is OK,
but running it from the test suite it is not.
So the result highly depends from the
environment.

Andreas, does this give some hint to you?

tombert added on 2011-12-10 15:51:33:
I don't believe that theses tests, if failed, would cause tcl to crash?

thx

nijtmans added on 2011-10-29 14:25:45:
Looks like all failures, except filesystem-1.3
and filesystem-1.4 are fixed already

andreas_kupries added on 2010-09-25 01:08:26:

File Added - 387766: tcl85.test-win.txt.gz

Attachments: