diff options
author | Lorry Tar Creator <lorry-tar-importer@lorry> | 2015-02-19 09:56:27 +0000 |
---|---|---|
committer | Lorry Tar Creator <lorry-tar-importer@lorry> | 2015-02-19 09:56:27 +0000 |
commit | efd32dfb6c52e28f3b158930b64f986ff8760409 (patch) | |
tree | 17be39ecfd6527a069cb179c025d0a8e0ee2cf4d /t/021-compfile.t | |
download | Compress-Bzip2-tarball-master.tar.gz |
Compress-Bzip2-2.22HEADCompress-Bzip2-2.22master
Diffstat (limited to 't/021-compfile.t')
-rw-r--r-- | t/021-compfile.t | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/t/021-compfile.t b/t/021-compfile.t new file mode 100644 index 0000000..f751dde --- /dev/null +++ b/t/021-compfile.t @@ -0,0 +1,59 @@ +# -*- mode: perl -*- + +use Test::More tests => 7; + +## compress sample1 from the bzip2 1.0.2 distribution +## compare against bzip2 command with od -x and diff + +BEGIN { + use_ok('Compress::Bzip2'); +}; + +do 't/lib.pl'; + +my $INFILE = catfile( qw(bzlib-src sample1.ref) ); +( my $MODELFILE = $INFILE ) =~ s/\.ref$/.bz2/; +my $PREFIX = catfile( qw(t 021-tmp) ); + +my $in; +open( $in, $INFILE ); + +my $d = bzopen( "$PREFIX-sample.bz2", "w" ); +$d->bzsetparams( -blockSize100k => 1 ); + + +ok( $d, "open was successful" ); + +my $counter = 0; +my $bytes = 0; +while ( my $ln = read( $in, $buf, 512 ) ) { + my $out = $d->bzwrite( $buf, $ln ); + if ( $out < 0 ) { + print STDERR "error: $out $Compress::Bzip2::bzerrno\n"; + last; + } + $bytes += $ln; + $counter++; +} +ok( $counter, "$counter blocks were read, $bytes bytes" ); + +my $res = $d->bzclose; +ok( !$res, "file was closed $res $Compress::Bzip2::bzerrno" ); + +close($in); + +ok ( compare_binary_files( "$PREFIX-sample.bz2", $MODELFILE ), 'no differences with reference' ); + +$d = bzopen( "$PREFIX-sample.bz2", "w" ); +my $out = $d->bzwrite( $buf, '' ); +is($out, 0, "cpan #36246 do not shortcut compressing a 0-byte file"); +if ( $out < 0 ) { + diag "error: $out $Compress::Bzip2::bzerrno\n"; +} +$d->bzclose; +ok(-s "$PREFIX-sample.bz2", "filesize > 0"); + +#system( "bzip2 < $INFILE | od -x > $PREFIX-reference-bz2.odx" ); +#system( "od -x < $PREFIX-sample.bz2 | diff - $PREFIX-reference-bz2.odx > $PREFIX-diff.txt" ); + +#ok( ! -s "$PREFIX-diff.txt", "no differences with bzip2" ); |