diff options
author | sebres <sebres@users.sourceforge.net> | 2017-04-12 11:49:39 (GMT) |
---|---|---|
committer | sebres <sebres@users.sourceforge.net> | 2017-04-12 11:49:39 (GMT) |
commit | 9d252ff7d25e0aecaacb4c4685b1cf9f85decab0 (patch) | |
tree | 8af3427df6fd2a1467f2fad7f3a9372f7038ac8e /tests | |
parent | 0cc7fd3498bf486b2eb5bc20a67f5671f2830097 (diff) | |
parent | 72ac20b7d7e65869c797750d7aad03dc0aed22bf (diff) | |
download | tcl-9d252ff7d25e0aecaacb4c4685b1cf9f85decab0.zip tcl-9d252ff7d25e0aecaacb4c4685b1cf9f85decab0.tar.gz tcl-9d252ff7d25e0aecaacb4c4685b1cf9f85decab0.tar.bz2 |
merge fix-42202ba1e5ff566e
Diffstat (limited to 'tests')
-rw-r--r-- | tests/coroutine.test | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/tests/coroutine.test b/tests/coroutine.test index 205da67..fd68567 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 |