tests: make test_must_fail more verbose

Because test_must_fail fails when a command succeeds, the
command frequently does not produce any output (since, after
all, it thought it was succeeding). So let's have
test_must_fail itself report that a problem occurred.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Jeff King 2010-08-31 11:56:36 -04:00 committed by Junio C Hamano
parent d8a9480384
commit 16034fbe59

View File

@ -591,7 +591,15 @@ test_path_is_missing () {
test_must_fail () { test_must_fail () {
"$@" "$@"
test $? -gt 0 -a $? -le 129 -o $? -gt 192 exit_code=$?
if test $exit_code = 0; then
echo >&2 "test_must_fail: command succeeded: $*"
return 1
elif test $exit_code -gt 129 -a $exit_code -le 192; then
echo >&2 "test_must_fail: died by signal: $*"
return 1
fi
return 0
} }
# Similar to test_must_fail, but tolerates success, too. This is # Similar to test_must_fail, but tolerates success, too. This is