diff options
author | dkf <donal.k.fellows@manchester.ac.uk> | 2019-04-28 16:17:05 (GMT) |
---|---|---|
committer | dkf <donal.k.fellows@manchester.ac.uk> | 2019-04-28 16:17:05 (GMT) |
commit | 3db1b8bbad948c57135d221bf3e57e661a3b8dcc (patch) | |
tree | e56748ea54e17a1f2dc41ea17a2c5cdc39b6d148 /tests/coroutine.test | |
parent | 7f8f3b946d5b7418549021a8dab4fb8d761a1b79 (diff) | |
download | tcl-3db1b8bbad948c57135d221bf3e57e661a3b8dcc.zip tcl-3db1b8bbad948c57135d221bf3e57e661a3b8dcc.tar.gz tcl-3db1b8bbad948c57135d221bf3e57e661a3b8dcc.tar.bz2 |
Advanced feature tests
Diffstat (limited to 'tests/coroutine.test')
-rw-r--r-- | tests/coroutine.test | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/tests/coroutine.test b/tests/coroutine.test index 0d95495..fe46c8b 100644 --- a/tests/coroutine.test +++ b/tests/coroutine.test @@ -840,6 +840,22 @@ test coroutine-9.8 {coroprobe errors in probe command} -body { } -cleanup { catch {rename demo {}} } -result {1 {} 2} +test coroutine-9.9 {coroprobe: advanced features} -setup { + set i [interp create] +} -body { + $i eval { + coroutine demo apply {{} { + set f [info level],[info frame] + foreach i {1 2} yield + }} + coroprobe demo apply {{} { + upvar 1 f f + list [info coroutine] [info level] [info frame] $f + }} + } +} -cleanup { + interp delete $i +} -result {::demo 2 3 1,2} test coroutine-10.1 {coroinject with yield} -setup { set result {} @@ -899,6 +915,28 @@ test coroutine-10.8 {coroinject errors in injected command} -body { } -cleanup { catch {rename demo {}} } -result {1 {ERR: yield {}} 1 {invalid command name "demo"}} +test coroutine-10.9 {coroinject: advanced features} -setup { + set i [interp create] +} -body { + $i eval { + coroutine demo apply {{} { + set l [info level] + set f [info frame] + lmap i {1 2} yield + }} + coroinject demo apply {{arg op val} { + global result + upvar 1 f f l l + lappend result [info coroutine] $arg $op $val + lappend result [info level] $l [info frame] $f + lappend result [yield $arg] + return [string toupper $val] + }} grill + list [demo ABC] [demo pqr] [demo def] $result + } +} -cleanup { + interp delete $i +} -result {grill {} {ABC def} {::demo grill yield ABC 2 1 3 2 pqr}} # cleanup unset lambda |