App-zipdetails
view release on metacpan or search on metacpan
t/002-main.t view on Meta::CPAN
ods
par
rock
saz
usdz
war
whl
wmz
xpi
zip
zipx
doc
docx
docm
ppt
pptx
pptm
xls
xlsx
xlsm
) ;
my $exts = join "|", @exts, map { "$_.zst" } @exts ;
my %skip_dirs = map { $_ => 1} qw( t/files/0010-apache-commons-compress/commons-compress-1.20 ) ;
my @failed = ();
$ENV{ZIPDETAILS_TESTHARNESS} = 1 ;
my $COVERAGE = '';
if ($ENV{ZIPDETAILS_COVERAGE})
{
$COVERAGE = '-d:NYTProf' ;
$ENV{NYTPROF} = "blocks=1";
}
find(
sub { $dirs{$File::Find::dir} = $_
if /\.($exts)$/i && ! $skip_dirs{ $File::Find::dir };
},
't/sanity', -e 't/files' ? 't/files' : ()
);
for my $dir (sort keys %dirs)
{
SKIP:
{
my $z = $dirs{$dir};
my $zipfile = "$dir/$z";
if (defined $ENV{ZIPDETAILS_TEST_MATCH})
{
# skip "Test '$dir' doesn't match ZIPDETAILS_TEST_MATCH/" . basename($zipfile), $tests_per_zip_full
next
unless $zipfile =~ /$ENV{ZIPDETAILS_TEST_MATCH}/;
}
# these tests fail - looks like a FORMAT issue
skip "skipping", $tests_per_zip_full
if $zipfile =~ m<0000-errors/encoding/bad-encode> && $] < 5.020;
if ($z =~ /zst$/)
{
skip "ZSTD not available for test $dir/" . basename($zipfile), $tests_per_zip_full
if ! $ZSTD;
chdir $tempdir
or die "cannot chdir: $!\n";
$zipfile = $tempdir . '/' . $z;
$zipfile =~ s/\.zst$//;
system("$ZSTD -d -q -o $zipfile $HERE/$dir/$z") == 0
or die "cannot unzstd: $!\n";
chdir $HERE
or die "cannot chdir: $!\n";
}
die "No zip file '$z' '$zipfile' in '$dir'"
if ! -e $zipfile;
my %controlData = parseControl($dir);
# default options assume utf8
my $options = '--encoding utf-8-strict --output-encoding utf8';
if (-e "$dir/options" )
{
$options = readFile("$dir/options") ;
$options =~ s/\n+/ /g;
}
# diag "OPTIONS [$options]";
for my $opt1 ('', '-v')
{
for my $opt2 ('', '--scan', '--walk')
{
SKIP:
for my $opt3 ('', '--redact')
{
my $test = "$dir/" . basename($zipfile) . " $opt1 $opt2 $opt3";
diag "Testing $test" ;
my $ctlData = reconcileControl(\%controlData, $opt1, $opt2, $opt3);
my ($golden_stdout_name, $golden_stdout_file) = ($ctlData->{'stdout'}, "$dir/$ctlData->{stdout}");
my ($golden_stderr_name, $golden_stderr_file) = ($ctlData->{'stderr'}, "$dir/$ctlData->{stderr}");
my $exit_status = $ctlData->{'exit-status'};
my $golden_stdout = readOutFile($golden_stdout_file);
my $golden_stderr = readOutFile($golden_stderr_file);
zapGolden($golden_stdout);
zapGolden($golden_stderr);
if ($opt3 && $golden_stdout !~ /$opt3$/)
{
( run in 0.544 second using v1.01-cache-2.11-cpan-aadc1410aed )