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
=
map
{ File::Spec->catfile(
$_
,
'*.t'
) }
sort
keys
%$xt_dirs
;
Meta->tests(
join
(
' '
,
map
{
$_
|| () }
@xt_tests
, Meta->tests ) );
postamble
<<"EOP";
dbic_clonedir_copy_generated_pod : test_xt
test_xt : pm_to_blib
@{[
# When xt tests are explicitly requested, we want to run with RELEASE_TESTING=1
# so that all optdeps are turned into a hard failure
# However portably modifying ENV for a single command is surprisingly hard
# So instead we (ab)use perl's ability to stack -e options, and simply modify
# the ENV from within perl itself
$mm_proto->test_via_harness(
# perl cmd
join( ' ',
'$(ABSPERLRUN)',
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
),
)
]}
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/whitespace.t xt/footers.t',
)
)
]}
EOP
1;