Alien-Win32-LZMA
view release on metacpan or search on metacpan
t/02_main.t view on Meta::CPAN
}
use File::Spec::Functions ':ALL';
use File::Remove 'clear';
use Alien::Win32::LZMA ();
my $input = catfile('t', '02_main.t');
my $small = catfile('t', 'small');
my $big = catfile('t', 'big');
clear($small, $big);
ok( -f $input, 'Input file exists' );
ok( ! -f $small, 'Compressed file does not exist' );
ok( ! -f $big, 'Decompressed file does not exist' );
#####################################################################
# Basic Functions
# Find the lzma.exe program
my $bin = Alien::Win32::LZMA->lzma_exe;
ok( -f $bin, 'Found lzma.exe' );
is(
Alien::Win32::LZMA::lzma_exe(),
$bin,
'Can call lzma_exe as a function'
);
# Confirm it runs
my $stdout = '';
my $stderr = '';
my $result = IPC::Run3::run3(
[ $bin ],
\undef,
\$stdout,
\$stderr,
);
ok( $result, 'Ran lzma.exe ok' );
is( $stdout, '', 'STDOUT was empty' );
my $header = quotemeta('LZMA 4.65 : Igor Pavlov : Public domain : 2009-02-03');
like( $stderr, qr/$header/, 'lzma.exe output and version match expected values' );
# Check the lzma_version function
my $version = Alien::Win32::LZMA->lzma_version;
is( $version, 4.65, 'Found LZMA version 4.65 as expected' );
#####################################################################
# Test Compression and Decompression
ok(
Alien::Win32::LZMA::lzma_compress( $input => $small ),
'lzma_compress ok'
);
ok( -f $small, "lzma_compress created $small" );
ok(
(stat($input))[7] > (stat($small))[7],
'Compressed file is smaller',
);
ok(
Alien::Win32::LZMA::lzma_decompress( $small => $big ),
'lzma_decompress ok',
);
ok( -f $big, "lzma_decompress created $big" );
is(
(stat($input))[7],
(stat($big))[7],
'Decompressed file matches input file',
);
( run in 0.420 second using v1.01-cache-2.11-cpan-140bd7fdf52 )