Artifact 6caac706e026a6640f5a3f397ad989cd49fbd80d:
- File
packages/interp/lib/process.test.tcl
— part of check-in
[37c510501f]
at
2019-10-15 14:03:02
on branch trunk
— list deep
replace "struct" with "deep"
interp process
new package
(user: pooryorick size: 1954)
#! /bin/env tclsh package require {ycl test} proc suite_main {} { namespace import [yclprefix]::test::cleanup1 [yclprefix]::test::init package require {ycl list} namespace import [yclprefix]::list::compare namespace import [yclprefix]::list::sl package require {ycl interp process} namespace import [yclprefix]::interp::process test kill { } -body { set res [process new cmd {} kill 0] lappend res [llength [process list]] process kill [lindex [process list] 0] lappend res [llength [process list]] return $res } -cleanup [cleanup1] -result [sl { 1 0 }] test kill_calls { } -body { coroutine [info cmdcount] apply [list {} { process new cmd {while 1 {after 1000}} kill 0 } [namespace current]] lappend res [llength [process list]] catch {process kill [lindex [process list] 0]} cres copts if {![string is list -strict $cres] || [llength $cres] % 2 == 0} { return -options $copts } set cres [lassign $cres[set cres {}] message] lappend res $message status [dict get $cres status] lappend res [llength [process list]] return $res } -cleanup [cleanup1] -result [sl { 1 {process killed} status 127 0 }] test list { } -body { process new cmd {} kill 0 procname proc1 process new cmd {} kill 0 procname proc2 set expected [lsort -dictionary [list $proc1 $proc2]] set processes [process list] lappend res [compare ::tcl::mathop::== expected processes] return $res } -cleanup [cleanup1] -result [sl { -1 }] test new { } -body { set res [process new cmd {set a hello}] return $res } -cleanup [cleanup1] -result [sl { hello }] test new_exit { } -body { catch {process new cmd {exit 99}} cres copts if {![string is list -strict $cres]} { dict incr copts -level return -code options $copts } set cres [lassign $cres[set cres {}] message] lappend res [dict get $cres status] return $res } -cleanup [cleanup1] -result [sl { 99 }] cleanupTests }