On Tue, Feb 26, 2019 at 06:48:43PM +0100, Matthieu Moy wrote: > > '-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