Tests: optionally skip redirecting stdin/stdout/stderr

There is a really useful debugging technique developed by Sverre
Rabbelier that inserts "bash &&" somewhere in the test scripts, letting
the developer interact at given points with the current state.

Another debugging technique, used a lot by this here coder, is to run
certain executables via gdb by guarding a "gdb -args" call in
bin-wrappers/git.

Both techniques were disabled by 781f76b1(test-lib: redirect stdin of
tests).

Let's reinstate the ability to run an interactive shell by making the
redirection optional: setting the TEST_NO_REDIRECT environment variable
will skip the redirection.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
This commit is contained in:
Johannes Schindelin
2015-02-20 14:21:04 +00:00
parent 5bf443bcd1
commit 481967703f

View File

@@ -608,6 +608,20 @@ test_eval_ () {
#
# The test itself is run with stderr put back to &4 (so either to
# /dev/null, or to the original stderr if --verbose was used).
if test -n "$TEST_NO_REDIRECT"
then
test_eval_inner_ "$@"
test_eval_ret_=$?
if test "$trace" = t
then
set +x
if test "$test_eval_ret_" != 0
then
say_color error >&4 "error: last command exited with \$?=$test_eval_ret_"
fi
fi
return $test_eval_ret_
fi
{
test_eval_inner_ "$@" </dev/null >&3 2>&4
test_eval_ret_=$?