diff options
| author | SZEDER Gábor <szeder.dev@gmail.com> | 2018-02-24 00:39:42 +0100 |
|---|---|---|
| committer | Junio C Hamano <gitster@pobox.com> | 2018-02-27 12:43:13 -0800 |
| commit | 5fc98e79fc0c40a5d25cb988d3948c0c0ec9f8b8 (patch) | |
| tree | 807c3520e089c4db64d2be46bdf6c22fea871b47 /t/test-lib.sh | |
| parent | a5bf824f3b4da434b7c6b5e4b47ecd2d9e0302c1 (diff) | |
| download | git-5fc98e79fc0c40a5d25cb988d3948c0c0ec9f8b8.tar.xz | |
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>
Diffstat (limited to 't/test-lib.sh')
| -rw-r--r-- | t/test-lib.sh | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/t/test-lib.sh b/t/test-lib.sh index 33f6ce26f6..732213ef1b 100644 --- a/t/test-lib.sh +++ b/t/test-lib.sh @@ -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 |
