1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95
|
use strict;
use warnings;
use Test::More 0.88;
use autodie;
use Test::DZil;
use Test::Deep;
my $generic_test = <<'END_TEST';
#!perl
use strict;
use warnings;
use Test::More 0.88;
use Foo::%s 392;
ok(0, "stop building me!");
done_testing;
END_TEST
my @xt_types = qw(smoke author release);
my $tzil = Builder->from_config(
{ dist_root => 'corpus/dist/DZT' },
{
add_files => {
'source/dist.ini' => simple_ini(qw<GatherDir ExtraTests AutoPrereqs>),
(map {; "source/xt/$_/huffer.t" => sprintf($generic_test, $_) }
@xt_types, qw(blort))
},
},
);
$tzil->build;
my @files = map {; $_->name } @{ $tzil->files };
cmp_deeply(
\@files,
bag(qw(
dist.ini lib/DZT/Sample.pm t/basic.t
t/smoke-huffer.t
t/author-huffer.t
t/release-huffer.t
xt/blort/huffer.t
)),
"filenames rewritten by ExtraTests",
);
for my $type (@xt_types) {
my $test_program = $tzil->slurp_file("build/t/$type-huffer.t");
my $env = uc sprintf "%s_TESTING", $type eq 'smoke' ? 'automated' : $type;
like(
$test_program,
qr/\$ENV\{$env\}/,
"we mention $env in the rewritten $type test",
);
}
cmp_deeply(
$tzil->distmeta,
superhashof({
prereqs => {
runtime => {
requires => {
strict => 0,
warnings => 0,
},
},
test => {
requires => {
'Test::More' => '0.88',
'Foo::smoke' => '392',
# Foo::author and Foo::release are
# not here because they are not required by the end user
# (See RT#76305)
},
},
develop => {
requires => {
# remaining xt/ files were moved aside and not scanned
'Foo::blort' => '392',
'Test::More' => '0.88',
},
},
},
}),
'dependencies ok',
) or diag $tzil->distmeta;
done_testing;
|