Dave Cross: Still Munging Data With Perl: Online event - Mar 27 Learn more

#!/usr/bin/env perl
use strict;
use Cwd;
local $ENV{NO_MANIFEST_CHECK} = 1;
my $sub = Test::CheckManifest->can('_check_manifest');
ok $sub;
my $dir = Cwd::realpath( dirname __FILE__ );
$dir =~ s{.t\z}{};
my $t_dir = File::Spec->catdir( $dir, 't' );
my $abs_t_file = File::Spec->rel2abs( __FILE__ );
# my ($existing_files, $manifest_files, $excluded, $msg) = @_;
my $diag = '';
{
no warnings 'redefine';
sub Test::Builder::diag {
$diag .= $_[1] . "\n";
};
}
my $cnt = 0;
{
my @tests = (
[ undef, undef, undef, 'test', 1 ],
[ ['/t/test'], undef, undef, 'test', '' ],
[ ['/t/test'], ['/t/test'], undef, 'test', 1 ],
[ ['/t/test'], undef, {'/t/test' => 1}, 'test', 1 ],
[ ['/t/test'], ['/test'], {'/t/test' => 1}, 'test', '' ],
[ ['/t/test'], ['/t/test', '/t/test'], undef, 'test', '' ],
[ ['/t/test','/t/test2'], ['/t/test'], undef, 'test', '' ],
);
for my $test ( @tests ) {
$diag = '';
my @params = @{$test};
my $expected = pop @params;
my $result = $sub->( @params, 'No Manifest' );
is $result, $expected, "Test $cnt";
$cnt++;
}
}
{
local $Test::CheckManifest::test_bool = 0;
my @tests = (
[ undef, undef, undef, 'test', '' ],
[ ['/t/test'], undef, undef, 'test', 1 ],
[ ['/t/test'], ['/t/test'], undef, 'test', '' ],
[ ['/t/test'], undef, {'/t/test' => 1}, 'test', '' ],
[ ['/t/test'], ['/test'], {'/t/test' => 1}, 'test', 1 ],
[ ['/t/test'], ['/t/test', '/t/test'], undef, 'test', 1 ],
[ ['/t/test','/t/test2'], ['/t/test'], undef, 'test', 1 ],
);
for my $test ( @tests ) {
$diag = '';
my @params = @{$test};
my $expected = pop @params;
my $result = $sub->( @params, 'No Manifest' );
is $result, $expected;
$cnt++;
}
}
{
local $Test::CheckManifest::test_bool = 0;
local $Test::CheckManifest::VERBOSE = 0;
my @tests = (
[ undef, undef, undef, 'test', '' ],
[ ['/t/test'], undef, undef, 'test', 1 ],
[ ['/t/test'], ['/t/test'], undef, 'test', '' ],
[ ['/t/test'], undef, {'/t/test' => 1}, 'test', '' ],
[ ['/t/test'], ['/test'], {'/t/test' => 1}, 'test', 1 ],
[ ['/t/test'], ['/t/test', '/t/test'], undef, 'test', 1 ],
[ ['/t/test','/t/test2'], ['/t/test'], undef, 'test', 1 ],
);
for my $test ( @tests ) {
$diag = '';
my @params = @{$test};
my $expected = pop @params;
my $result = $sub->( @params, 'No Manifest' );
is $result, $expected;
$cnt++;
}
}
{
local $Test::CheckManifest::VERBOSE = 0;
my @tests = (
[ undef, undef, undef, 'test', 1 ],
[ ['/t/test'], undef, undef, 'test', '' ],
[ ['/t/test'], ['/t/test'], undef, 'test', 1 ],
[ ['/t/test'], undef, {'/t/test' => 1}, 'test', 1 ],
[ ['/t/test'], ['/test'], {'/t/test' => 1}, 'test', '' ],
[ ['/t/test'], ['/t/test', '/t/test'], undef, 'test', '' ],
[ ['/t/test','/t/test2'], ['/t/test'], undef, 'test', '' ],
);
for my $test ( @tests ) {
$diag = '';
my @params = @{$test};
my $expected = pop @params;
my $result = $sub->( @params, 'No Manifest' );
is $result, $expected;
$cnt++;
}
}
done_testing();