summaryrefslogtreecommitdiffstats
path: root/tests/coroutine.test
diff options
context:
space:
mode:
authorjan.nijtmans <nijtmans@users.sourceforge.net>2017-04-12 12:33:07 (GMT)
committerjan.nijtmans <nijtmans@users.sourceforge.net>2017-04-12 12:33:07 (GMT)
commit50a2019b617635acbfc1c91b00f41d57f61e1fa1 (patch)
treee25debcc2d99c05535e42ff3ed98bd74b15e4fec /tests/coroutine.test
parent473bfc0f18451046035f638732a609fc86d5a0aa (diff)
parent155377a13fc942edef1524383465f2aa0efd92c2 (diff)
downloadtcl-50a2019b617635acbfc1c91b00f41d57f61e1fa1.zip
tcl-50a2019b617635acbfc1c91b00f41d57f61e1fa1.tar.gz
tcl-50a2019b617635acbfc1c91b00f41d57f61e1fa1.tar.bz2
merge core-8-6-branch
Diffstat (limited to 'tests/coroutine.test')
-rw-r--r--tests/coroutine.test39
1 files changed, 39 insertions, 0 deletions
diff --git a/tests/coroutine.test b/tests/coroutine.test
index 86fa6e3..07feb53 100644
--- a/tests/coroutine.test
+++ b/tests/coroutine.test
@@ -741,6 +741,45 @@ test coroutine-7.12 {coro floor above street level #3008307} -body {
list
} -result {}
+test coroutine-8.0.0 {coro inject executed} -body {
+ coroutine demo apply {{} { foreach i {1 2} yield }}
+ demo
+ set ::result none
+ tcl::unsupported::inject demo set ::result inject-executed
+ demo
+ set ::result
+} -result {inject-executed}
+test coroutine-8.0.1 {coro inject after error} -body {
+ coroutine demo apply {{} { foreach i {1 2} yield; error test }}
+ demo
+ set ::result none
+ tcl::unsupported::inject demo set ::result inject-executed
+ lappend ::result [catch {demo} err] $err
+} -result {inject-executed 1 test}
+test coroutine-8.1.1 {coro inject, ticket 42202ba1e5ff566e} -body {
+ interp create slave
+ slave eval {
+ coroutine demo apply {{} { while {1} yield }}
+ demo
+ tcl::unsupported::inject demo set ::result inject-executed
+ }
+ interp delete slave
+} -result {}
+test coroutine-8.1.2 {coro inject with result, ticket 42202ba1e5ff566e} -body {
+ interp create slave
+ slave eval {
+ coroutine demo apply {{} { while {1} yield }}
+ demo
+ tcl::unsupported::inject demo set ::result inject-executed
+ }
+ slave eval demo
+ set result [slave eval {set ::result}]
+
+ interp delete slave
+ set result
+} -result {inject-executed}
+
+
# cleanup
unset lambda