t/README: add a note about don't saving stderr of compound commands
Explain in 't/README' why it is a bad idea to redirect and verify the stderr of compound commands, in the hope that future contributions will follow this advice and the test suite will keep working with '-x' tracing and /bin/sh. While at it, since we can now run the test suite with '-x' without needing a Bash version supporting BASH_XTRACEFD, remove the now outdated caution note about non-Bash shells from the description of the '-x' option. 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
5827506928
commit
94201a2b00
20
t/README
20
t/README
@ -84,9 +84,7 @@ appropriately before running "make".
|
|||||||
|
|
||||||
-x::
|
-x::
|
||||||
Turn on shell tracing (i.e., `set -x`) during the tests
|
Turn on shell tracing (i.e., `set -x`) during the tests
|
||||||
themselves. Implies `--verbose`. Note that in non-bash shells,
|
themselves. Implies `--verbose`.
|
||||||
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'
|
Ignored in test scripts that set the variable 'test_untraceable'
|
||||||
to a non-empty value, unless it's run with a Bash version
|
to a non-empty value, unless it's run with a Bash version
|
||||||
supporting BASH_XTRACEFD, i.e. v4.1 or later.
|
supporting BASH_XTRACEFD, i.e. v4.1 or later.
|
||||||
@ -455,6 +453,22 @@ Don't:
|
|||||||
causing the next test to start in an unexpected directory. Do so
|
causing the next test to start in an unexpected directory. Do so
|
||||||
inside a subshell if necessary.
|
inside a subshell if necessary.
|
||||||
|
|
||||||
|
- save and verify the standard error of compound commands, i.e. group
|
||||||
|
commands, subshells, and shell functions (except test helper
|
||||||
|
functions like 'test_must_fail') like this:
|
||||||
|
|
||||||
|
( cd dir && git cmd ) 2>error &&
|
||||||
|
test_cmp expect error
|
||||||
|
|
||||||
|
When running the test with '-x' tracing, then the trace of commands
|
||||||
|
executed in the compound command will be included in standard error
|
||||||
|
as well, quite possibly throwing off the subsequent checks examining
|
||||||
|
the output. Instead, save only the relevant git command's standard
|
||||||
|
error:
|
||||||
|
|
||||||
|
( cd dir && git cmd 2>../error ) &&
|
||||||
|
test_cmp expect error
|
||||||
|
|
||||||
- Break the TAP output
|
- Break the TAP output
|
||||||
|
|
||||||
The raw output from your test may be interpreted by a TAP harness. TAP
|
The raw output from your test may be interpreted by a TAP harness. TAP
|
||||||
|
Loading…
Reference in New Issue
Block a user