Move a number of tests to xt, restructure extra lists
[dbsrgits/DBIx-Class.git] / maint / Makefile.PL.inc / 11_authortests.pl
index dc3eb4c..7760de2 100644 (file)
@@ -1,23 +1,24 @@
 require File::Spec;
 require File::Find;
 
-my $xt_dirs;
+my $xt_dist_dirs;
 File::Find::find(sub {
-  return if $xt_dirs->{$File::Find::dir};
-  $xt_dirs->{$File::Find::dir} = 1 if (
+  return if $xt_dist_dirs->{$File::Find::dir};
+  $xt_dist_dirs->{$File::Find::dir} = 1 if (
     $_ =~ /\.t$/ and -f $_
   );
-}, 'xt');
+}, 'xt/dist');
 
-my @xt_tests = map { File::Spec->catfile($_, '*.t') } sort keys %$xt_dirs;
+my @xt_dist_tests = map { File::Spec->catfile($_, '*.t') } sort keys %$xt_dist_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 the create_distdir target
+# inject an explicit xt test run, mainly to check the contents of
+# lib and the generated POD's *before* anything is copied around
+#
+# at the end rerun the whitespace and footer tests in the distdir
+# to make sure everything is pristine
 postamble <<"EOP";
 
-create_distdir : test_xt
+dbic_clonedir_copy_generated_pod : test_xt
 
 test_xt : pm_to_blib
 @{[
@@ -30,16 +31,32 @@ test_xt : pm_to_blib
     # perl cmd
     join( ' ',
       '$(ABSPERLRUN)',
-      # $'s need to be escaped (doubled) before inserting into the Makefile
-      map { $mm_proto->quote_literal($_) } qw(-e $$ENV{RELEASE_TESTING}=1;) 
+      map { $mm_proto->quote_literal($_) } qw(-e $ENV{RELEASE_TESTING}=1;$ENV{DBICTEST_NO_MAKEFILE_VERIFICATION}=1;)
     ),
     # test list
     join( ' ',
-      map { $mm_proto->quote_literal($_) } @xt_tests
+      map { $mm_proto->quote_literal($_) } @xt_dist_tests
     ),
   )
 ]}
 
+create_distdir : dbic_distdir_retest_ws_and_footers
+
+dbic_distdir_retest_ws_and_footers :
+\t@{[
+  $mm_proto->cd (
+    '$(DISTVNAME)',
+    $mm_proto->test_via_harness(
+      # perl cmd
+      join( ' ',
+        '$(ABSPERLRUN)',
+        map { $mm_proto->quote_literal($_) } qw(-Ilib -e $ENV{RELEASE_TESTING}=1;$ENV{DBICTEST_NO_MAKEFILE_VERIFICATION}=1;)
+      ),
+      'xt/dist/postdistdir/*.t',
+    )
+  )
+]}
+
 EOP
 
 # keep the Makefile.PL eval happy