Test output for gochan [ok]

Testing time: 2s

'/usr/home/chicken/salmonella/build/salmonella-run-publish/chicken/bin/csi' -script run.scm < /dev/null 2>&1

-- testing unbuffered 1 channel gochan-select* meta --------------------------
(receive (gochan-select* `((,chan meta!)))) .......................... [ PASS]
1 test completed in 1/1000 seconds.
1 out of 1 (100%) test passed.
-- done testing unbuffered 1 channel gochan-select* meta ---------------------


-- testing unbuffered 2 channels, 1 channel ready ----------------------------
pick from data-ready in order data first ............................. [ PASS]
pick from data-ready in order data last .............................. [ PASS]
2 tests completed in 1/1000 seconds.
2 out of 2 (100%) tests passed.
-- done testing unbuffered 2 channels, 1 channel ready -----------------------


-- testing unbuffered 2 channels, 2 channels ready ---------------------------
all messages received exactly once (order unknown by design) ......... [ PASS]
1 test completed in 1/1000 seconds.
1 out of 1 (100%) test passed.
-- done testing unbuffered 2 channels, 2 channels ready ----------------------


-- testing unbuffered 1 channel fifo, primordial first -----------------------
1 channel fifo priomaridal first ..................................... [ PASS]
1 channel fifo priomaridal first ..................................... [ PASS]
1 channel fifo goroutine   first ..................................... [ PASS]
1 channel fifo goroutine   first ..................................... [ PASS]
4 tests completed in 0 seconds.
4 out of 4 (100%) tests passed.
-- done testing unbuffered 1 channel fifo, primordial first ------------------


-- testing timers ------------------------------------------------------------
timeout order 1 ...................................................... [ PASS]
timeout order 2 ...................................................... [ PASS]
200ms to timeout took <220ms  ........................................ (207)[ PASS]
3 tests completed in 207/1000 seconds.
3 out of 3 (100%) tests passed.
-- done testing timers -------------------------------------------------------


-- testing timers: each gochan-tick gets consumed by only one recv -----------
10ms messages for 105ms means 10 messages ............................ [ PASS]
hopefully different senders: (1 2 3 4 1 2 3 4 1 2)
1 test completed in 107/1000 seconds.
1 out of 1 (100%) test passed.
-- done testing timers: each gochan-tick gets consumed by only one recv ------


-- testing closing channels --------------------------------------------------
closed, non-empty buffered channel gives us data ..................... [ PASS]
closed, empty     buffered channel fails ............................. [ PASS]
sender fail-flag says no error 1 ..................................... [ PASS]
sender fail-flag says no error 2 ..................................... [ PASS]
blocked receiving thread was terminated .............................. [ PASS]
blocked receiving thread with implicit fail flag ..................... [ PASS]
blocked receiving thread with explicit fail flag ..................... [ PASS]
blocked sending   thread with implicit fail flag ..................... [ PASS]
blocked sending   thread with explicit fail flag ..................... [ PASS]
receiving from closed channel sync ................................... [ PASS]
sending to closed channel sync ....................................... [ PASS]
gochan-select ignored body of closed chan recv ....................... [ PASS]
gochan-select ignores body of closed chan send ....................... [ PASS]
thread waiting 1 ..................................................... [ PASS]
thread waiting 2 ..................................................... [ PASS]
thread waiting 3 ..................................................... [ PASS]
thread awakened by close 1 ........................................... [ PASS]
thread awakened by close 2 ........................................... [ PASS]
thread awakened by close 3 ........................................... [ PASS]
19 tests completed in 107/500 seconds.
19 out of 19 (100%) tests passed.
-- done testing closing channels ---------------------------------------------


-- testing buffered channels -------------------------------------------------
thread blocked ....................................................... [ PASS]
thread filled buffer of two items .................................... [ PASS]
gochan is now #<gochan 1 (2/2)>
buffered data from chan item 1 ....................................... [ PASS]
thread awakened by previous receive (buffer available) ............... [ PASS]
thread  .............................................................. [ PASS]
buffered leftovers from chan 2 ....................................... [ PASS]
buffered leftovers from chan 3 ....................................... [ PASS]
chan closed .......................................................... [ PASS]
8 tests completed in 1/1000 seconds.
8 out of 8 (100%) tests passed.
-- done testing buffered channels --------------------------------------------


-- testing gochan-select else clause -----------------------------------------
else clause gets executed if nobody else ready ....................... [ PASS]
else clause does not get executed if data ready ...................... [ PASS]
else clause does not get executed if timeout ready ................... [ PASS]
3 tests completed in 1/125 seconds.
3 out of 3 (100%) tests passed.
-- done testing gochan-select else clause ------------------------------------

message origins: (2 1 2 2 2 2 1 1 2 1 2 1 2 1 2 2 1 1 2 2)

-- testing load-balancer -----------------------------------------------------
not just results from chan1 .......................................... [ PASS]
not just results from chan2 .......................................... [ PASS]
2 tests completed in 1/500 seconds.
2 out of 2 (100%) tests passed.
-- done testing load-balancer ------------------------------------------------


-- testing multiple gochan-close calls ---------------------------------------
first gochan-close gets 1 ............................................ [ PASS]
first gochan-close gets 2 ............................................ [ PASS]
first gochan-close gets 3 ............................................ [ PASS]
first gochan-close gets 4 ............................................ [ PASS]
4 tests completed in 0 seconds.
4 out of 4 (100%) tests passed.
-- done testing multiple gochan-close calls ----------------------------------


-- testing posix signal-handlers ---------------------------------------------
gochan message via signal-handler 1 .................................. [ PASS]
gochan message via signal-handler 2 .................................. [ PASS]
2 tests completed in 67/200 seconds.
2 out of 2 (100%) tests passed.
-- done testing posix signal-handlers ----------------------------------------