diff options
Diffstat (limited to 'tests/sigint-during-customize-hook')
-rw-r--r-- | tests/sigint-during-customize-hook | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/tests/sigint-during-customize-hook b/tests/sigint-during-customize-hook new file mode 100644 index 0000000..c8a4c94 --- /dev/null +++ b/tests/sigint-during-customize-hook @@ -0,0 +1,22 @@ +#!/bin/sh +set -eu +export LC_ALL=C.UTF-8 +setsid --wait {{ CMD }} --mode=root --variant=apt --customize-hook='touch hookstarted && sleep 10 && touch fail' {{ DIST }} /tmp/debian-chroot {{ MIRROR }} & +pid=$! +while sleep 1; do [ -e hookstarted ] && break; done +rm hookstarted +# negative PID values choose the whole process group +pgid=$((-1*$(ps -p "$pid" -o pgid=))) +/bin/kill --signal INT -- "$pgid" +ret=0 +wait $pid || ret=$? +rm -r /tmp/debian-chroot +if [ -e fail ]; then + echo customize hook was not interrupted >&2 + rm fail + exit 1 +fi +if [ "$ret" = 0 ]; then + echo expected failure but got exit $ret >&2 + exit 1 +fi |