diff options
author | Denis Vlasenko <vda.linux@googlemail.com> | 2008-02-13 18:09:56 +0000 |
---|---|---|
committer | Denis Vlasenko <vda.linux@googlemail.com> | 2008-02-13 18:09:56 +0000 |
commit | 81887e23429bacb1d1f330f5aea706192901932a (patch) | |
tree | 1c3d7e3936eab3ec8139a45814478f26b71252bf | |
parent | 23ffb6a4a2a01fe41abe4e42d46fa16bdc2603fd (diff) | |
download | busybox-w32-81887e23429bacb1d1f330f5aea706192901932a.tar.gz busybox-w32-81887e23429bacb1d1f330f5aea706192901932a.tar.bz2 busybox-w32-81887e23429bacb1d1f330f5aea706192901932a.zip |
ash: add a testcase for recently fixed signal bug
-rw-r--r-- | shell/ash_test/ash-redir/redir.tests | 6 | ||||
-rw-r--r-- | shell/ash_test/ash-signals/signal1.right | 20 | ||||
-rwxr-xr-x | shell/ash_test/ash-signals/signal1.tests | 24 | ||||
-rwxr-xr-x | shell/ash_test/run-all | 6 |
4 files changed, 49 insertions, 7 deletions
diff --git a/shell/ash_test/ash-redir/redir.tests b/shell/ash_test/ash-redir/redir.tests deleted file mode 100644 index 7a1a66806..000000000 --- a/shell/ash_test/ash-redir/redir.tests +++ /dev/null | |||
@@ -1,6 +0,0 @@ | |||
1 | # test: closed fds should stay closed | ||
2 | exec 1>&- | ||
3 | echo TEST >TEST | ||
4 | echo JUNK # lost: stdout is closed | ||
5 | cat TEST >&2 | ||
6 | rm TEST | ||
diff --git a/shell/ash_test/ash-signals/signal1.right b/shell/ash_test/ash-signals/signal1.right new file mode 100644 index 000000000..66c30a5f0 --- /dev/null +++ b/shell/ash_test/ash-signals/signal1.right | |||
@@ -0,0 +1,20 @@ | |||
1 | got signal | ||
2 | trap -- 'echo got signal' USR1 | ||
3 | sent 1 signal | ||
4 | got signal | ||
5 | sleep interrupted | ||
6 | trap -- 'echo got signal' USR1 | ||
7 | sent 2 signal | ||
8 | got signal | ||
9 | sleep interrupted | ||
10 | trap -- 'echo got signal' USR1 | ||
11 | sent 3 signal | ||
12 | got signal | ||
13 | sleep interrupted | ||
14 | trap -- 'echo got signal' USR1 | ||
15 | sent 4 signal | ||
16 | got signal | ||
17 | sleep interrupted | ||
18 | trap -- 'echo got signal' USR1 | ||
19 | sent 5 signal | ||
20 | sleep completed | ||
diff --git a/shell/ash_test/ash-signals/signal1.tests b/shell/ash_test/ash-signals/signal1.tests new file mode 100755 index 000000000..49a395bad --- /dev/null +++ b/shell/ash_test/ash-signals/signal1.tests | |||
@@ -0,0 +1,24 @@ | |||
1 | sleeping=true | ||
2 | |||
3 | trap "echo got signal" USR1 | ||
4 | |||
5 | for try in 1 2 3 4 5; do | ||
6 | kill -USR1 $$ | ||
7 | sleep 1 | ||
8 | echo sent $try signal | ||
9 | done & | ||
10 | |||
11 | sleep 10 & | ||
12 | |||
13 | while $sleeping; do | ||
14 | trap | ||
15 | if wait %%; then | ||
16 | echo sleep completed | ||
17 | sleeping=false | ||
18 | elif [ $? == 127 ]; then | ||
19 | echo no sleep tonite | ||
20 | sleeping=false | ||
21 | else | ||
22 | echo sleep interrupted; | ||
23 | fi | ||
24 | done | ||
diff --git a/shell/ash_test/run-all b/shell/ash_test/run-all index 02f6d2a9d..416900aa2 100755 --- a/shell/ash_test/run-all +++ b/shell/ash_test/run-all | |||
@@ -1,6 +1,9 @@ | |||
1 | #!/bin/sh | 1 | #!/bin/sh |
2 | 2 | ||
3 | test -x ash || { echo "No ./ash?!"; exit; } | 3 | test -x ash || { |
4 | echo "No ./ash?! Perhaps you want to run 'ln -s ../../busybox ash'" | ||
5 | exit | ||
6 | } | ||
4 | test -x printenv || gcc -O2 -o printenv printenv.c || exit $? | 7 | test -x printenv || gcc -O2 -o printenv printenv.c || exit $? |
5 | test -x recho || gcc -O2 -o recho recho.c || exit $? | 8 | test -x recho || gcc -O2 -o recho recho.c || exit $? |
6 | test -x zecho || gcc -O2 -o zecho zecho.c || exit $? | 9 | test -x zecho || gcc -O2 -o zecho zecho.c || exit $? |
@@ -50,6 +53,7 @@ if [ $# -lt 1 ]; then | |||
50 | modules=`ls -d ash-*` | 53 | modules=`ls -d ash-*` |
51 | 54 | ||
52 | for module in $modules; do | 55 | for module in $modules; do |
56 | echo do_test $module | ||
53 | do_test $module | 57 | do_test $module |
54 | done | 58 | done |
55 | else | 59 | else |