| # Helpers for terminal output tests. | |
| # Catch tests which should depend on TTY but forgot to. There's no need | |
| # to additionally 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 "$@" 2>&7 | |
| } 7>&2 2>&4 | |
| 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" | |
| ' |