'Test::Exception' => '0.31',
'Test::More' => '0.92',
'Test::Warn' => '0.21',
+
+ # this is already a dep of n::c, but just in case - used by t/55namespaces_cleaned.t
+ # remove and do a manual glob-collection if n::c is no longer a dep
+ 'Package::Stash' => '0.28',
};
my $runtime_requires = {
);
};
+# FIXME - see below
+BEGIN {
+ *__BROKEN_NC = ($] < 5.008003)
+ ? sub () { 1 }
+ : sub () { 0 }
+ ;
+}
sub import {
my (undef, $skip_pattern) = @_;
my $into = caller;
};
# cleanup after ourselves
- namespace::clean->import(-cleanee => $into, qw/carp carp_once carp_unique/);
+ namespace::clean->import(-cleanee => $into, qw/carp carp_once carp_unique/)
+ ## FIXME FIXME FIXME - something is tripping up V::M on 5.8.1, leading
+ # to segfaults. When n::c/B::H::EndOfScope is rewritten in terms of tie()
+ # see if this starts working
+ unless __BROKEN_NC();
}
sub unimport {
}
BEGIN {
- plan skip_all => 'Minimum of perl 5.8.3 required for thread tests (DBD::Pg mandated)'
- if $] < '5.008003';
+ plan skip_all => 'Minimum of perl 5.8.5 required for thread tests (DBD::Pg mandated)'
+ if $] < '5.008005';
}
use threads;
use_ok('DBICTest::Schema');
-diag "\n\nIt is ok if you see series of 'Attempt to free unreferenced scalar: ...' warnings during this test\n "
- if $] < '5.008005';
-
my $schema = DBICTest::Schema->connection($dsn, $user, $pass, { AutoCommit => 1, RaiseError => 1, PrintError => 0 });
my $parent_rs;
}
BEGIN {
- plan skip_all => 'Minimum of perl 5.8.3 required for thread tests (DBD::Pg mandated)'
- if $] < '5.008003';
+ plan skip_all => 'Minimum of perl 5.8.5 required for thread tests (DBD::Pg mandated)'
+ if $] < '5.008005';
}
use_ok('DBICTest::Schema');
-diag "\n\nIt is ok if you see series of 'Attempt to free unreferenced scalar: ...' warnings during this test\n "
- if $] < '5.008005';
-
my $schema = DBICTest::Schema->connection($dsn, $user, $pass, { AutoCommit => 1, RaiseError => 1, PrintError => 0 });
my $parent_rs;
use warnings;
use Test::More;
-use Carp;
-
BEGIN {
my $core_modules = { map { $_ => 1 } qw/
strict
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;
+use DBIx::Class::Carp;
my @modules = grep {
my $mod = $_;
# G::L::D is unclean, but we never inherit from it
'DBIx::Class::Admin::Descriptive',
'DBIx::Class::Admin::Usage',
+
+ # exempt due to the __BROKEN_NC constant
+ 'DBIx::Class::Carp',
) };
my $has_cmop = eval { require Class::MOP };
SKIP: {
skip "$mod exempt from namespace checks",1 if $skip_idx->{$mod};
- my %all_method_like = do {
- no strict 'refs';
- map {
- my $m = $_;
- map
- { *{"${m}::$_"}{CODE} ? ( $_ => *{"${m}::$_"}{CODE} ) : () }
- keys %{"${m}::"}
- } (reverse @{mro::get_linear_isa($mod)});
- };
+ my %all_method_like = (map
+ { %{Package::Stash->new($_)->get_all_symbols('CODE')} }
+ (reverse @{mro::get_linear_isa($mod)})
+ );
my %parents = map { $_ => 1 } @{mro::get_linear_isa($mod)};
for my $name (keys %all_method_like) {
+ next if ( DBIx::Class::Carp::__BROKEN_NC() and $name =~ /^carp(?:_unique|_once)?$/ );
+
# overload is a funky thing - it is neither cleaned, and its imports are named funny
next if $name =~ /^\(/;
}
}
+ next if DBIx::Class::Carp::__BROKEN_NC();
+
# some common import names (these should never ever be methods)
for my $f (qw/carp carp_once carp_unique croak confess cluck try catch finally/) {
if ($mod->can($f)) {