diff options
author | sebres <sebres@users.sourceforge.net> | 2017-07-03 13:26:19 (GMT) |
---|---|---|
committer | sebres <sebres@users.sourceforge.net> | 2017-07-03 13:26:19 (GMT) |
commit | a07a5d700e82162dc377db840df58e437da1a8f9 (patch) | |
tree | 642b0eff1b64005acc6f90463561646ad5c6b484 /tests/interp.test | |
parent | 85e45c26583e38ad80c7d1ad6edbeab0e2db7a22 (diff) | |
download | tcl-a07a5d700e82162dc377db840df58e437da1a8f9.zip tcl-a07a5d700e82162dc377db840df58e437da1a8f9.tar.gz tcl-a07a5d700e82162dc377db840df58e437da1a8f9.tar.bz2 |
fix sporadic errors on some fast cpu/platforms (because bgerror executed in background and it is an idle-event, give enough time to process it (resp. wait until last idle event is done);
Diffstat (limited to 'tests/interp.test')
-rw-r--r-- | tests/interp.test | 23 |
1 files changed, 15 insertions, 8 deletions
diff --git a/tests/interp.test b/tests/interp.test index 510ab4a..2649b47 100644 --- a/tests/interp.test +++ b/tests/interp.test @@ -3476,24 +3476,31 @@ test interp-36.7 {SlaveBgerror sets error handler of slave [1999035]} -setup { interp create slave slave alias handler handler slave bgerror handler - variable result {untouched} + variable result {} proc handler {args} { variable result - set result [lindex $args 0] + lappend result [lindex $args 0] } } -body { - slave eval { - variable done {} - after 0 error foo - after 10 [list ::set [namespace which -variable done] {}] - vwait [namespace which -variable done] + # because bgerror executed in background and it is idle-event, give enough + # time to process it (resp. wait until last idle event is done). + slave eval {; # via vwait + after 0 error foo-1 + after 10 {after idle {set done {}}} + vwait done + } + lappend result between + slave eval {; # via update + after 1 error foo-2 + after 10 + update } set result } -cleanup { variable result {} unset result interp delete slave -} -result foo +} -result {foo-1 between foo-2} test interp-37.1 {safe interps and min() and max(): Bug 2895741} -setup { catch {interp delete a} |