Re: t4151 missing quotes
From: Armin Kunaschik <hidden>
Date: 2016-06-16 02:19:17
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 [off-list ref] wrote:
quoted
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.
quoted
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.
quoted
Side Note: /usr/bin/test and test (built into bash and dash) seem not to care about the lack of string in "test -z <string>" and "test -n <string>". It appears to me that they just take "-z" and "-n" without "<string>" as a special case of "test <string>" that is fed "-z" or "-n" as <string>. 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.