From: Armin Kunaschik Date: Tue, 10 May 2016 13:44:32 GMT Subject: Re: t4151 missing quotes Message-ID: In-Reply-To: Sorry for any duplicate mails, the list blocked my html mail. Note to self: Don't use GMail on a tablet. On Mon, May 9, 2016 at 11:35 PM, Eric Sunshine wrote: >> >> Hmph, do we have a broken &&-chain? > > I don't know. Unfortunately, Armin didn't provide much information in > his initial email, saying only "skipping through some failed tests", > which doesn't necessarily indicate if those tests failed or if he > somehow manually skipped them. In t4151 there was only a problem with this test. All other tests inside t4151 were ok. Skipping through the tests referred to all git tests, not just t4151. >> If an earlier test fails and leaves an unmerged path, "ls-files -u" >> would give some output, so "test -z" would get one or more non-empty >> strings; if we feed multiple, this would fail. But we would not have >> even run "test -z" as long as we properly &&-chain these tests. >> >> I think the real issue is when the earlier step succeeds and does >> not leave any unmerged path. In that case, we would run "test -z" >> without anything else on the command line, which would lead to an >> syntax error. Yes. While debugging the test, I saw a syntax error. I did not try to find out why the test argument is empty. It seems not necessary.. the test logic is still the same. >> Side Note: /usr/bin/test and test (built into bash and dash) >> seem not to care about the lack of string in "test -z " >> and "test -n ". It appears to me that they just take >> "-z" and "-n" without "" as a special case of "test >> " that is fed "-z" or "-n" as . Apparently, the >> platform Armin is working on doesn't. > > I also tested on Mac OS X and BSD, and they happily accept bare "test > -n", as well (though, I don't doubt that there are old shells which > complain). I'm building on a quite current AIX 6.1 where /bin/sh defaults to /bin/ksh which is a posix shell (ksh88). Using /bin/bash doesn't work because SHELL_PATH is only used in git scripts but not in any t* test scripts.