Re: [PATCH] Define $PERL_PATH in test-lib.sh
From: Philippe Bruhat (BooK) <hidden>
Date: 2016-06-15 22:47:42
On Tue, Nov 10, 2009 at 07:23:15AM -0500, Jeff King wrote:
On Tue, Nov 10, 2009 at 11:46:51AM +0100, Philippe Bruhat (BooK) wrote:quoted
The main Makefile defines PERL_PATH as the perl to use in the shebang line of git*.perl commands. This ensures this will be the perl used to run the tests (in case another perl appears in $PATH before the one defined in $PERL_PATH)
PERL_PATH is a variable in the Makefile that, if not defined is set up to /usr/bin/perl. It is used to set the shebang line in the git-* perl scripts.
I think this "the perl used to run the tests" needs to be clarified in the commit message. There are really three ways we use perl in the tests: 1. To run to the git-* scripts themselves.
Yes, this PERL_PATH.
2. To run a test snippet of perl as if we were a git-* script.
Actually, my goal was to run Makefile.PL with the proper perl (see below).
3. To run random perl helper functions.
I didn't replace those ones, because any perl is good enough to do some perl -i.bak -pe 's/foo/bar/' processing.
We already use PERL_PATH for (1). I don't think there is much point in worrying about (3). If the perl in your PATH is so broken that it can't be used for simple helpers, then you should fix your PATH.
The Perl in my PATH doesn't have Error.pm installed, but /usr/bin/perl has it. When the Makefile.PL is run by /usr/bin/perl, the private-Error.pm module is not copied in blib. The git-* perl scripts are using the perl in PERL_PATH, and therefore can't load Error.pm (not in blib during make test), causing test breakage. This is the original reason for this patch. I fixed the general (2) case, deliberately avoiding to replace every call to perl (3).
Your patch seems to just fix (2), which I think is sane. But I wanted to note it, because when I read your commit message, I wasn't sure which you were doing.
Yes.
--
Philippe Bruhat (BooK)
Trust only in incompetence. You will never be disappointed.
(Moral from Groo The Wanderer #16 (Epic))