my
$generic_test
=
<<'END_TEST';
use strict;
use warnings;
use Test::More 0.88;
ok(0, "stop building me!");
done_testing;
END_TEST
my
$tzil
= Builder->from_config(
{
dist_root
=>
'corpus/dist/DZT'
},
{
add_files
=> {
'source/dist.ini'
=> simple_ini(
[
GatherDir
=> ],
[
GatherDir
=>
MyINC
=> {
root
=>
'../corpus/dist/DZT_Inc'
,
prefix
=>
'inc'
,
} ],
[
GatherDir
=>
MyBIN
=> {
root
=>
'../corpus/dist/DZT_Bin'
,
prefix
=>
'bin'
,
} ],
[
GatherDir
=>
MySHARE
=> {
root
=>
'../corpus/dist/DZT_Share'
,
prefix
=>
'share'
,
} ],
[
ExecDir
=> ],
[
ShareDir
=> ],
'Manifest'
,
),
(
map
{;
"source/xt${_}more.t"
=>
$generic_test
}
qw(/author/ /smoke/ /release/ /)
),
},
also_copy
=> {
'corpus/dist/DZT_Inc'
=>
'corpus/dist/DZT_Inc'
,
'corpus/dist/DZT_Bin'
=>
'corpus/dist/DZT_Bin'
,
'corpus/dist/DZT_Share'
=>
'corpus/dist/DZT_Share'
},
},
);
$tzil
->build;
my
@files
=
map
{;
$_
->name } @{
$tzil
->files };
is_filelist(
[
@files
],
[
qw(
dist.ini lib/DZT/Sample.pm
share/my_data.dat
t/basic.t
xt/author/more.t xt/smoke/more.t xt/release/more.t xt/more.t
MANIFEST
inc/Foo.pm inc/Foo/Bar.pm
bin/another_perl_script
bin/test.bash
bin/test.pl
)
],
"GatherDir gathers all files in the source dir"
,
);
my
$manifest
= maniread(
$tzil
->tempdir->child(
'build/MANIFEST'
)->stringify);
my
$count
=
grep
{
exists
$manifest
->{
$_
} }
@files
;
ok(
$count
==
@files
,
"all files found were in manifest"
);
ok(
keys
(
%$manifest
) ==
@files
,
"all files in manifest were on disk"
);
my
$files
=
$tzil
->find_files(
':InstallModules'
);
is_filelist(
[
map
{;
$_
->name }
@$files
],
[
qw(
lib/DZT/Sample.pm
)
],
"InstallModules finds all modules"
,
);
$files
=
$tzil
->find_files(
':IncModules'
);
is_filelist(
[
map
{;
$_
->name }
@$files
],
[
qw(
inc/Foo.pm inc/Foo/Bar.pm
)
],
"IncModules finds all modules"
,
);
$files
=
$tzil
->find_files(
':TestFiles'
);
is_filelist(
[
map
{;
$_
->name }
@$files
],
[
qw(
t/basic.t
)
],
"TestFiles finds all files"
,
);
$files
=
$tzil
->find_files(
':ExtraTestFiles'
);
is_filelist(
[
map
{;
$_
->name }
@$files
],
[
qw(
xt/author/more.t xt/smoke/more.t xt/release/more.t xt/more.t
)
],
"ExtraTestFiles finds all files in xt"
,
);
$files
=
$tzil
->find_files(
':ExecFiles'
);
is_filelist(
[
map
{;
$_
->name }
@$files
],
[
qw(
bin/another_perl_script
bin/test.bash
bin/test.pl
)
],
"ExecFiles finds all files"
,
);
$files
=
$tzil
->find_files(
':PerlExecFiles'
);
is_filelist(
[
map
{;
$_
->name }
@$files
],
[
qw(
bin/another_perl_script
bin/test.pl
)
],
"PerlExecFiles finds exec files that are perl"
,
);
$files
=
$tzil
->find_files(
':ShareFiles'
);
is_filelist(
[
map
{;
$_
->name }
@$files
],
[
qw(
share/my_data.dat
)
],
"ShareFiles finds all files"
,
);
$files
=
$tzil
->find_files(
':AllFiles'
);
is_filelist(
[
map
{;
$_
->name }
@$files
],
[
@files
],
":AllFiles finds all files"
,
);
$files
=
$tzil
->find_files(
':NoFiles'
);
is_filelist(
[
map
{;
$_
->name }
@$files
],
[ ],
":NoFiles finds no files"
,
);
done_testing;