@{$persistence_tests->{PPerl}{cmd}}[ 1 .. $#{$persistence_tests->{PPerl}{cmd}} ],
];
- require IPC::Open2;
+ # set up -I
+ require Config;
+ $ENV{PERL5LIB} = join ($Config::Config{path_sep}, @INC);
+
+ # adjust PATH for -T
+ if (length $ENV{PATH}) {
+ ( $ENV{PATH} ) = join ( $Config::Config{path_sep},
+ map { length($_) ? File::Spec->rel2abs($_) : () }
+ split /\Q$Config::Config{path_sep}/, $ENV{PATH}
+ ) =~ /\A(.+)\z/;
+ }
for my $type (keys %$persistence_tests) { SKIP: {
unless (eval "require $type") {
if system(@cmd);
}
+ require IPC::Open2;
+
for (1,2,3) {
note ("Starting run in persistent env ($type pass $_)");
IPC::Open2::open2(my $out, undef, @cmd);
use strict;
use warnings;
+# FIXME This is a crock of shit, needs to go away
+# currently here to work around https://rt.cpan.org/Ticket/Display.html?id=74151
+# kill with fire when PS::XS / RT#74151 is *finally* fixed
+BEGIN {
+ my $PS_provider;
+
+ if ( "$]" < 5.010 ) {
+ require Package::Stash::PP;
+ $PS_provider = 'Package::Stash::PP';
+ }
+ else {
+ require Package::Stash;
+ $PS_provider = 'Package::Stash';
+ }
+ eval <<"EOS" or die $@;
+
+sub stash_for (\$) {
+ $PS_provider->new(\$_[0]);
+}
+1;
+EOS
+}
+
use Test::More;
use lib 't/lib';
use File::Find;
use File::Spec;
use B qw/svref_2object/;
-use Package::Stash;
# makes sure we can load at least something
use DBIx::Class;
skip "$mod exempt from namespace checks",1 if $skip_idx->{$mod};
my %all_method_like = (map
- { %{Package::Stash->new($_)->get_all_symbols('CODE')} }
+ { %{stash_for($_)->get_all_symbols('CODE')} }
(reverse @{mro::get_linear_isa($mod)})
);
last;
}
}
- fail ("${mod}::${name} appears to have entered inheritance chain by import into "
- . ($via || 'UNKNOWN')
- );
+
+ # exception time
+ if (
+ ( $name eq 'import' and $via = 'Exporter' )
+ ) {
+ pass("${mod}::${name} is a valid uncleaned import from ${name}");
+ }
+ else {
+ fail ("${mod}::${name} appears to have entered inheritance chain by import into "
+ . ($via || 'UNKNOWN')
+ );
+ }
}
}
# in case it came from the env
$ENV{DBIC_NO_VERSION_CHECK} = 0;
+# FIXME - work around RT#113965 in combination with -T on older perls:
+# the non-deparsing XS portion of D::D gets confused by some of the IO
+# handles trapped in the debug object of DBIC. What a mess.
+$Data::Dumper::Deparse = 1;
+
use_ok('DBICVersion_v1');
my $version_table_name = 'dbix_class_schema_versions';
use DBIC::SqlMakerTest;
use Path::Class qw/file/;
+plan skip_all => "Test is finicky under -T before 5.10"
+ if "$]" < 5.010 and ${^TAINT};
+
BEGIN { delete @ENV{qw(DBIC_TRACE DBIC_TRACE_PROFILE DBICTEST_SQLITE_USE_FILE)} }
my $schema = DBICTest->init_schema();
}
END {
- unlink $lfn;
+ unlink $lfn if $lfn;
}
open(STDERRCOPY, '>&STDERR');