changeset 17935:0ad1f4c9eed5 default tip

tests: support stderr verification with returns_() * tests/init.sh (returns_): Disable tracing for this wrapper function, so that stderr of the wrapped command is unchanged, allowing for verification of the contents.
author Pádraig Brady <P@draigBrady.com>
date Mon, 16 Feb 2015 17:20:39 +0000
parents b4da4a9fe406
children
files ChangeLog tests/init.sh
diffstat 2 files changed, 16 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2015-02-24  Pádraig Brady  <P@draigBrady.com>
+
+	tests: support stderr verification with returns_()
+	* tests/init.sh (returns_): Disable tracing for this wrapper
+	function, so that stderr of the wrapped command is unchanged,
+	allowing for verification of the contents.
+
 2015-02-24  Pavel Hrdina  <phrdina@redhat.com>
 
 	passfd: avoid valgrind uninitalised data warning
--- a/tests/init.sh
+++ b/tests/init.sh
@@ -100,10 +100,18 @@
 # instead check an explicit exit code like
 #   returns_ 1 command ... || fail
 returns_ () {
+  # Disable tracing so it doesn't interfere with stderr of the wrapped command
+  { set +x; } 2>/dev/null
+
   local exp_exit="$1"
   shift
   "$@"
-  test $? -eq $exp_exit
+  test $? -eq $exp_exit && ret_=0 || ret_=1
+
+  if test "$VERBOSE" = yes && test "$gl_set_x_corrupts_stderr_" = false; then
+    set -x
+  fi
+  { return $ret_; } 2>/dev/null
 }
 
 # Sanitize this shell to POSIX mode, if possible.