Subject: | HARNESS_PERL gets @INC wrong |
When you use HARNESS_PERL, Test::Harness will lay the @INC of the Perl
which ran Test::Harness on top of HARNESS_PERL's @INC.
The trouble is in Straps->_filtered_INC. We assume that we want to run
the tests with the same @INC as we currently have. This is not true if
we're running with a different Perl. For example, if Test::Harness runs
with 5.8.6 and HARNESS_PERL=perl5.4.5 Test::Harness will slap 5.8.6's
@INC on top of 5.4.5 leading to 5.4.5 trying to use 5.8.6's modules.
$ HARNESS_PERL=perl5.4.5 perl -MTest::Harness -wle
'$Test::Harness::Debug = 1; runtests(@ARGV)' t/00test_harness_check.t
t/00test_harness_check....# Running: perl5.4.5 -w t/00test_harness_check.t
#
PERL5LIB=/System/Library/Perl/5.8.6/darwin-thread-multi-2level:/System/Library/Perl/5.8.6:/Library/Perl/5.8.6/darwin-thread-multi-2level:/Library/Perl/5.8.6:/Library/Perl:/Network/Library/Perl/5.8.6/darwin-thread-multi-2level:/Network/Library/Perl/5.8.6:/Network/Library/Perl:/System/Library/Perl/Extras/5.8.6/darwin-thread-multi-2level:/System/Library/Perl/Extras/5.8.6:/Library/Perl/5.8.1:.
Perl 5.006 required--this is only version 5.00405, stopped at
/System/Library/Perl/5.8.6/vars.pm line 3.