60 lines
1.3 KiB
Perl
60 lines
1.3 KiB
Perl
|
#!/usr/bin/perl
|
||
|
|
||
|
use strict;
|
||
|
|
||
|
BEGIN {
|
||
|
$| = 1;
|
||
|
$^W = 1;
|
||
|
}
|
||
|
use Archive::SevenZip;
|
||
|
use FileHandle;
|
||
|
use File::Spec;
|
||
|
|
||
|
use Test::More tests => 2;
|
||
|
BEGIN {
|
||
|
if( ! eval {
|
||
|
require t::common;
|
||
|
t::common->import;
|
||
|
1
|
||
|
}) { SKIP: {
|
||
|
skip "Archive::Zip not installed, skipping compatibility tests", 2;
|
||
|
}
|
||
|
exit;
|
||
|
}}
|
||
|
|
||
|
my $version = Archive::SevenZip->find_7z_executable();
|
||
|
if( ! $version ) {
|
||
|
SKIP: { skip "7z binary not found (not installed?)", 2; }
|
||
|
exit;
|
||
|
};
|
||
|
|
||
|
|
||
|
use constant FILENAME => File::Spec->catfile(TESTDIR(), 'testing.txt');
|
||
|
|
||
|
my $zip;
|
||
|
my @memberNames;
|
||
|
|
||
|
sub makeZip {
|
||
|
my ($src, $dest, $pred) = @_;
|
||
|
$zip = Archive::SevenZip->archiveZipApi();
|
||
|
$zip->addTree($src, $dest,);
|
||
|
@memberNames = $zip->memberNames();
|
||
|
}
|
||
|
|
||
|
sub makeZipAndLookFor {
|
||
|
my ($src, $dest, $pred, $lookFor) = @_;
|
||
|
makeZip($src, $dest, $pred);
|
||
|
ok(@memberNames);
|
||
|
ok((grep { $_ eq $lookFor } @memberNames) == 1)
|
||
|
or print STDERR "Can't find $lookFor in ("
|
||
|
. join(",", @memberNames) . ")\n";
|
||
|
}
|
||
|
|
||
|
my ($testFileVolume, $testFileDirs, $testFileName) = File::Spec->splitpath($0);
|
||
|
|
||
|
makeZipAndLookFor('.', '', sub { print "file $_\n"; -f && /\.t$/ },
|
||
|
't/02_main.t');
|
||
|
# Not supported:
|
||
|
#makeZipAndLookFor('.', 'e/', sub { -f && /\.t$/ }, 'e/t/02_main.t');
|
||
|
#makeZipAndLookFor('./t', '', sub { -f && /\.t$/ }, '02_main.t');
|