Subject: Re: [PATCH] Avoid difference in tr semantics between System V and BSD

From: Junio C Hamano <[email-masked]>
Date: Mon, 28 Oct 2013 12:08:39 -0700

Jonathan Nieder <[email-masked]> writes:

> Johannes Sixt wrote:
>
>> In other tests, we check for prerequisite PERL, i.e., we are prepared
>> that perl is not available. Shouldn't we do that here, too?
>
> I think the tests assume there's a perl present even when the PERL
> prereq isn't present already.  E.g.:
>
> 	nul_to_q () {
> 		"$PERL_PATH" -pe 'y/\000/Q/'
> 	}
>
> So in practice the PERL prereq just means "NO_PERL wasn't set", or
> in other words, "commands that use perl work".  Maybe something
> like the following would help?
>
> Signed-off-by: Jonathan Nieder <[email-masked]>
>
> diff --git i/t/README w/t/README
> index 2167125..54cd064 100644
> --- i/t/README
> +++ w/t/README
> @@ -629,11 +629,20 @@ See the prereq argument to the test_* functions in the "Test harness
>  library" section above and the "test_have_prereq" function for how to
>  use these, and "test_set_prereq" for how to define your own.
>  
> - - PERL & PYTHON
> + - PYTHON
>  
> -   Git wasn't compiled with NO_PERL=YesPlease or
> -   NO_PYTHON=YesPlease. Wrap any tests that need Perl or Python in
> -   these.
> +   Git wasn't compiled with NO_PYTHON=YesPlease. Wrap any tests that
> +   need Python with this.
> +
> + - PERL
> +
> +   Git wasn't compiled with NO_PERL=YesPlease.
> +
> +   Even without the PERL prerequisite, tests can assume there is a
> +   usable perl interpreter at $PERL_PATH, though it need not be
> +   particularly modern.
> +
> +   Wrap tests for commands implemented in Perl with this.

Sounds like a sensible thing to address, but I first parsed it as

    Wrap (tests for (commands implemented in Perl)) with this.

while I think the readers are expected to parse it as

   Wrap ((tests for commands) implemented in Perl) with this.