use tests::tests;
check_expected ([<<'EOF']);
(alarm-simultaneous) begin
-(alarm-simultaneous) Creating 5 threads to sleep 5 times each.
+(alarm-simultaneous) Creating 3 threads to sleep 5 times each.
(alarm-simultaneous) Each thread sleeps 10 ticks each time.
(alarm-simultaneous) Within an iteration, all threads should wake up on the same tick.
(alarm-simultaneous) iteration 0, thread 0: woke up after 10 ticks
(alarm-simultaneous) iteration 0, thread 1: woke up 0 ticks later
(alarm-simultaneous) iteration 0, thread 2: woke up 0 ticks later
-(alarm-simultaneous) iteration 0, thread 3: woke up 0 ticks later
-(alarm-simultaneous) iteration 0, thread 4: woke up 0 ticks later
(alarm-simultaneous) iteration 1, thread 0: woke up 10 ticks later
(alarm-simultaneous) iteration 1, thread 1: woke up 0 ticks later
(alarm-simultaneous) iteration 1, thread 2: woke up 0 ticks later
-(alarm-simultaneous) iteration 1, thread 3: woke up 0 ticks later
-(alarm-simultaneous) iteration 1, thread 4: woke up 0 ticks later
(alarm-simultaneous) iteration 2, thread 0: woke up 10 ticks later
(alarm-simultaneous) iteration 2, thread 1: woke up 0 ticks later
(alarm-simultaneous) iteration 2, thread 2: woke up 0 ticks later
-(alarm-simultaneous) iteration 2, thread 3: woke up 0 ticks later
-(alarm-simultaneous) iteration 2, thread 4: woke up 0 ticks later
(alarm-simultaneous) iteration 3, thread 0: woke up 10 ticks later
(alarm-simultaneous) iteration 3, thread 1: woke up 0 ticks later
(alarm-simultaneous) iteration 3, thread 2: woke up 0 ticks later
-(alarm-simultaneous) iteration 3, thread 3: woke up 0 ticks later
-(alarm-simultaneous) iteration 3, thread 4: woke up 0 ticks later
(alarm-simultaneous) iteration 4, thread 0: woke up 10 ticks later
(alarm-simultaneous) iteration 4, thread 1: woke up 0 ticks later
(alarm-simultaneous) iteration 4, thread 2: woke up 0 ticks later
-(alarm-simultaneous) iteration 4, thread 3: woke up 0 ticks later
-(alarm-simultaneous) iteration 4, thread 4: woke up 0 ticks later
(alarm-simultaneous) end
EOF
pass;