Run xt/ tests on non-plain installs
Peter Rabbitson [Tue, 3 Nov 2015 14:32:08 +0000 (15:32 +0100)]
( cherry-pick of c26b30de and 554484cb )

FACEDESK: Module::Install::Makefile::tests_recursive() takes a single arg and
throws the rest away... I mean what the flying...

Makefile.PL
t/lib/DBICTest/Util/LeakTracer.pm
xt/podcoverage.t

index 409ec2b..044b069 100644 (file)
@@ -115,9 +115,20 @@ if ($ENV{DBICTEST_SQLT_DEPLOY}) {
   }
 }
 
-tests_recursive (qw|
-    t
-|);
+tests_recursive ('t');
+tests_recursive ('xt') if (
+  $Module::Install::AUTHOR
+    or
+  $ENV{DBICTEST_RUN_ALL_TESTS}
+    or
+  (
+    ( $ENV{TRAVIS}||'' ) eq 'true'
+      and
+    ($ENV{TRAVIS_REPO_SLUG}||'') =~ m|\w+/dbix-class$|
+  )
+    or
+  ( $ENV{AUTOMATED_TESTING} and ! $ENV{PERL5_CPANM_IS_RUNNING} and ! $ENV{RELEASE_TESTING} )
+);
 
 install_script (qw|
     script/dbicadmin
index b81932c..b3d28a3 100644 (file)
@@ -343,10 +343,11 @@ END {
         or
       DBICTest::RunMode->is_plain
     ) {
-      for (qw(indirect multidimensional bareword::filehandles)) {
-        exists $INC{ Module::Runtime::module_notional_filename($_) }
-          and
-        $tb->ok(0, "$_ load should not have been attempted!!!" )
+      for my $mod (qw(indirect multidimensional bareword::filehandles)) {
+        ( my $fn = "$mod.pm" ) =~ s|::|/|g;
+
+        $tb->ok(0, "Load of '$mod' should not have been attempted!!!" )
+          if exists $INC{$fn};
       }
     }
   }
index 3ef6f56..f5633e0 100644 (file)
@@ -116,6 +116,7 @@ my $exceptions = {
     },
 
     'DBIx::Class::Admin::*'                         => { skip => 1 },
+    'DBIx::Class::Optional::Dependencies'           => { skip => 1 },
     'DBIx::Class::ClassResolver::PassThrough'       => { skip => 1 },
     'DBIx::Class::Componentised'                    => { skip => 1 },
     'DBIx::Class::AccessorGroup'                    => { skip => 1 },
@@ -174,6 +175,8 @@ foreach my $module (@modules) {
 
     skip ("$module exempt", 1) if ($ex->{skip});
 
+    skip ("$module not loadable", 1) unless eval "require $module";
+
     # build parms up from ignore list
     my $parms = {};
     $parms->{trustme} =