Code

tests: skip terminal output tests on OS X
authorJonathan Nieder <jrnieder@gmail.com>
Thu, 17 Feb 2011 12:38:52 +0000 (06:38 -0600)
committerJunio C Hamano <gitster@pobox.com>
Thu, 17 Feb 2011 23:50:37 +0000 (15:50 -0800)
commit339e5638b0a11ea3218214ffb57732098c3705df
tree2f26296b5cd31bd400081a064e46ef09f58c25db
parente674c17db25750f14c1dd1d8f588eb3135b5cea9
tests: skip terminal output tests on OS X

On Mac OS X 10.5.0, test_terminal gets stuck reading from the pty
master every once in a while.  To reproduce the problem:

 perl -MIO::Pty -MFile::Copy -e '
for (my $i = 0;; $i++) {
my $master = new IO::Pty;
my $slave = $master->slave;
if (fork == 0) {
close $master or die "close: $!";
open STDOUT, ">&", $slave or die "dup2: $!";
close $slave or die "close: $!";
exec("echo", "hi", $i) or die "exec: $!";
}
close $slave or die "close: $!";
copy($master, \*STDOUT) or die "copy: $!";
close $master or die "close: $!";
wait;
}
 '

It blocks after 7000 iterations or so in sysread().  The relevant
sysread() call is the second call by the parent, which presumably
executes before the child dies but after the parent has read all
output from there.

Since this is an intermitent problem, the quick check of terminal
support in lib-terminal doesn't catch it.  Skip these tests on the Mac
for now.

Noticed-by: Thomas Rast <trast@student.ethz.ch>
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
t/lib-terminal.sh