Jeff King <p...@peff.net> writes:

> One option would be to _always_ define test_terminal....

That looks like the right direction to go.

> Something like the patch below (looks like we should be using $PERL_PATH
> instead of "perl", too).

;-)  Also a SP between test_terminal and (), perhaps.

> diff --git a/t/lib-terminal.sh b/t/lib-terminal.sh
> index 9a2dca5..55b708f 100644
> --- a/t/lib-terminal.sh
> +++ b/t/lib-terminal.sh
> @@ -1,35 +1,36 @@
>  # Helpers for terminal output tests.
>  
> -test_expect_success PERL 'set up terminal for tests' '
> +# Catch tests which should depend on TTY but forgot to. There's no need
> +# to check that TTY is set here. If the test declared it and we are running
> +# it, then it is 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
>       #
> -     if test "$(uname -s)" = Darwin
> -     then
> -             :
> -     elif
> -             perl "$TEST_DIRECTORY"/test-terminal.perl \
> -                     sh -c "test -t 1 && test -t 2"
> -     then
> -             test_set_prereq TTY &&
> -             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 "$@"
> -             }
> -     fi
> +     test "$(uname -s)" != Darwin &&
> +
> +     perl "$TEST_DIRECTORY"/test-terminal.perl \
> +             sh -c "test -t 1 && test -t 2"
>  '
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to