A Multi-Column Listbox
View Ticket
Not logged in
Ticket UUID: 2002489
Title: tree-tcl test 4.4.17 in test suite - error msg difference
Type: Bug Version: None
Submitter: lvirden Created on: 2008-06-25 14:29:28
Subsystem: treeql Assigned To: andreas_kupries
Priority: 1 Zero Severity:
Status: Deleted Last Modified: 2013-07-04 17:49:26
Resolution: Not Applicable Here Closed By:
    Closed on:
Description:
I'm using the latest activestate cvs head snapshots of tcl 8.6 and tcllib on Solaris 2.8 SPARC. The test suite message is:
---- tree-tcl-4.4.17 start

==== tree-tcl-4.4.17 error in walk FAILED
==== Contents of test case:

    set t [list ]
    proc foo {} {
        global t
        tree mytree
        mytree insert root end 0 1 2 3
        mytree insert 0 end a b c
        lappend t ==
        mytree walk root {a n} {
            if {[string equal $n "b"]} {
                lappend t .
                error fubar
            }
            lappend t $a $n
        }
        lappend t ==
        return bad-return
    }
    catch {lappend t [foo]} result
    mytree destroy
    list $t $result $::errorInfo

---- Result was:
{== enter root enter 0 enter a .} fubar {fubar
    while executing
"error fubar"
    ("WalkCall" body line 4)
    invoked from within
"WalkCall $avar $nvar $name $node "enter" $script"
    (procedure "::struct::tree::_walk" line 88)
    invoked from within
"::struct::tree::_walk ::mytree root {a n} {
            if {[string equal $n "b"]} {
                lappend t .
                error fubar
            }
            lappend t $a $n
        }"
    ("_walk" body line 1)
    invoked from within
"mytree walk root {a n} {
            if {[string equal $n "b"]} {
                lappend t .
                error fubar
            }
            lappend t $a $n
        }"
    (procedure "foo" line 7)
    invoked from within
"foo"}
---- Result should have been (exact matching):
{== enter root enter 0 enter a .} fubar {fubar
    while executing
"error fubar"
    invoked from within
"if {[string equal $n "b"]} {
                lappend t .
                error fubar
            }"
    ("WalkCall" body line 2)
    invoked from within
"WalkCall $avar $nvar $name $node "enter" $script"
    (procedure "::struct::tree::_walk" line 88)
    invoked from within
"::struct::tree::_walk ::mytree root {a n} {
            if {[string equal $n "b"]} {
                lappend t .
                error fubar
            }
            lappend t $a $n
        }"
    ("_walk" body line 1)
    invoked from within
"mytree walk root {a n} {
            if {[string equal $n "b"]} {
                lappend t .
                error fubar
            }
            lappend t $a $n
        }"
    (procedure "foo" line 7)
    invoked from within
"foo"}
==== tree-tcl-4.4.17 FAILED
User Comments: andreas_kupries added on 2008-10-11 02:17:31:
Recent work on struct::tree and its testsuite may have fixed this.

See ChangeLog entry:


2008-09-02  Andreas Kupries  <[email protected]>

* tree.testsuite: Updated tests based on walk error stack traces
  to handle new differences between 8.4 and 8.5.

* tree.testsuite.4417b84.txt: Moved the stacktraces to separate files
* tree.testsuite.4417=84tcl.txt: for better readability of both the
* tree.testsuite.4417a84tcl.txt: traces and the test using it.
* tree.testsuite.4417a83critcl.txt:

Please recheck. If it is not fixed it should however now be easy to add the proper stacktrace, now that the various forms are stored in their own files.

andreas_kupries added on 2008-06-25 23:35:15:
Logged In: YES 
user_id=75003
Originator: NO

Well, it seems as if the exact fomrat of the stack trace changed in 8.6.
The 'if ...' command seems to have been removed from it.
This should require only updating of the testsuite.
Very low priority.
May be defered until at least 8.6b1 is out, i.e. when things are less in flux.