X-Git-Url: https://tinc-vpn.org/git/browse?a=blobdiff_plain;f=test%2Ftestlib.sh.in;h=ec8f400f5365d47dd31e8bc1a60369cb1931e4b8;hb=e050753d1fc4d4465032919746c2a4db78f19932;hp=14192eae9b29cc380922f81676ff4b40ce673387;hpb=4ca3ecb6d5c0667eba68313a5ca24e73dcc8e9e4;p=tinc diff --git a/test/testlib.sh.in b/test/testlib.sh.in index 14192eae..ec8f400f 100644 --- a/test/testlib.sh.in +++ b/test/testlib.sh.in @@ -26,6 +26,8 @@ SPTPS_KEYPAIR=$(realdir "../src/sptps_keypair@EXEEXT@") # Exit status list # shellcheck disable=SC2034 +EXIT_FAILURE=1 +# shellcheck disable=SC2034 EXIT_SKIP_TEST=77 # The list of the environment variables that tinc injects into the scripts it calls. @@ -98,6 +100,19 @@ must_fail() { fi } +# Executes whatever is passed to it, checking that the resulting exit code is equal to the first argument. +expect_code() { + expected=$1 + shift + + code=0 + "$@" || code=$? + + if [ $code != "$expected" ]; then + bail "wrong exit code $code, expected $expected" + fi +} + # Runs its arguments with timeout(1) or gtimeout(1) if either are installed. # Usage: try_limit_time 10 command --with --args if type timeout >/dev/null; then @@ -332,6 +347,11 @@ cleanup() { ( set +ex + if command -v cleanup_hook 2>/dev/null; then + echo >&2 "Cleanup hook found, calling..." + cleanup_hook + fi + stop_all_tincs # Ask nicely, then kill anything that's left.