Use plain old file concat for the dbicadmin pod-injection
[dbsrgits/DBIx-Class.git] / maint / Makefile.PL.inc / 11_authortests.pl
CommitLineData
20884f55 1require File::Spec;
2require File::Find;
3
4my $xt_dirs;
5File::Find::find(sub {
6 return if $xt_dirs->{$File::Find::dir};
7 $xt_dirs->{$File::Find::dir} = 1 if (
8 $_ =~ /\.t$/ and -f $_
9 );
10}, 'xt');
11
3ba58fe4 12my @xt_tests = map { File::Spec->catfile($_, '*.t') } sort keys %$xt_dirs;
20884f55 13
14# this will add the xt tests to the `make test` target among other things
3ba58fe4 15Meta->tests(join (' ', map { $_ || () } Meta->tests, @xt_tests ) );
20884f55 16
e2633789 17# inject an explicit xt test run, mainly to check the contents of
18# lib and the generated POD's *before* anything is copied around
20884f55 19postamble <<"EOP";
20
e2633789 21dbic_clonedir_copy_generated_pod : test_xt
20884f55 22
3ba58fe4 23test_xt : pm_to_blib
24@{[
25 # When xt tests are explicitly requested, we want to run with RELEASE_TESTING=1
26 # so that all optdeps are turned into a hard failure
27 # However portably modifying ENV for a single command is surprisingly hard
28 # So instead we (ab)use perl's ability to stack -e options, and simply modify
29 # the ENV from within perl itself
30 $mm_proto->test_via_harness(
31 # perl cmd
32 join( ' ',
33 '$(ABSPERLRUN)',
34 # $'s need to be escaped (doubled) before inserting into the Makefile
35 map { $mm_proto->quote_literal($_) } qw(-e $$ENV{RELEASE_TESTING}=1;)
36 ),
37 # test list
38 join( ' ',
39 map { $mm_proto->quote_literal($_) } @xt_tests
40 ),
41 )
42]}
20884f55 43
44EOP
45
fc4b0448 46# keep the Makefile.PL eval happy
471;