When running tests from lib/, set @INC and $ENV{PERL5LIB} to ../lib
authorNicholas Clark <nick@ccl4.org>
Mon, 7 Feb 2011 15:36:40 +0000 (15:36 +0000)
committerNicholas Clark <nick@ccl4.org>
Mon, 7 Feb 2011 16:33:12 +0000 (16:33 +0000)
This ensures (reasonable) consistency with tests in cpan/, dist/ and ext/,
which set this to qw(../../lib ../../t), but are not from t/, hence don't have
t/ implicitly in @INC as '.'

TestInit.pm
t/TEST

index 8513955..a113554 100644 (file)
@@ -18,7 +18,7 @@
 
 package TestInit;
 
-$VERSION = 1.02;
+$VERSION = 1.03;
 
 # Let tests know they're running in the perl core.  Useful for modules
 # which live dual lives on CPAN.
@@ -69,6 +69,7 @@ if (-f 't/TEST' && -f 'MANIFEST' && -d 'lib' && -d 'ext') {
     } else {
        chdir 't' or die "Can't chdir 't': $!";
        new_inc('../lib');
+       set_opt('../lib') if $0 =~ m!^lib/!;
     }
 } else {
     new_inc('../lib');
@@ -80,6 +81,8 @@ sub import {
     foreach (@_) {
        if ($_ eq 'U2T') {
            @new_inc = @up_2_t;
+       } elsif ($_ eq 'U1') {
+           @new_inc = '../lib';
        } elsif ($_ eq 'NC') {
            delete $ENV{PERL_CORE}
        } elsif ($_ eq 'A') {
diff --git a/t/TEST b/t/TEST
index 945015f..51b6df4 100755 (executable)
--- a/t/TEST
+++ b/t/TEST
@@ -246,6 +246,8 @@ sub _scan_test {
                    $testswitch = $testswitch . ',NC';
                }
            }
+       } elsif ($test =~ m!^\.\./lib!) {
+           $testswitch = '-I.. -MTestInit=U1'; # -T will remove . from @INC
        } else {
            $testswitch = '-I.. -MTestInit';  # -T will remove . from @INC
        }