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

Re: Do test-path_is_{file,dir,exists} make sense anymore with -x?

From
Jeff King <peff@peff.net>
Date
Feb 26, 2019, 18:24 UTC
Message-ID
<20190226182407.GF19606@sigill.intra.peff.net>
In-Reply-To
<86va1630g4.fsf@matthieu-moy.fr>
On Tue, Feb 26, 2019 at 06:48:43PM +0100, Matthieu Moy wrote:
Show 6 quoted lines
> > '-x' tracing doesn't work in all test scripts, unless it is run with a
> > Bash version already supporting BASH_XTRACEFD, i.e. v4.1 or later.
> > Notably the default Bash shipped in macOS is somewhere around v3.2.
> 
> According to http://www.tldp.org/LDP/abs/html/bashver4.html#AEN21183,
> bash 4.1 was released on May, 2010. Are you sure macOS is _that_ late?
It's not "late", it's "never". Bash 4 switched to GPLv3.
> I also tried with dash, and -x seems to work fine too (I use "works with
> dash" as a heuristic for "should word on any shell", but it doesn't
> always work).

Yes, "-x" works everywhere. The problem is scripts which capture the stderr of subshells or functions, which then get polluted by "-x" output. You can fix that in two ways:

  1. Use bash 4.1+, which works around that with BASH_XTRACEFD.
  2. Don't do that. Gábor fixed most such instances already, except the
     ones in t1510. That one automatically disables "-x" tracing.

So I don't know what you tried exactly, but you should be able to successfully run with "-x" on any script. Including t1510, but you just won't get tracing output then.

> If -x doesn't work in some setups, it may be a good reason to wait a bit
> before trashing test_path_is_*, but if it's clear enough that the vast
> majority of platforms get -x, then why not trash these wrappers indeed.
I do think it basically works everywhere these days.
-Peff
Previous: Matthieu MoyNext: Jeff King
Message 14 of 42 in “tests: replace test -(d|f) with test_path_is_(dir|file)”
  1. 0/1 [GSoC][PATCH] tests: replace test -(d|f) with test_path_is_(dir|file)Rohit Ashiwal via GitGitGadget, Feb 26, 2019
  2. 1/1 tests: replace `test -(d|f)` with test_path_is_(dir|file)Rohit Ashiwal via GitGitGadget, Feb 26, 2019
  3. Duy NguyenFeb 26, 2019
  4. Do test-path_is_{file,dir,exists} make sense anymore with -x?Ævar Arnfjörð Bjarmason, Feb 26, 2019
  5. SZEDER GáborFeb 26, 2019
  6. Jeff KingFeb 26, 2019
  7. SZEDER GáborFeb 26, 2019
  8. Jeff KingFeb 26, 2019
  9. SZEDER GáborMar 3, 2019
  10. Jeff KingMar 5, 2019
  11. SZEDER GáborMar 4, 2019
  12. Jeff KingMar 5, 2019
  13. Matthieu MoyFeb 26, 2019
  14. Jeff KingFeb 26, 2019
  15. Jeff KingFeb 26, 2019
  16. Johannes SchindelinFeb 26, 2019
  17. Jeff KingFeb 26, 2019
  18. Duy NguyenFeb 27, 2019
  19. Junio C HamanoMar 1, 2019
  20. Johannes SchindelinFeb 26, 2019
  21. Martin ÅgrenFeb 26, 2019
  22. Rohit AshiwalFeb 26, 2019
  23. Johannes SchindelinFeb 26, 2019
  24. Rohit AshiwalFeb 26, 2019
  25. Martin ÅgrenFeb 27, 2019
  26. 0/1 [GSoC][PATCH] t3600: use test_path_is_dir and test_path_is_fileRohit Ashiwal via GitGitGadget, Feb 26, 2019
  27. 1/1 t3600: use test_path_is_dir and test_path_is_fileRohit Ashiwal via GitGitGadget, Feb 26, 2019
  28. SZEDER GáborFeb 26, 2019
  29. Rohit AshiwalFeb 26, 2019
  30. Johannes SchindelinFeb 26, 2019
  31. Rohit AshiwalFeb 26, 2019
  32. 0/1 [GSoC][PATCH] t3600: use test_path_is_* helper functionsRohit Ashiwal via GitGitGadget, Feb 26, 2019
  33. 1/1 t3600: use test_path_is_* functionsRohit Ashiwal via GitGitGadget, Feb 26, 2019
  34. Duy NguyenFeb 27, 2019
  35. 0/1 [GSoC][PATCH] t3600: use test_path_is_* helper functionsRohit Ashiwal via GitGitGadget, Feb 28, 2019
  36. 1/1 t3600: use test_path_is_* functionsRohit Ashiwal via GitGitGadget, Feb 28, 2019
  37. [GSoC] acknowledging mistakesRohit Ashiwal, Feb 28, 2019
  38. Junio C HamanoMar 1, 2019
  39. Feeling confused a little bitRohit Ashiwal, Mar 1, 2019
  40. Rafael AscensãoMar 2, 2019
  41. Thomas GummererMar 2, 2019
  42. [GSoC] ThankingRohit Ashiwal, Mar 2, 2019

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.