Re: [PATCH v2] allow TTY tests to run under recent Mac OS
Jeff King writes: > On Fri, Nov 14, 2014 at 11:48:36AM -0800, Michael Blume wrote: > >> My understanding is that && and || have equal precedence, and this >> seems to be borne out in testing at my shell. If the if/then method is >> clearer I'm happy to go with that. > > I think the problem is that there are earlier parts of the chain. It > currently looks like: > > foo && > bar && > do_something > > but you are making it: > > foo && > bar || baz && > do_something > > which will do_something whether or not "foo" is true. You need to put > your "||" at a lower precedence than the rest of the chain. The "if" > that Johannes mentioned works, though I think > > test_have_prereq PERL && > { > test "$(uname -s)" != Darwin || > test "$(uname -r | cut -d. -f1)" -ge 13 > } && > ... > > is more obvious to read (but that's subjective, of course). Thanks. While I was reading this earlier I wondered the same thing and concluded it was OK based on the equal precedence, but like Michael I missed that there is yet another test before it. -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH v2] allow TTY tests to run under recent Mac OS
Right, I missed that there was more going on above, thanks =) On Fri, Nov 14, 2014 at 12:02 PM, Jeff King wrote: > On Fri, Nov 14, 2014 at 11:48:36AM -0800, Michael Blume wrote: > >> My understanding is that && and || have equal precedence, and this >> seems to be borne out in testing at my shell. If the if/then method is >> clearer I'm happy to go with that. > > I think the problem is that there are earlier parts of the chain. It > currently looks like: > > foo && > bar && > do_something > > but you are making it: > > foo && > bar || baz && > do_something > > which will do_something whether or not "foo" is true. You need to put > your "||" at a lower precedence than the rest of the chain. The "if" > that Johannes mentioned works, though I think > > test_have_prereq PERL && > { > test "$(uname -s)" != Darwin || > test "$(uname -r | cut -d. -f1)" -ge 13 > } && > ... > > is more obvious to read (but that's subjective, of course). > > -Peff -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH v2] allow TTY tests to run under recent Mac OS
On Fri, Nov 14, 2014 at 11:48:36AM -0800, Michael Blume wrote: > My understanding is that && and || have equal precedence, and this > seems to be borne out in testing at my shell. If the if/then method is > clearer I'm happy to go with that. I think the problem is that there are earlier parts of the chain. It currently looks like: foo && bar && do_something but you are making it: foo && bar || baz && do_something which will do_something whether or not "foo" is true. You need to put your "||" at a lower precedence than the rest of the chain. The "if" that Johannes mentioned works, though I think test_have_prereq PERL && { test "$(uname -s)" != Darwin || test "$(uname -r | cut -d. -f1)" -ge 13 } && ... is more obvious to read (but that's subjective, of course). -Peff -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH v2] allow TTY tests to run under recent Mac OS
My understanding is that && and || have equal precedence, and this seems to be borne out in testing at my shell. If the if/then method is clearer I'm happy to go with that. On Fri, Nov 14, 2014 at 11:23 AM, Johannes Sixt wrote: > Am 13.11.2014 um 23:40 schrieb Mike Blume: >> listed bug doesn't reproduce on Mac OS Yosemite. For now, just enable >> TTY on Yosemite and higher >> >> Signed-off-by: Mike Blume >> Improved-by: Junio C Hamano >> --- >> t/lib-terminal.sh | 5 - >> 1 file changed, 4 insertions(+), 1 deletion(-) >> >> diff --git a/t/lib-terminal.sh b/t/lib-terminal.sh >> index 5184549..6395a34 100644 >> --- a/t/lib-terminal.sh >> +++ b/t/lib-terminal.sh >> @@ -29,7 +29,10 @@ test_lazy_prereq TTY ' >> # After 2000 iterations or so it hangs. >> # https://rt.cpan.org/Ticket/Display.html?id=65692 >> # >> - test "$(uname -s)" != Darwin && >> + # Under Mac OS X 10.10.1 and Perl 5.18.2, this problem >> + # appears to be gone. >> + # >> + test "$(uname -s)" != Darwin || test "$(uname -r | cut -d. -f1)" -ge >> 14 && > > This is part of an &&-chain; you can't just throw in a || in the middle. > > How about > > if test "$(uname -s)" = Darwin > then > test "$(uname -r | cut -d. -f1)" -ge 14 > fi && > >> >> perl "$TEST_DIRECTORY"/test-terminal.perl \ >> sh -c "test -t 1 && test -t 2" >> > > -- Hannes > -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH v2] allow TTY tests to run under recent Mac OS
Am 13.11.2014 um 23:40 schrieb Mike Blume: > listed bug doesn't reproduce on Mac OS Yosemite. For now, just enable > TTY on Yosemite and higher > > Signed-off-by: Mike Blume > Improved-by: Junio C Hamano > --- > t/lib-terminal.sh | 5 - > 1 file changed, 4 insertions(+), 1 deletion(-) > > diff --git a/t/lib-terminal.sh b/t/lib-terminal.sh > index 5184549..6395a34 100644 > --- a/t/lib-terminal.sh > +++ b/t/lib-terminal.sh > @@ -29,7 +29,10 @@ test_lazy_prereq TTY ' > # After 2000 iterations or so it hangs. > # https://rt.cpan.org/Ticket/Display.html?id=65692 > # > - test "$(uname -s)" != Darwin && > + # Under Mac OS X 10.10.1 and Perl 5.18.2, this problem > + # appears to be gone. > + # > + test "$(uname -s)" != Darwin || test "$(uname -r | cut -d. -f1)" -ge 14 > && This is part of an &&-chain; you can't just throw in a || in the middle. How about if test "$(uname -s)" = Darwin then test "$(uname -r | cut -d. -f1)" -ge 14 fi && > > perl "$TEST_DIRECTORY"/test-terminal.perl \ > sh -c "test -t 1 && test -t 2" > -- Hannes -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH v2] allow TTY tests to run under recent Mac OS
On Thu, Nov 13, 2014 at 5:40 PM, Mike Blume wrote: > listed bug doesn't reproduce on Mac OS Yosemite. For now, just enable > TTY on Yosemite and higher I've tried the reproduction recipe on Mavericks (`uname -r` => 13.4.0) and it works fine--still going after 12,000 iterations. Trying the same thing on Snow Leopard shows that it still fails there--it died after 182 iterations. So I think the check can be relaxed to `-ge 13`. -John -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html