changeset 17899:28409c0a2a56

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.
author Pádraig Brady <P@draigBrady.com>
date Wed, 11 Feb 2015 00:16:55 +0000
parents e116e136cebd
children c4e49082f4e2
files ChangeLog tests/init.sh
diffstat 2 files changed, 21 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2015-02-11  Pádraig Brady  <P@draigBrady.com>
+
+	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  <P@draigBrady.com>
 
 	mountlist: only use libmount when specified
--- a/tests/init.sh
+++ b/tests/init.sh
@@ -93,6 +93,19 @@
 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