Browse Source

Make sure $PERL_PATH is defined when the test suite is run.

Some test scripts run Perl scripts as if they were git-* scripts, and
thus need to use the same perl that will be put in the shebang line of
git*.perl commands. $PERL_PATH therefore needs to be used instead of
a bare "perl".

The tests can fail if another perl is found in $PATH before the one
defined in $PERL_PATH.

Example test failure caused by this: the perl defined in $PERL_PATH has
Error.pm installed, and therefore the Git.pm's Makefile.PL doesn't install
the private copy. The perl from $PATH doesn't have Error.pm installed, and
all git*.perl scripts invoked during the test will fail loading Error.pm.

Makefile patch by Jeff King <peff@peff.net>.

Signed-off-by: Philippe Bruhat (BooK) <book@cpan.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
maint
Philippe Bruhat (BooK) 15 years ago committed by Junio C Hamano
parent
commit
be38ca3d19
  1. 1
      Makefile
  2. 2
      t/t9400-git-cvsserver-server.sh
  3. 2
      t/t9401-git-cvsserver-crlf.sh
  4. 4
      t/t9700-perl-git.sh

1
Makefile

@ -1626,6 +1626,7 @@ GIT-CFLAGS: .FORCE-GIT-CFLAGS @@ -1626,6 +1626,7 @@ GIT-CFLAGS: .FORCE-GIT-CFLAGS
# and the first level quoting from the shell that runs "echo".
GIT-BUILD-OPTIONS: .FORCE-GIT-BUILD-OPTIONS
@echo SHELL_PATH=\''$(subst ','\'',$(SHELL_PATH_SQ))'\' >$@
@echo PERL_PATH=\''$(subst ','\'',$(PERL_PATH_SQ))'\' >>$@
@echo TAR=\''$(subst ','\'',$(subst ','\'',$(TAR)))'\' >>$@
@echo NO_CURL=\''$(subst ','\'',$(subst ','\'',$(NO_CURL)))'\' >>$@
@echo NO_PERL=\''$(subst ','\'',$(subst ','\'',$(NO_PERL)))'\' >>$@

2
t/t9400-git-cvsserver-server.sh

@ -20,7 +20,7 @@ then @@ -20,7 +20,7 @@ then
say 'skipping git-cvsserver tests, cvs not found'
test_done
fi
perl -e 'use DBI; use DBD::SQLite' >/dev/null 2>&1 || {
"$PERL_PATH" -e 'use DBI; use DBD::SQLite' >/dev/null 2>&1 || {
say 'skipping git-cvsserver tests, Perl SQLite interface unavailable'
test_done
}

2
t/t9401-git-cvsserver-crlf.sh

@ -57,7 +57,7 @@ then @@ -57,7 +57,7 @@ then
say 'skipping git-cvsserver tests, perl not available'
test_done
fi
perl -e 'use DBI; use DBD::SQLite' >/dev/null 2>&1 || {
"$PERL_PATH" -e 'use DBI; use DBD::SQLite' >/dev/null 2>&1 || {
say 'skipping git-cvsserver tests, Perl SQLite interface unavailable'
test_done
}

4
t/t9700-perl-git.sh

@ -11,7 +11,7 @@ if ! test_have_prereq PERL; then @@ -11,7 +11,7 @@ if ! test_have_prereq PERL; then
test_done
fi

perl -MTest::More -e 0 2>/dev/null || {
"$PERL_PATH" -MTest::More -e 0 2>/dev/null || {
say "Perl Test::More unavailable, skipping test"
test_done
}
@ -48,6 +48,6 @@ test_expect_success \ @@ -48,6 +48,6 @@ test_expect_success \

test_external_without_stderr \
'Perl API' \
perl "$TEST_DIRECTORY"/t9700/test.pl
"$PERL_PATH" "$TEST_DIRECTORY"/t9700/test.pl

test_done

Loading…
Cancel
Save