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:

committed by
Junio C Hamano

parent
5024ade1b1
commit
a6714088e0
@ -589,6 +589,15 @@ USER_TERM="$TERM"
|
|||||||
TERM=dumb
|
TERM=dumb
|
||||||
export TERM USER_TERM
|
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 () {
|
_error_exit () {
|
||||||
finalize_junit_xml
|
finalize_junit_xml
|
||||||
GIT_EXIT_OK=t
|
GIT_EXIT_OK=t
|
||||||
@ -612,7 +621,7 @@ BAIL_OUT () {
|
|||||||
local bail_out="Bail out! "
|
local bail_out="Bail out! "
|
||||||
local message="$1"
|
local message="$1"
|
||||||
|
|
||||||
say_color error $bail_out "$message"
|
say_color >&5 error $bail_out "$message"
|
||||||
_error_exit
|
_error_exit
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -637,9 +646,6 @@ then
|
|||||||
exit 0
|
exit 0
|
||||||
fi
|
fi
|
||||||
|
|
||||||
exec 5>&1
|
|
||||||
exec 6<&0
|
|
||||||
exec 7>&2
|
|
||||||
if test "$verbose_log" = "t"
|
if test "$verbose_log" = "t"
|
||||||
then
|
then
|
||||||
exec 3>>"$GIT_TEST_TEE_OUTPUT_FILE" 4>&3
|
exec 3>>"$GIT_TEST_TEE_OUTPUT_FILE" 4>&3
|
||||||
|
Reference in New Issue
Block a user