This patch series makes '-x' tracing of tests work reliably even when running them with /bin/sh, and setting TEST_SHELL_PATH=bash will be unnecessary.
make GIT_TEST_OPTS='-x --verbose-log' test passes on my setup and on all Travis CI build jobs (though neither me nor Travis CI run all tests, e.g. CVS). The first patch is the most important: with a couple of well-placed file descriptor redirections it ensures that the stderr of the test helper functions running git commands only contain the stderr of the tested command, thereby resolving over 90% of the failures resulting from running the test suite with '-x' and /bin/sh. Most of the following patches resolve the remaining failures, one test script at a time, in most cases by limiting the scope of stderr redirections from functions and subshells to the tested git commands. Except the second and ninth patches, which, arguably, could be considered as cheating... I admit, my enthusiasm suddenly run out when I saw t1510 :) The last two patches are just finishing touches with a bit of documentation updates and enabling '-x' tracing in Travis CI build jobs. There is currently nothing in 'pu' that would require additional fixes to make this patch series work. SZEDER Gábor (11): t: prevent '-x' tracing from interfering with test helpers' stderr t: add means to disable '-x' tracing for individual test scripts t1507-rev-parse-upstream: don't check the stderr of a shell function t3030-merge-recursive: don't check the stderr of a subshell t5500-fetch-pack: don't check the stderr of a subshell t5526: use $TRASH_DIRECTORY to specify the path of GIT_TRACE log file t5570-git-daemon: don't check the stderr of a subshell t9903-bash-prompt: don't check the stderr of __git_ps1() t1510-repo-setup: mark as untraceable with '-x' t/README: add a note about don't saving stderr of compound commands travis-ci: run tests with '-x' tracing ci/lib-travisci.sh | 2 +- t/README | 23 +++++++++++++++++++--- t/lib-terminal.sh | 4 ++-- t/t1507-rev-parse-upstream.sh | 14 +++++++------- t/t1510-repo-setup.sh | 4 ++++ t/t3030-merge-recursive.sh | 36 +++++++++++++++++++---------------- t/t5500-fetch-pack.sh | 12 ++++++------ t/t5526-fetch-submodules.sh | 2 +- t/t5570-git-daemon.sh | 2 +- t/t9903-bash-prompt.sh | 14 ++------------ t/test-lib-functions.sh | 24 +++++++++++------------ t/test-lib.sh | 19 +++++++++++++++++- 12 files changed, 94 insertions(+), 62 deletions(-) -- 220.127.116.110.g911b7cc0da