git/t/lib-terminal.sh
Junio C Hamano e99a69da6b Merge branch 'jk/lib-terminal-lazy' into maint
* jk/lib-terminal-lazy:
  t/lib-terminal: make TTY a lazy prerequisite
2014-04-03 13:39:04 -07:00

37 lines
929 B
Bash

# Helpers for terminal output tests.
# Catch tests which should depend on TTY but forgot to. There's no need
# to aditionally check that the TTY prereq is set here. If the test declared
# it and we are running the test, then it must have been set.
test_terminal () {
if ! test_declared_prereq TTY
then
echo >&4 "test_terminal: need to declare TTY prerequisite"
return 127
fi
perl "$TEST_DIRECTORY"/test-terminal.perl "$@"
}
test_lazy_prereq TTY '
test_have_prereq PERL &&
# Reading from the pty master seems to get stuck _sometimes_
# on Mac OS X 10.5.0, using Perl 5.10.0 or 5.8.9.
#
# Reproduction recipe: run
#
# i=0
# while ./test-terminal.perl echo hi $i
# do
# : $((i = $i + 1))
# done
#
# After 2000 iterations or so it hangs.
# https://rt.cpan.org/Ticket/Display.html?id=65692
#
test "$(uname -s)" != Darwin &&
perl "$TEST_DIRECTORY"/test-terminal.perl \
sh -c "test -t 1 && test -t 2"
'