Posted to tcl by Stu at Thu Jun 08 12:02:47 GMT 2023view raw
- # Nested tests have strange behaviour "pass" results in group-1,
- # nor are the failures counted.
- $ cat tt.tcl
- package require tcltest
- namespace import tcltest::*
- verbose bstep
- test group-1 {} -setup {
- set a Hello
- } -cleanup {
- unset a
- } -body {
- test group-1-test-1 {} -body {
- string toupper $a
- } -result HELLO
- test group-1-test-2 {fail} -body {
- string map {e a} $a
- } -result hallo
- test group-1-test-3 {} -body {
- string tolower $a
- } -result hello
- } -result {}
- test group-2-begin {} -body {
- testConstraint group1 [expr {![catch {set fh [open aFile]}]}]
- } -result 1
- test group-2-test-1 {} -constraints {group1} -body {
- gets $fh
- } -result HELLO
- test group-2-test-2 {} -constraints {group1} -body {
- gets $fh
- } -result hallo
- test group-2-test-3 {} -constraints {group1} -body {
- gets $fh
- } -result hello
- test group-2-end {} -constraints {group1} -cleanup {
- close $fh
- }
- runAllTests
- if {[file exists aFile]} return
- set f [open aFile w]
- puts $f HELLO\nHallo\nhello
- close $f
- puts \n\n>>>\ Round\ 2\ <<<\n\n
- source [info script]
- # EOF
- # Output edited for brevity
- $ rm aFile ; tclsh8.6 tt.tcl
- ---- group-1 start
- ---- group-1-test-1 start
- ---- group-1-test-2 start
- ==== group-1-test-2 fail FAILED
- ==== Contents of test case:
- string map {e a} $a
- ---- Result was:
- Hallo
- ---- Result should have been (exact matching):
- hallo
- ==== group-1-test-2 FAILED
- ---- group-1-test-3 start
- ++++ group-1 PASSED
- ---- group-2-begin start
- ==== group-2-begin FAILED
- ==== Contents of test case:
- testConstraint group1 [expr {![catch {set fh [open aFile]}]}]
- ---- Result was:
- 0
- ---- Result should have been (exact matching):
- 1
- ==== group-2-begin FAILED
- ++++ group-2-test-1 SKIPPED: group1
- ++++ group-2-test-2 SKIPPED: group1
- ++++ group-2-test-3 SKIPPED: group1
- ++++ group-2-end SKIPPED: group1
- tt.tcl: Total 6 Passed 1 Skipped 4 Failed 1
- Number of tests skipped for each constraint:
- 4 group1
- >>> Round 2 <<<
- ---- group-1 start
- ---- group-1-test-1 start
- ---- group-1-test-2 start
- ==== group-1-test-2 fail FAILED
- ==== Contents of test case:
- string map {e a} $a
- ---- Result was:
- Hallo
- ---- Result should have been (exact matching):
- hallo
- ==== group-1-test-2 FAILED
- ---- group-1-test-3 start
- ++++ group-1 PASSED
- ---- group-2-begin start
- ++++ group-2-begin PASSED
- ---- group-2-test-1 start
- ++++ group-2-test-1 PASSED
- ---- group-2-test-2 start
- ==== group-2-test-2 FAILED
- ==== Contents of test case:
- gets $fh
- ---- Result was:
- Hallo
- ---- Result should have been (exact matching):
- hallo
- ==== group-2-test-2 FAILED
- ---- group-2-test-3 start
- ++++ group-2-test-3 PASSED
- ---- group-2-end start
- ++++ group-2-end PASSED
- tt.tcl: Total 6 Passed 5 Skipped 0 Failed 1