From: Jeff King Date: Mon, 28 Oct 2013 19:54:29 GMT Subject: Re: [PATCH] t/README: tests can use perl even with NO_PERL Message-ID: <20131028195429.GA8299@sigill.intra.peff.net> In-Reply-To: <20131028192216.GB4242@google.com> On Mon, Oct 28, 2013 at 12:22:16PM -0700, Jonathan Nieder wrote: > The git build system supports a NO_PERL switch to avoid installing > perl bindings or other features (like "git add --patch") that rely on > perl on runtime, but even with NO_PERL it has not been possible for a > long time to run tests without perl. Helpers such as > > nul_to_q () { > "$PERL_PATH" -pe 'y/\000/Q/' > } > > use perl as a better tr or sed and are regularly used in tests without > worrying to add a PERL prerequisite. > > Perl is portable enough that it seems fine to keep relying on it for > this kind of thing in tests (and more readable than the alternative of > trying to find POSIXy equivalents). Update the test documentation to > clarify this. > > Reported-by: Johannes Sixt > Signed-off-by: Jonathan Nieder > --- Yeah, I think this accurately the conclusions we've come to informally during review on the list (for a long time we did not even use $PERL_PATH for such "vanilla" cases, but some people have a broken perl in their PATH). Your patch looks good, and I think Ben's patch does not need a PERL prerequisite. However, it is supposed to use $PERL_PATH, which it does not. Speaking of which, is there any reason to use the ugly "$PERL_PATH" everywhere, and not simply do: perl () { "$PERL_PATH" "$@" } in test-lib.sh? -Peff