summaryrefslogtreecommitdiffstats
path: root/tests/interp.test
diff options
context:
space:
mode:
authorsebres <sebres@users.sourceforge.net>2017-07-03 13:26:19 (GMT)
committersebres <sebres@users.sourceforge.net>2017-07-03 13:26:19 (GMT)
commita07a5d700e82162dc377db840df58e437da1a8f9 (patch)
tree642b0eff1b64005acc6f90463561646ad5c6b484 /tests/interp.test
parent85e45c26583e38ad80c7d1ad6edbeab0e2db7a22 (diff)
downloadtcl-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.test23
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}