No longer depend on MI::AuthorTests. Switch xt tests to run on make dist
Peter Rabbitson [Wed, 11 Apr 2012 07:13:01 +0000 (09:13 +0200)]
maint/Makefile.PL.inc/11_authortests.pl
xt/eol.t
xt/notabs.t
xt/pod.t
xt/podcoverage.t

index b8f00b4..3b9c174 100644 (file)
@@ -1,22 +1,31 @@
-# temporary(?) until I get around to fix M::I wrt xt/
-# needs Module::Install::AuthorTests
-eval {
-  # this should not be necessary since the autoloader is supposed
-  # to work, but there were reports of it failing
-  require Module::Install::AuthorTests;
-  recursive_author_tests (qw/xt/);
-  1;
-} || do {
-  if (! $args->{skip_author_deps}) {
-    my $err = $@;
-
-    # better error message in case of missing dep
-    eval { require Module::Install::AuthorTests }
-      || die "\nYou need Module::Install::AuthorTests installed to run this Makefile.PL in author mode (or add --skip-author-deps):\n\n$@\n";
-
-    die $err;
-  }
-};
+require File::Spec;
+require File::Find;
+
+my $xt_dirs;
+File::Find::find(sub {
+  return if $xt_dirs->{$File::Find::dir};
+  $xt_dirs->{$File::Find::dir} = 1 if (
+    $_ =~ /\.t$/ and -f $_
+  );
+}, 'xt');
+
+my $xt_tests = join (' ', map { File::Spec->catfile($_, '*.t') } sort keys %$xt_dirs );
+
+# this will add the xt tests to the `make test` target among other things
+Meta->tests(join (' ', map { $_ || () } Meta->tests, $xt_tests ) );
+
+# inject an explicit xt test run for making a tarball (distdir is exempt)
+postamble <<"EOP";
+
+.PHONY: test_xt
+
+dist : test_xt
+
+test_xt :
+\tPERL_DL_NONLAZY=1 RELEASE_TESTING=1 \$(FULLPERLRUN) "-MExtUtils::Command::MM" "-e" "test_harness(\$(TEST_VERBOSE), 'inc', '\$(INST_LIB)', '\$(INST_ARCHLIB)')" $xt_tests
+
+EOP
+
 
 # keep the Makefile.PL eval happy
 1;
index a3d7d86..ab2d9a1 100644 (file)
--- a/xt/eol.t
+++ b/xt/eol.t
@@ -8,7 +8,7 @@ use DBICTest;
 require DBIx::Class;
 unless ( DBIx::Class::Optional::Dependencies->req_ok_for ('test_eol') ) {
   my $missing = DBIx::Class::Optional::Dependencies->req_missing_for ('test_eol');
-  (! DBICTest::RunMode->is_plain && ! DBICTest::RunMode->is_smoker )
+  $ENV{RELEASE_TESTING}
     ? die ("Failed to load release-testing module requirements: $missing")
     : plan skip_all => "Test needs: $missing"
 }
index beb623e..7734b75 100644 (file)
@@ -8,7 +8,7 @@ use DBICTest;
 require DBIx::Class;
 unless ( DBIx::Class::Optional::Dependencies->req_ok_for ('test_notabs') ) {
   my $missing = DBIx::Class::Optional::Dependencies->req_missing_for ('test_notabs');
-  (! DBICTest::RunMode->is_plain && ! DBICTest::RunMode->is_smoker )
+  $ENV{RELEASE_TESTING}
     ? die ("Failed to load release-testing module requirements: $missing")
     : plan skip_all => "Test needs: $missing"
 }
index d1a6210..92d650e 100644 (file)
--- a/xt/pod.t
+++ b/xt/pod.t
@@ -8,7 +8,7 @@ use DBICTest;
 require DBIx::Class;
 unless ( DBIx::Class::Optional::Dependencies->req_ok_for ('test_pod') ) {
   my $missing = DBIx::Class::Optional::Dependencies->req_missing_for ('test_pod');
-  (! DBICTest::RunMode->is_plain && ! DBICTest::RunMode->is_smoker )
+  $ENV{RELEASE_TESTING}
     ? die ("Failed to load release-testing module requirements: $missing")
     : plan skip_all => "Test needs: $missing"
 }
index 2cd6c52..a5c923f 100644 (file)
@@ -10,7 +10,7 @@ use namespace::clean;
 require DBIx::Class;
 unless ( DBIx::Class::Optional::Dependencies->req_ok_for ('test_podcoverage') ) {
   my $missing = DBIx::Class::Optional::Dependencies->req_missing_for ('test_podcoverage');
-  $ENV{RELEASE_TESTING} || DBICTest::RunMode->is_author
+  $ENV{RELEASE_TESTING}
     ? die ("Failed to load release-testing module requirements: $missing")
     : plan skip_all => "Test needs: $missing"
 }