Sponsoring The Perl Toolchain Summit 2025: Help make this important event another success Learn more

use strict;
use Test::More 0.88;
use autodie;
my $with_place_for_pod = '
package DZT::WPFP;
=head1 NAME
DZT::WPFP - with place for pod!
=cut
sub foo { }
1;
';
my $with_version = '
package DZT::WVer;
=head1 NAME
DZT::WVer - version in pod!
=head1 VERSION
version 1.234
=cut
sub foo { }
1;
';
my $with_multi_line_abstract = '
package DZT::MLA;
=head1 NAME
DZT::MLA - This abstract spans
multiple lines.
=cut
sub foo { }
1;
';
my $script = '
#!/usr/bin/perl
=head1 NAME
script.pl - a podded script!
=cut
print "hello world\n";
';
my $tzil = Builder->from_config(
{ dist_root => 'corpus/dist/DZT' },
{
add_files => {
'source/lib/DZT/WPFP.pm' => $with_place_for_pod,
'source/lib/DZT/WVer.pm' => $with_version,
'source/lib/DZT/MLA.pm' => $with_multi_line_abstract,
'source/bin/script.pl' => $script,
'source/dist.ini' => simple_ini('GatherDir', 'PodVersion', 'ExecDir'),
},
},
);
$tzil->build;
my $want = <<'END_POD';
=head1 VERSION
version 0.001
=cut
END_POD
my $want_mla = <<'END_POD';
=head1 NAME
DZT::MLA - This abstract spans
multiple lines.
=head1 VERSION
version 0.001
=cut
END_POD
my $dzt_sample = $tzil->slurp_file('build/lib/DZT/Sample.pm');
ok(
index($dzt_sample, $want) == -1,
"we didn't add version pod to Sample; it has no NAME",
);
my $dzt_wpfp = $tzil->slurp_file('build/lib/DZT/WPFP.pm');
ok(
index($dzt_wpfp, $want) > 0,
"we did add version pod to WPFP",
);
my $dzt_wver = $tzil->slurp_file('build/lib/DZT/WVer.pm');
ok(
index($dzt_wver, $want) == -1,
"we didn't add version pod to WVer; it has one already",
);
my $dzt_mla = $tzil->slurp_file('build/lib/DZT/MLA.pm');
ok(
index($dzt_mla, $want_mla) > 0,
"we properly skipped over multi-line abstract",
);
my $dzt_script = $tzil->slurp_file('build/bin/script.pl');
ok(
index($dzt_script, $want) > 0,
"we did add version pod to script",
);
done_testing;