test-lib: make BAIL_OUT() work in tests and prereq
BAIL_OUT() is meant to abort the whole test run and print a message with a standard prefix that can be parsed to stdout. Since for every test the normal fd`s are redirected in test_eval_ this output would not be seen when used within the context of a test or prereq like we do in test_have_prereq(). To make this function work in these contexts we move the setup of the fd aliases a few lines up before the first use of BAIL_OUT() and then have this function always print to the alias. Signed-off-by: Fabian Stelzer <fs@gigacodes.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
5024ade1b1
commit
a6714088e0
@ -589,6 +589,15 @@ USER_TERM="$TERM"
|
||||
TERM=dumb
|
||||
export TERM USER_TERM
|
||||
|
||||
# What is written by tests to stdout and stderr is sent to different places
|
||||
# depending on the test mode (e.g. /dev/null in non-verbose mode, piped to tee
|
||||
# with --tee option, etc.). We save the original stdin to FD #6 and stdout and
|
||||
# stderr to #5 and #7, so that the test framework can use them (e.g. for
|
||||
# printing errors within the test framework) independently of the test mode.
|
||||
exec 5>&1
|
||||
exec 6<&0
|
||||
exec 7>&2
|
||||
|
||||
_error_exit () {
|
||||
finalize_junit_xml
|
||||
GIT_EXIT_OK=t
|
||||
@ -612,7 +621,7 @@ BAIL_OUT () {
|
||||
local bail_out="Bail out! "
|
||||
local message="$1"
|
||||
|
||||
say_color error $bail_out "$message"
|
||||
say_color >&5 error $bail_out "$message"
|
||||
_error_exit
|
||||
}
|
||||
|
||||
@ -637,9 +646,6 @@ then
|
||||
exit 0
|
||||
fi
|
||||
|
||||
exec 5>&1
|
||||
exec 6<&0
|
||||
exec 7>&2
|
||||
if test "$verbose_log" = "t"
|
||||
then
|
||||
exec 3>>"$GIT_TEST_TEE_OUTPUT_FILE" 4>&3
|
||||
|
Loading…
Reference in New Issue
Block a user