diff options
-rw-r--r-- | t/test-lib.sh | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/t/test-lib.sh b/t/test-lib.sh index b16a9b98f4..57c3d53293 100644 --- a/t/test-lib.sh +++ b/t/test-lib.sh @@ -444,15 +444,21 @@ test_debug () { test "$debug" = "" || eval "$1" } +test_eval_ () { + # This is a separate function because some tests use + # "return" to end a test_expect_success block early. + eval >&3 2>&4 "$*" +} + test_run_ () { test_cleanup=: expecting_failure=$2 - eval >&3 2>&4 "$1" + test_eval_ "$1" eval_ret=$? if test -z "$immediate" || test $eval_ret = 0 || test -n "$expecting_failure" then - eval >&3 2>&4 "$test_cleanup" + test_eval_ "$test_cleanup" fi if test "$verbose" = "t" && test -n "$HARNESS_ACTIVE"; then echo "" |