diff options
-rw-r--r-- | bin/sh/tests/execution/Makefile | 2 | ||||
-rw-r--r-- | bin/sh/tests/execution/bg11.0 | 16 | ||||
-rw-r--r-- | bin/sh/tests/execution/bg12.0 | 12 |
3 files changed, 30 insertions, 0 deletions
diff --git a/bin/sh/tests/execution/Makefile b/bin/sh/tests/execution/Makefile index 1f7f1c80ae2b2..c457c148b8f39 100644 --- a/bin/sh/tests/execution/Makefile +++ b/bin/sh/tests/execution/Makefile @@ -17,6 +17,8 @@ ${PACKAGE}FILES+= bg7.0 ${PACKAGE}FILES+= bg8.0 ${PACKAGE}FILES+= bg9.0 ${PACKAGE}FILES+= bg10.0 bg10.0.stdout +${PACKAGE}FILES+= bg11.0 +${PACKAGE}FILES+= bg12.0 ${PACKAGE}FILES+= env1.0 ${PACKAGE}FILES+= fork1.0 ${PACKAGE}FILES+= fork2.0 diff --git a/bin/sh/tests/execution/bg11.0 b/bin/sh/tests/execution/bg11.0 new file mode 100644 index 0000000000000..e0c48ed16076a --- /dev/null +++ b/bin/sh/tests/execution/bg11.0 @@ -0,0 +1,16 @@ +# $FreeBSD$ + +T=`mktemp -d ${TMPDIR:-/tmp}/sh-test.XXXXXXXX` +trap 'rm -rf $T' 0 +cd $T || exit 3 +mkfifo fifo1 +# Use a trap, not the default action, since the shell may catch SIGINT and +# therefore its processing may be delayed. +{ trap 'exit 5' TERM; read dummy <fifo1; exit 4; } & +exec 3>fifo1 +kill -INT "$!" +kill -TERM "$!" +exec 3>&- +wait "$!" +r=$? +[ "$r" = 5 ] diff --git a/bin/sh/tests/execution/bg12.0 b/bin/sh/tests/execution/bg12.0 new file mode 100644 index 0000000000000..78102ecf6306d --- /dev/null +++ b/bin/sh/tests/execution/bg12.0 @@ -0,0 +1,12 @@ +# $FreeBSD$ + +T=`mktemp -d ${TMPDIR:-/tmp}/sh-test.XXXXXXXX` +trap 'rm -rf $T' 0 +cd $T || exit 3 +mkfifo fifo1 +{ trap - INT; : >fifo1; sleep 5; exit 4; } & +: <fifo1 +kill -INT "$!" +wait "$!" +r=$? +[ "$r" -gt 128 ] && [ "$(kill -l "$r")" = INT ] |