diff options
author | SZEDER Gábor <szeder.dev@gmail.com> | 2019-01-05 01:08:53 (GMT) |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2019-01-07 17:24:05 (GMT) |
commit | 0a97e86e9a28746604f38eacb11119aadbadb9c8 (patch) | |
tree | 1b078bfaaaf967f6f963ad42152a98623edcee4e /t/test-lib.sh | |
parent | d45cec4bea4250e7aabb1415ae4d50e0eccaa4b7 (diff) | |
download | git-0a97e86e9a28746604f38eacb11119aadbadb9c8.zip git-0a97e86e9a28746604f38eacb11119aadbadb9c8.tar.gz git-0a97e86e9a28746604f38eacb11119aadbadb9c8.tar.bz2 |
test-lib: extract Bash version check for '-x' tracing
One of our test scripts, 't1510-repo-setup.sh' [1], still can't be
reliably run with '-x' tracing enabled, unless it's executed with a
Bash version supporting BASH_XTRACEFD (since v4.1). We have a lengthy
condition to check the version of the shell running the test script,
and disable tracing if it's not executed with a suitable Bash version
[2].
Move this check out from the option parsing loop, so other options can
imply '-x' by setting 'trace=t', without missing this Bash version
check.
[1] 5827506928 (t1510-repo-setup: mark as untraceable with '-x',
2018-02-24)
[2] 5fc98e79fc (t: add means to disable '-x' tracing for individual
test scripts, 2018-02-24)
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 | 37 |
1 files changed, 19 insertions, 18 deletions
diff --git a/t/test-lib.sh b/t/test-lib.sh index 4c3744c..1f02e2e 100644 --- a/t/test-lib.sh +++ b/t/test-lib.sh @@ -317,24 +317,7 @@ do GIT_TEST_CHAIN_LINT=0 shift ;; -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" && eval ' - 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 + trace=t shift ;; -V|--verbose-log) verbose_log=t @@ -353,6 +336,24 @@ then test -z "$verbose_log" && verbose=t fi +if test -n "$trace" && test -n "$test_untraceable" +then + # '-x' tracing requested, but this test script can't be reliably + # traced, unless it is run with a Bash version supporting + # BASH_XTRACEFD (introduced in Bash v4.1). + if test -n "$BASH_VERSION" && eval ' + test ${BASH_VERSINFO[0]} -gt 4 || { + test ${BASH_VERSINFO[0]} -eq 4 && + test ${BASH_VERSINFO[1]} -ge 1 + } + ' + then + : Executed by a Bash version supporting BASH_XTRACEFD. Good. + else + echo >&2 "warning: ignoring -x; '$0' is untraceable without BASH_XTRACEFD" + trace= + fi +fi if test -n "$trace" && test -z "$verbose_log" then verbose=t |