1
0
mirror of https://blitiri.com.ar/repos/chasquid synced 2025-12-17 14:37:02 +00:00

test: Properly exit with non-0 status on errors

SIGTERM can happen normally in our tests, and the current code has a
trap that makes it trigger a clean exit.

This causes some errors to be masked, as we end up calling "exit 0" when
they occur. The error message will still be displayed, but the caller
script will assume it worked.

This patch fixes the problem by adjusting the bash signal handlers, so
that we ignore SIGTERM (so bash does not get killed by the exit handler)
and exit with error on SIGINT (triggered by ctrl-c).

Note that under some conditions the SIGTERM trap is not necessary, but
this depends on the environment.
This commit is contained in:
Alberto Bertogli
2018-04-09 22:33:22 +01:00
parent 24af22ac35
commit 88789c8cde

View File

@@ -19,9 +19,9 @@ function init() {
rm -rf .mail
# Set traps to kill our subprocesses when we exit (for any reason).
# https://stackoverflow.com/questions/360201/
trap "exit" INT TERM
trap "kill 0" EXIT
trap ":" TERM # Avoid the EXIT handler from killing bash.
trap "exit 2" INT # Ctrl-C, make sure we fail in that case.
trap "kill 0" EXIT # Kill children on exit.
}
function chasquid() {