Browse Source

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>
maint
SZEDER Gábor 7 years ago committed by Junio C Hamano
parent
commit
5fc98e79fc
  1. 3
      t/README
  2. 19
      t/test-lib.sh

3
t/README

@ -87,6 +87,9 @@ appropriately before running "make". @@ -87,6 +87,9 @@ appropriately before running "make".
themselves. Implies `--verbose`. Note that in non-bash shells,
this can cause failures in some tests which redirect and test
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::
--debug::

19
t/test-lib.sh

@ -263,7 +263,24 @@ do @@ -263,7 +263,24 @@ do
GIT_TEST_CHAIN_LINT=0
shift ;;
-x)
trace=t
# 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
else
echo >&2 "warning: ignoring -x; '$0' is untraceable without BASH_XTRACEFD"
fi
shift ;;
--verbose-log)
verbose_log=t

Loading…
Cancel
Save