git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH 00/11] Make the test suite pass with '-x' and /bin/sh

From
SZEDER Gábor <szeder.dev@gmail.com>
Date
Feb 23, 2018, 23:39 UTC
Message-ID
<20180223233951.11154-1-szeder.dev@gmail.com>

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(-)
-- 
2.16.2.400.g911b7cc0da
Next: SZEDER Gábor
Message 1 of 26 in “Make the test suite pass with '-x' and /bin/sh”
  1. 00/11 Make the test suite pass with '-x' and /bin/shSZEDER Gábor, Feb 23, 2018
  2. 02/11 t: add means to disable '-x' tracing for individual test scriptsSZEDER Gábor, Feb 23, 2018
  3. 01/11 t: prevent '-x' tracing from interfering with test helpers' stderrSZEDER Gábor, Feb 23, 2018
  4. SZEDER GáborFeb 24, 2018
  5. t: prevent '-x' tracing from interfering with test helpers' stderrSZEDER Gábor, Feb 25, 2018
  6. 03/11 t1507-rev-parse-upstream: don't check the stderr of a shell functionSZEDER Gábor, Feb 23, 2018
  7. 05/11 t5500-fetch-pack: don't check the stderr of a subshellSZEDER Gábor, Feb 23, 2018
  8. 07/11 t5570-git-daemon: don't check the stderr of a subshellSZEDER Gábor, Feb 23, 2018
  9. 11/11 travis-ci: run tests with '-x' tracingSZEDER Gábor, Feb 23, 2018
  10. 04/11 t3030-merge-recursive: don't check the stderr of a subshellSZEDER Gábor, Feb 23, 2018
  11. Eric SunshineFeb 24, 2018
  12. Junio C HamanoFeb 27, 2018
  13. Junio C HamanoFeb 27, 2018
  14. test_must_be_empty: make sure the file exists, not just emptyJunio C Hamano, Feb 27, 2018
  15. Stefan BellerFeb 27, 2018
  16. Jeff KingFeb 27, 2018
  17. SZEDER GáborFeb 27, 2018
  18. Junio C HamanoFeb 27, 2018
  19. SZEDER GáborFeb 28, 2018
  20. 10/11 t/README: add a note about don't saving stderr of compound commandsSZEDER Gábor, Feb 23, 2018
  21. 08/11 t9903-bash-prompt: don't check the stderr of __git_ps1()SZEDER Gábor, Feb 23, 2018
  22. 06/11 t5526: use $TRASH_DIRECTORY to specify the path of GIT_TRACE log fileSZEDER Gábor, Feb 23, 2018
  23. 09/11 t1510-repo-setup: mark as untraceable with '-x'SZEDER Gábor, Feb 23, 2018
  24. SZEDER GáborMar 2, 2018
  25. Jeff KingMar 3, 2018
  26. SZEDER GáborMar 5, 2018

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.