* 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 b769bbb..2013908 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,13 @@
 2015-02-11  Pádraig Brady  <[email protected]>
 
+       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  <[email protected]>
+
        mountlist: only use libmount when specified
        There are currently many shared libs dependencies introduced by
        libmount with associated runtime and virt mem overhead.
diff --git a/tests/init.sh b/tests/init.sh
index 37fc7b6..ac1e1a2 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.1.0


Reply via email to