| 1 | # Helpers for terminal output tests. |
| 2 | |
| 3 | # Catch tests which should depend on TTY but forgot to. There's no need |
| 4 | # to additionally check that the TTY prereq is set here. If the test declared |
| 5 | # it and we are running the test, then it must have been set. |
| 6 | test_terminal () { |
| 7 | if ! test_declared_prereq TTY |
| 8 | then |
| 9 | echo >&4 "test_terminal: need to declare TTY prerequisite" |
| 10 | return 127 |
| 11 | fi |
| 12 | perl "$TEST_DIRECTORY"/test-terminal.perl "$@" 2>&7 |
| 13 | } 7>&2 2>&4 |
| 14 | |
| 15 | test_lazy_prereq TTY ' |
| 16 | test_have_prereq PERL && |
| 17 | |
| 18 | # Reading from the pty master seems to get stuck _sometimes_ |
| 19 | # on Mac OS X 10.5.0, using Perl 5.10.0 or 5.8.9. |
| 20 | # |
| 21 | # Reproduction recipe: run |
| 22 | # |
| 23 | # i=0 |
| 24 | # while ./test-terminal.perl echo hi $i |
| 25 | # do |
| 26 | # : $((i = $i + 1)) |
| 27 | # done |
| 28 | # |
| 29 | # After 2000 iterations or so it hangs. |
| 30 | # https://rt.cpan.org/Ticket/Display.html?id=65692 |
| 31 | # |
| 32 | test "$(uname -s)" != Darwin && |
| 33 | |
| 34 | perl "$TEST_DIRECTORY"/test-terminal.perl \ |
| 35 | sh -c "test -t 1 && test -t 2" |
| 36 | ' |