From c61e31c4e5fcf8e1115c7cf57014889151ec77ea Mon Sep 17 00:00:00 2001 From: =?utf8?q?P=C3=A1draig=20Brady?=
Date: Wed, 11 Feb 2015 00:16:55 +0000 Subject: [PATCH] tests: provide returns_() to simplify exit status checking * tests/init.sh (returns_): A new function for use in tests, to allow for easier checking of return values, where you expect a command to exit with failure status. By checking for a particular exit code, you don't hide any crashes for example. --- ChangeLog | 8 ++++++++ tests/init.sh | 13 +++++++++++++ 2 files changed, 21 insertions(+) diff --git a/ChangeLog b/ChangeLog index b769bbb79e..20139087fc 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +2015-02-11 Pádraig Brady
+ + tests: provide returns_() to simplify exit status checking + * tests/init.sh (returns_): A new function for use in tests, + to allow for easier checking of return values, where you expect + a command to exit with failure status. By checking for a particular + exit code, you don't hide any crashes for example. + 2015-02-11 Pádraig Brady
mountlist: only use libmount when specified diff --git a/tests/init.sh b/tests/init.sh index 37fc7b62ee..ac1e1a2115 100644 --- a/tests/init.sh +++ b/tests/init.sh @@ -93,6 +93,19 @@ skip_ () { warn_ "$ME_: skipped test: $@"; Exit 77; } fatal_ () { warn_ "$ME_: hard error: $@"; Exit 99; } framework_failure_ () { warn_ "$ME_: set-up failure: $@"; Exit 99; } +# This is used to simplify checking of the return value +# which is useful when ensuring a command fails as desired. +# I.e., just doing `command ... &&fail=1` will not catch +# a segfault in command for example. With this helper you +# instead check an explicit exit code like +# returns_ 1 command ... || fail +returns_ () { + local exp_exit="$1" + shift + "$@" + test $? -eq $exp_exit +} + # Sanitize this shell to POSIX mode, if possible. DUALCASE=1; export DUALCASE if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then -- 2.39.5