summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDenys Vlasenko <vda.linux@googlemail.com>2011-05-08 23:05:33 (GMT)
committer Denys Vlasenko <vda.linux@googlemail.com>2011-05-08 23:05:33 (GMT)
commitbcf1fa80f31468a2299b681dd096d41a0b5ed7f4 (patch)
tree38b0b3756b33195b56bb9e98f53c02eeb2ac2f31
parent54e9e1217c67563d70d6e2b14021293f707d7927 (diff)
downloadbusybox-bcf1fa80f31468a2299b681dd096d41a0b5ed7f4.tar.gz
busybox-bcf1fa80f31468a2299b681dd096d41a0b5ed7f4.tar.bz2
hush: add tests for interrupting read
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
-rw-r--r--shell/hush_test/hush-trap/signal_read1.right1
-rwxr-xr-xshell/hush_test/hush-trap/signal_read1.tests5
-rw-r--r--shell/hush_test/hush-trap/signal_read2.right2
-rwxr-xr-xshell/hush_test/hush-trap/signal_read2.tests7
-rwxr-xr-xshell/hush_test/run-all10
5 files changed, 21 insertions, 4 deletions
diff --git a/shell/hush_test/hush-trap/signal_read1.right b/shell/hush_test/hush-trap/signal_read1.right
new file mode 100644
index 0000000..2870a8e
--- /dev/null
+++ b/shell/hush_test/hush-trap/signal_read1.right
@@ -0,0 +1 @@
+Got HUP:0
diff --git a/shell/hush_test/hush-trap/signal_read1.tests b/shell/hush_test/hush-trap/signal_read1.tests
new file mode 100755
index 0000000..1105479
--- /dev/null
+++ b/shell/hush_test/hush-trap/signal_read1.tests
@@ -0,0 +1,5 @@
+(sleep 1; kill -HUP $$) &
+trap 'echo "Got HUP:$?"; exit' HUP
+while true; do
+ read ignored
+done
diff --git a/shell/hush_test/hush-trap/signal_read2.right b/shell/hush_test/hush-trap/signal_read2.right
new file mode 100644
index 0000000..71a6bc1
--- /dev/null
+++ b/shell/hush_test/hush-trap/signal_read2.right
@@ -0,0 +1,2 @@
+HUP
+Done:129
diff --git a/shell/hush_test/hush-trap/signal_read2.tests b/shell/hush_test/hush-trap/signal_read2.tests
new file mode 100755
index 0000000..eab5b9b
--- /dev/null
+++ b/shell/hush_test/hush-trap/signal_read2.tests
@@ -0,0 +1,7 @@
+$THIS_SH -c '
+(sleep 1; kill -HUP $$) &
+while true; do
+ read ignored
+done
+'
+echo "Done:$?"
diff --git a/shell/hush_test/run-all b/shell/hush_test/run-all
index 256f152..64a7abc 100755
--- a/shell/hush_test/run-all
+++ b/shell/hush_test/run-all
@@ -48,8 +48,9 @@ do_test()
*.orig|*~) ;;
#*) echo $x ; sh $x ;;
*)
+ echo -n "$1/$x:"
sh "$x" >"../$1-$x.fail" 2>&1 && \
- { echo "$1/$x: ok"; rm "../$1-$x.fail"; } || echo "$1/$x: fail";
+ { { echo " ok"; rm "../$1-$x.fail"; } || echo " fail"; }
;;
esac
done
@@ -60,6 +61,7 @@ do_test()
name="${x%%.tests}"
test -f "$name.right" || continue
# echo Running test: "$x"
+ echo -n "$1/$x:"
(
"$THIS_SH" "./$x" >"$name.xx" 2>&1
# filter C library differences
@@ -70,9 +72,9 @@ do_test()
diff -u "$name.xx" "$name.right" >"../$1-$x.fail" && rm -f "$name.xx" "../$1-$x.fail"
)
case $? in
- 0) echo "$1/$x: ok";;
- 77) echo "$1/$x: skip (feature disabled)";;
- *) echo "$1/$x: fail"; tret=1;;
+ 0) echo " ok";;
+ 77) echo " skip (feature disabled)";;
+ *) echo " fail"; tret=1;;
esac
done
exit ${tret}