From 2d6d1ca67f4f5c8c9dbf40b24675810a6e778c78 Mon Sep 17 00:00:00 2001 From: AnotherTest Date: Mon, 26 Oct 2020 21:05:12 +0330 Subject: [PATCH] Shell: Add some basic tests for backgrounding --- Shell/Tests/backgrounding.sh | 53 ++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 Shell/Tests/backgrounding.sh diff --git a/Shell/Tests/backgrounding.sh b/Shell/Tests/backgrounding.sh new file mode 100644 index 0000000000..08a78b53fc --- /dev/null +++ b/Shell/Tests/backgrounding.sh @@ -0,0 +1,53 @@ +#!/bin/Shell + +setopt --verbose + +fail(msg) { + echo FAIL: $msg + exit 1 +} + +last_idx='' +block_idx=0 +block() { + block_idx=$(expr 1 + $block_idx) + last_idx=$block_idx + mkfifo fifo$block_idx + cat fifo$block_idx& +} + +unblock(idx) { + echo unblock $idx > fifo$idx + rm -f fifo$idx +} + +assert_job_count(count) { + ecount=$(jobs | wc -l) + shift + if test $ecount -ne $count { + for $* { + unblock $it + } + fail "expected $ecount == $count" + } +} + +block +i=$last_idx + +assert_job_count 1 $i + +unblock $i +wait + +block +i=$last_idx +block +j=$last_idx + +assert_job_count 2 $i $j + +unblock $i +unblock $j +wait +