t: add means to disable '-x' tracing for individual test scripts
The previous patch resolved most of the test failures caused by running our test suite with '-x' tracing and /bin/sh, and the following patches in this series will resolve almost all of the remaining failures. Unfortunately, not yet all. Add means to disable '-x' tracing for individual test scripts by setting the $test_untraceable variable to a non-empty value in the test script before sourcing 'test-lib.sh'. However, since '-x' tracing is not an issue with recent Bash versions supporting BASH_XTRACEFD, i.e. v4.1 and later, don't disable tracing when the test script is run with such a Bash version even when $test_untraceable is set. Signed-off-by: SZEDER Gábor <szeder.dev@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
a5bf824f3b
commit
5fc98e79fc
3
t/README
3
t/README
@ -87,6 +87,9 @@ appropriately before running "make".
|
|||||||
themselves. Implies `--verbose`. Note that in non-bash shells,
|
themselves. Implies `--verbose`. Note that in non-bash shells,
|
||||||
this can cause failures in some tests which redirect and test
|
this can cause failures in some tests which redirect and test
|
||||||
the output of shell functions. Use with caution.
|
the output of shell functions. Use with caution.
|
||||||
|
Ignored in test scripts that set the variable 'test_untraceable'
|
||||||
|
to a non-empty value, unless it's run with a Bash version
|
||||||
|
supporting BASH_XTRACEFD, i.e. v4.1 or later.
|
||||||
|
|
||||||
-d::
|
-d::
|
||||||
--debug::
|
--debug::
|
||||||
|
@ -263,7 +263,24 @@ do
|
|||||||
GIT_TEST_CHAIN_LINT=0
|
GIT_TEST_CHAIN_LINT=0
|
||||||
shift ;;
|
shift ;;
|
||||||
-x)
|
-x)
|
||||||
|
# Some test scripts can't be reliably traced with '-x',
|
||||||
|
# unless the test is run with a Bash version supporting
|
||||||
|
# BASH_XTRACEFD (introduced in Bash v4.1). Check whether
|
||||||
|
# this test is marked as such, and ignore '-x' if it
|
||||||
|
# isn't executed with a suitable Bash version.
|
||||||
|
if test -z "$test_untraceable" || {
|
||||||
|
test -n "$BASH_VERSION" && {
|
||||||
|
test ${BASH_VERSINFO[0]} -gt 4 || {
|
||||||
|
test ${BASH_VERSINFO[0]} -eq 4 &&
|
||||||
|
test ${BASH_VERSINFO[1]} -ge 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
then
|
||||||
trace=t
|
trace=t
|
||||||
|
else
|
||||||
|
echo >&2 "warning: ignoring -x; '$0' is untraceable without BASH_XTRACEFD"
|
||||||
|
fi
|
||||||
shift ;;
|
shift ;;
|
||||||
--verbose-log)
|
--verbose-log)
|
||||||
verbose_log=t
|
verbose_log=t
|
||||||
|
Loading…
Reference in New Issue
Block a user