sub
build_meta {
my
$tzil
=
shift
;
$tzil
->build;
$tzil
->distmeta;
}
my
$tzil
= Builder->from_config(
{
dist_root
=>
'corpus/dist/AutoPrereqs'
},
{ },
);
my
$meta
= build_meta(
$tzil
);
my
%want_runtime
= (
'DZPA::Base::Moose1'
=> 0,
'DZPA::Base::Moose2'
=> 0,
'DZPA::Base::base1'
=> 0,
'DZPA::Base::base2'
=> 0,
'DZPA::Base::base3'
=> 0,
'DZPA::Base::parent1'
=> 0,
'DZPA::Base::parent2'
=> 0,
'DZPA::Base::parent3'
=> 0,
'DZPA::IgnoreAPI'
=> 0,
'DZPA::IndentedRequire'
=>
'3.45'
,
'DZPA::IndentedUse'
=>
'0.13'
,
'DZPA::MinVerComment'
=>
'0.50'
,
'DZPA::ModRequire'
=> 0,
'DZPA::NotInDist'
=> 0,
'DZPA::Role'
=> 0,
'DZPA::ScriptUse'
=> 0,
'base'
=> 0,
'lib'
=> 0,
'parent'
=> 0,
'perl'
=> 5.008,
'strict'
=> 0,
'warnings'
=> 0,
);
is_deeply(
$meta
->{prereqs}{runtime}{requires},
\
%want_runtime
,
'all requires found, but no more'
,
);
$tzil
= Builder->from_config(
{
dist_root
=>
'corpus/dist/AutoPrereqs'
},
{
add_files
=> {
'source/dist.ini'
=> simple_ini(
qw(GatherDir ExecDir)
,
[
AutoPrereqs
=> {
skip
=>
'^DZPA::Skip'
,
configure_finder
=>
':IncModules'
} ],
),
'source/inc/DZPA.pm'
=>
"use DZPA::NotInDist;\n use DZPA::Configure;\n"
,
},
},
);
$meta
= build_meta(
$tzil
);
is_deeply(
$meta
->{prereqs}{runtime}{requires},
\
%want_runtime
,
'configure_finder did not change runtime requires'
,
);
my
%want_configure
= (
'DZPA::Configure'
=> 0,
'DZPA::NotInDist'
=> 0,
);
is_deeply(
$meta
->{prereqs}{configure}{requires},
\
%want_configure
,
'configure_requires is correct'
,
);
$tzil
= Builder->from_config(
{
dist_root
=>
'corpus/dist/AutoPrereqs'
},
{
add_files
=> {
'source/dist.ini'
=> simple_ini(
qw(GatherDir ExecDir)
,
[
AutoPrereqs
=> {
skip
=>
'^DZPA::Skip'
,
configure_finder
=>
':IncModules'
} ],
),
'source/inc/DZPA.pm'
=>
"use DZPA::NotInDist;\n use DZPA::Configure;\n"
,
'source/t/basic.t'
=>
"use Test::Foo;\n"
,
},
},
);
$meta
= build_meta(
$tzil
);
my
%want_test
= (
'Test::Foo'
=>
'0'
,
);
cmp_deeply(
$meta
,
superhashof({
prereqs
=> {
runtime
=> {
requires
=> \
%want_runtime
},
configure
=> {
requires
=> \
%want_configure
},
test
=> {
requires
=> \
%want_test
},
},
}),
'test_finder did not change runtime, configure requires; test requires is correct'
,
);
$tzil
= Builder->from_config(
{
dist_root
=>
'corpus/dist/AutoPrereqs'
},
{
add_files
=> {
'source/dist.ini'
=> simple_ini(
qw(GatherDir ExecDir)
,
[
AutoPrereqs
=> {
skip
=>
'^DZPA::Skip'
,
configure_finder
=>
':IncModules'
} ],
),
'source/inc/DZPA.pm'
=>
"use DZPA::NotInDist;\n use DZPA::Configure;\n"
,
'source/t/basic.t'
=>
"use Test::Foo;\n"
,
'source/xt/author/more1.t'
=>
"use Test::Bar;\n"
,
'source/xt/smoke/more2.t'
=>
"use Test::Baz;\n"
,
'source/xt/release/more3.t'
=>
"use Test::Qux;\n"
,
'source/xt/more4.t'
=>
"use Test::Norf;\n"
,
},
},
);
$meta
= build_meta(
$tzil
);
my
%want_develop
= (
'Test::Bar'
=>
'0'
,
'Test::Baz'
=>
'0'
,
'Test::Qux'
=>
'0'
,
'Test::Norf'
=>
'0'
,
);
cmp_deeply(
$meta
,
superhashof({
prereqs
=> {
runtime
=> {
requires
=> \
%want_runtime
},
configure
=> {
requires
=> \
%want_configure
},
test
=> {
requires
=> \
%want_test
},
develop
=> {
requires
=> \
%want_develop
},
},
}),
'develop_finder did not change runtime, configure, test requires; develop requires is correct'
,
);
$tzil
= Builder->from_config(
{
dist_root
=>
'corpus/dist/AutoPrereqs'
},
{
add_files
=> {
'source/dist.ini'
=> simple_ini(
qw(GatherDir ExecDir)
,
[
AutoPrereqs
=> {
scanner
=>
'Perl5'
,
extra_scanner
=>
'Aliased'
} ],
),
'source/lib/DZPA/Aliased.pm'
=>
"use aliased 'Long::Class::Name';\n"
,
},
},
);
$meta
= build_meta(
$tzil
);
{
my
%want_runtime
=
%want_runtime
;
delete
$want_runtime
{
'DZPA::Base::Moose1'
};
delete
$want_runtime
{
'DZPA::Base::Moose2'
};
delete
$want_runtime
{
'DZPA::Role'
};
$want_runtime
{
'DZPA::Skip::Blah'
} = 0;
$want_runtime
{
'DZPA::Skip::Foo'
} = 0;
$want_runtime
{
'aliased'
} = 0;
$want_runtime
{
'Long::Class::Name'
} = 0;
is_deeply(
$meta
->{prereqs}{runtime}{requires},
\
%want_runtime
,
'custom scanner list'
,
);
}
$tzil
= Builder->from_config(
{
dist_root
=>
'corpus/dist/AutoPrereqs'
},
{
add_files
=> {
'source/dist.ini'
=> simple_ini(
qw(GatherDir ExecDir)
,
[
AutoPrereqs
=> {
skip
=>
'^DZPA::Skip'
,
type
=>
'suggests'
} ],
),
'source/t/basic.t'
=>
"use Test::Foo;\n"
,
},
},
);
$meta
= build_meta(
$tzil
);
cmp_deeply(
$meta
,
superhashof({
prereqs
=> {
runtime
=> {
suggests
=> \
%want_runtime
},
test
=> {
suggests
=> \
%want_test
},
},
}),
'all prereqs were added with the "suggests" relationship'
,
);
done_testing;