From: Mike Blume <hidden> Date: 2016-06-15 23:02:56
listed bug doesn't reproduce on Mac OS Yosemite. For now, just enable
TTY on Yosemite and higher
Signed-off-by: Mike Blume <redacted>
Improved-by: Junio C Hamano [off-list ref]
---
t/lib-terminal.sh | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
@@ -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)"-ge14&&perl"$TEST_DIRECTORY"/test-terminal.perl\sh-c"test -t 1 && test -t 2"
From: John Szakmeister <hidden> Date: 2016-06-15 23:02:56
On Thu, Nov 13, 2014 at 5:40 PM, Mike Blume [off-list ref] 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
From: Johannes Sixt <hidden> Date: 2016-06-15 23:02:56
Am 13.11.2014 um 23:40 schrieb Mike Blume:
quoted hunk
listed bug doesn't reproduce on Mac OS Yosemite. For now, just enable
TTY on Yosemite and higher
Signed-off-by: Mike Blume <redacted>
Improved-by: Junio C Hamano [off-list ref]
---
t/lib-terminal.sh | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
@@ -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)"-ge14&&
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"
From: Michael Blume <hidden> Date: 2016-06-15 23:02:56
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 [off-list ref] wrote:
Am 13.11.2014 um 23:40 schrieb Mike Blume:
quoted
listed bug doesn't reproduce on Mac OS Yosemite. For now, just enable
TTY on Yosemite and higher
Signed-off-by: Mike Blume <redacted>
Improved-by: Junio C Hamano [off-list ref]
---
t/lib-terminal.sh | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
@@ -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)"-ge14&&
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 &&
quoted
perl "$TEST_DIRECTORY"/test-terminal.perl \
sh -c "test -t 1 && test -t 2"
From: Jeff King <hidden> Date: 2016-06-15 23:02:56
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
From: Michael Blume <hidden> Date: 2016-06-15 23:02:56
Right, I missed that there was more going on above, thanks =)
On Fri, Nov 14, 2014 at 12:02 PM, Jeff King [off-list ref] wrote:
On Fri, Nov 14, 2014 at 11:48:36AM -0800, Michael Blume wrote:
quoted
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