| | @@ -58,10 +58,18 @@ |
| 58 | 58 | set QUIET 1 |
| 59 | 59 | set argv [lreplace $argv $i $i] |
| 60 | 60 | } else { |
| 61 | 61 | set QUIET 0 |
| 62 | 62 | } |
| 63 | + |
| 64 | +set i [lsearch $argv -strict] |
| 65 | +if {$i>=0} { |
| 66 | + set STRICT 1 |
| 67 | + set argv [lreplace $argv $i $i] |
| 68 | +} else { |
| 69 | + set STRICT 0 |
| 70 | +} |
| 63 | 71 | |
| 64 | 72 | if {[llength $argv]==0} { |
| 65 | 73 | foreach f [lsort [glob $testdir/*.test]] { |
| 66 | 74 | set base [file root [file tail $f]] |
| 67 | 75 | lappend argv $base |
| | @@ -327,21 +335,30 @@ |
| 327 | 335 | } |
| 328 | 336 | |
| 329 | 337 | # Perform a test |
| 330 | 338 | # |
| 331 | 339 | set test_count 0 |
| 332 | | -proc test {name expr} { |
| 340 | +proc test {name expr {constraints ""}} { |
| 333 | 341 | global bad_test test_count RESULT |
| 334 | 342 | incr test_count |
| 343 | + set knownBug [expr {"knownBug" in $constraints}] |
| 335 | 344 | set r [uplevel 1 [list expr $expr]] |
| 336 | 345 | if {$r} { |
| 337 | | - protOut "test $name OK" |
| 346 | + if {$knownBug && !$::STRICT} { |
| 347 | + protOut "test $name OK (knownBug)?" |
| 348 | + } else { |
| 349 | + protOut "test $name OK" |
| 350 | + } |
| 338 | 351 | } else { |
| 339 | | - protOut "test $name FAILED!" 1 |
| 340 | | - if {$::QUIET} {protOut "RESULT: $RESULT" 1} |
| 341 | | - lappend bad_test $name |
| 342 | | - if {$::HALT} exit |
| 352 | + if {$knownBug && !$::STRICT} { |
| 353 | + protOut "test $name FAILED (knownBug)!" 1 |
| 354 | + } else { |
| 355 | + protOut "test $name FAILED!" 1 |
| 356 | + if {$::QUIET} {protOut "RESULT: $RESULT" 1} |
| 357 | + lappend bad_test $name |
| 358 | + if {$::HALT} exit |
| 359 | + } |
| 343 | 360 | } |
| 344 | 361 | } |
| 345 | 362 | set bad_test {} |
| 346 | 363 | |
| 347 | 364 | # Return a random string N characters long. |
| 348 | 365 | |