#BEGIN { require '../lib/strict.pm'; "strict"->import() };
#BEGIN { require '../lib/warnings.pm'; "warnings"->import() };
-# Let tests know they're running in the perl core. Useful for modules
-# which live dual lives on CPAN.
-$ENV{PERL_CORE} = 1;
delete $ENV{PERL5LIB};
# remove empty elements due to insertion of empty symbols via "''p1'" syntax
return { file => $file_opts, switch => $switch };
}
+# directories with special sets of test switches
+my %dir_to_switch =
+ (base => '',
+ comp => '',
+ run => '',
+ );
sub _run_test {
my($test, $type) = @_;
my $perl = './perl';
my $lib = '../lib';
+ $test =~ /^([^\/]+)/;
+
+ my $testswitch = $dir_to_switch{$1};
+ if (!defined $testswitch) {
+ $testswitch = '-I. -MTestInit'; # -T will remove . from @INC
+ }
my $utf8 = $::with_utf8 ? '-I$lib -Mutf8' : '';
- my $testswitch = '-I. -MTestInit'; # -T will remove . from @INC
my $results;
if ($type eq 'deparse') {
package TestInit;
-$VERSION = 1.01;
+$VERSION = 1.02;
-chdir 't' if -d 't';
-@INC = '../lib';
+chdir 't' if -f 't/TestInit.pm';
+# Let tests know they're running in the perl core. Useful for modules
+# which live dual lives on CPAN.
# Don't interfere with the taintedness of %ENV, this could perturbate tests.
# This feels like a better solution than the original, from
# http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2003-07/msg00154.html
$ENV{PERL_CORE} = $^X;
+if (${^TAINT}) {
+ @INC = '../lib';
+} else {
+ @INC = ('../lib', '.');
+}
$0 =~ s/\.dp$//; # for the test.deparse make target
1;
BEGIN {
chdir 't' if -d 't';
@INC = '../lib';
- use Config;
- if (!$Config{'d_fcntl'}) {
+ require Config;
+ if (!$Config::Config{'d_fcntl'}) {
print("1..0 # Skip: fcntl() is not available\n");
exit(0);
}