diff options
| author | ferrieux@users.sourceforge.net <ferrieux> | 2014-09-03 19:44:29 (GMT) |
|---|---|---|
| committer | ferrieux@users.sourceforge.net <ferrieux> | 2014-09-03 19:44:29 (GMT) |
| commit | 1a89b962c14bfe2afbbea3c1cca6266b3ed6b0bd (patch) | |
| tree | c808e91d72076f1c9bb2dc9f27e66b30175a6334 | |
| parent | cb6bb091e91bf08ac9de9c6f71c175a273a1fe7d (diff) | |
| download | tcl-1a89b962c14bfe2afbbea3c1cca6266b3ed6b0bd.zip tcl-1a89b962c14bfe2afbbea3c1cca6266b3ed6b0bd.tar.gz tcl-1a89b962c14bfe2afbbea3c1cca6266b3ed6b0bd.tar.bz2 | |
Distinguish hanging from crashing in exit tests.
| -rw-r--r-- | tests/aaa_exit.test | 27 |
1 files changed, 20 insertions, 7 deletions
diff --git a/tests/aaa_exit.test b/tests/aaa_exit.test index 51a94d7..3ba5167 100644 --- a/tests/aaa_exit.test +++ b/tests/aaa_exit.test @@ -16,22 +16,35 @@ if {[lsearch [namespace children] ::tcltest] == -1} { namespace import -force ::tcltest::* } - test exit-1.1 {normal, quick exit} { - set f [open "|[interpreter] << \"exec [interpreter] << {set ::env(TCL_FINALIZE_ON_EXIT) 0;exit}\" 2>@ stderr" r] - set aft [after 5000 {set done "Quick exit hangs !!!"}] + set f [open "|[interpreter] << \"exec [interpreter] << {set ::env(TCL_FINALIZE_ON_EXIT) 0;exit}\"" r] + set aft [after 1000 {set done "Quick exit hangs !!!"}] fileevent $f readable {after cancel $aft;set done OK} vwait done - catch {fconfigure $f -blocking 0;close $f} + if {$done != "OK"} { + fconfigure $f -blocking 0 + close $f + } else { + if {[catch {close $f} err]} { + set done "Quick exit misbehaves: $err" + } + } set done } OK test exit-1.2 {full-finalized exit} { - set f [open "|[interpreter] << \"exec [interpreter] << {set ::env(TCL_FINALIZE_ON_EXIT) 1;exit}\" 2>@ stderr" r] - set aft [after 5000 {set done "Full-finalized exit hangs !!!"}] + set f [open "|[interpreter] << \"exec [interpreter] << {set ::env(TCL_FINALIZE_ON_EXIT) 1;exit}\"" r] + set aft [after 1000 {set done "Full-finalized exit hangs !!!"}] fileevent $f readable {after cancel $aft;set done OK} vwait done - catch {fconfigure $f -blocking 0;close $f} + if {$done != "OK"} { + fconfigure $f -blocking 0 + close $f + } else { + if {[catch {close $f} err]} { + set done "Full-finalized exit misbehaves: $err" + } + } set done } OK |
