summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPádraig Brady <P@draigBrady.com>2015-02-16 17:20:39 +0000
committerPádraig Brady <P@draigBrady.com>2015-02-18 23:36:34 +0000
commitced120406f47584eb672f9731d5fee0e62761c0c (patch)
treefd541cebb173a5bfe001bfd1d2286e7acb8b6353
parent9f5dce80702d494535ab332273d20da1f9ca4365 (diff)
downloadcoreutils-ced120406f47584eb672f9731d5fee0e62761c0c.tar.xz
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.
-rwxr-xr-xtests/init.sh10
1 files changed, 9 insertions, 1 deletions
diff --git a/tests/init.sh b/tests/init.sh
index ac1e1a211..9f403c51d 100755
--- a/tests/init.sh
+++ b/tests/init.sh
@@ -100,10 +100,18 @@ framework_failure_ () { warn_ "$ME_: set-up failure: $@"; Exit 99; }
# 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.