* [PATCH v2] allow TTY tests to run under recent Mac OS
@ 2014-11-13 22:40 Mike Blume
2014-11-14 10:43 ` John Szakmeister
2014-11-14 19:23 ` Johannes Sixt
0 siblings, 2 replies; 7+ messages in thread
From: Mike Blume @ 2014-11-13 22:40 UTC (permalink / raw)
To: git; +Cc: 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 <blume.mike@gmail.com>
Improved-by: Junio C Hamano <gitster@pobox.com>
---
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 &&
perl "$TEST_DIRECTORY"/test-terminal.perl \
sh -c "test -t 1 && test -t 2"
--
2.2.0.rc1.197.g60bf093
^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [PATCH v2] allow TTY tests to run under recent Mac OS
2014-11-13 22:40 [PATCH v2] allow TTY tests to run under recent Mac OS Mike Blume
@ 2014-11-14 10:43 ` John Szakmeister
2014-11-14 19:23 ` Johannes Sixt
1 sibling, 0 replies; 7+ messages in thread
From: John Szakmeister @ 2014-11-14 10:43 UTC (permalink / raw)
To: Mike Blume; +Cc: git
On Thu, Nov 13, 2014 at 5:40 PM, Mike Blume <blume.mike@gmail.com> 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
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH v2] allow TTY tests to run under recent Mac OS
2014-11-13 22:40 [PATCH v2] allow TTY tests to run under recent Mac OS Mike Blume
2014-11-14 10:43 ` John Szakmeister
@ 2014-11-14 19:23 ` Johannes Sixt
2014-11-14 19:48 ` Michael Blume
1 sibling, 1 reply; 7+ messages in thread
From: Johannes Sixt @ 2014-11-14 19:23 UTC (permalink / raw)
To: Mike Blume, git
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 <blume.mike@gmail.com>
> Improved-by: Junio C Hamano <gitster@pobox.com>
> ---
> 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
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH v2] allow TTY tests to run under recent Mac OS
2014-11-14 19:23 ` Johannes Sixt
@ 2014-11-14 19:48 ` Michael Blume
2014-11-14 20:02 ` Jeff King
0 siblings, 1 reply; 7+ messages in thread
From: Michael Blume @ 2014-11-14 19:48 UTC (permalink / raw)
To: Johannes Sixt; +Cc: Git List
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 <j6t@kdbg.org> 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 <blume.mike@gmail.com>
>> Improved-by: Junio C Hamano <gitster@pobox.com>
>> ---
>> 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
>
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH v2] allow TTY tests to run under recent Mac OS
2014-11-14 19:48 ` Michael Blume
@ 2014-11-14 20:02 ` Jeff King
2014-11-14 20:04 ` Michael Blume
2014-11-14 20:16 ` Junio C Hamano
0 siblings, 2 replies; 7+ messages in thread
From: Jeff King @ 2014-11-14 20:02 UTC (permalink / raw)
To: Michael Blume; +Cc: Johannes Sixt, Git List
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
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH v2] allow TTY tests to run under recent Mac OS
2014-11-14 20:02 ` Jeff King
@ 2014-11-14 20:04 ` Michael Blume
2014-11-14 20:16 ` Junio C Hamano
1 sibling, 0 replies; 7+ messages in thread
From: Michael Blume @ 2014-11-14 20:04 UTC (permalink / raw)
To: Jeff King; +Cc: Johannes Sixt, Git List
Right, I missed that there was more going on above, thanks =)
On Fri, Nov 14, 2014 at 12:02 PM, Jeff King <peff@peff.net> 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
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH v2] allow TTY tests to run under recent Mac OS
2014-11-14 20:02 ` Jeff King
2014-11-14 20:04 ` Michael Blume
@ 2014-11-14 20:16 ` Junio C Hamano
1 sibling, 0 replies; 7+ messages in thread
From: Junio C Hamano @ 2014-11-14 20:16 UTC (permalink / raw)
To: Jeff King; +Cc: Michael Blume, Johannes Sixt, Git List
Jeff King <peff@peff.net> 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.
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2014-11-14 20:16 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-11-13 22:40 [PATCH v2] allow TTY tests to run under recent Mac OS Mike Blume
2014-11-14 10:43 ` John Szakmeister
2014-11-14 19:23 ` Johannes Sixt
2014-11-14 19:48 ` Michael Blume
2014-11-14 20:02 ` Jeff King
2014-11-14 20:04 ` Michael Blume
2014-11-14 20:16 ` Junio C Hamano
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).