X-Git-Url: http://git.maemo.org/git/?p=dh-make-perl;a=blobdiff_plain;f=dev%2Fi386%2Flibio-compress-zlib-perl%2Flibio-compress-zlib-perl-2.012%2Ft%2F050interop-gzip.t;fp=dev%2Fi386%2Flibio-compress-zlib-perl%2Flibio-compress-zlib-perl-2.012%2Ft%2F050interop-gzip.t;h=22be0646c8adf5f8841197dfba245a8e9dac324d;hp=0000000000000000000000000000000000000000;hb=8977e561d8a9eae6959218b0306c9df2056a38a9;hpb=df794b845212301ea0d267c919232538bfef356a diff --git a/dev/i386/libio-compress-zlib-perl/libio-compress-zlib-perl-2.012/t/050interop-gzip.t b/dev/i386/libio-compress-zlib-perl/libio-compress-zlib-perl-2.012/t/050interop-gzip.t new file mode 100644 index 0000000..22be064 --- /dev/null +++ b/dev/i386/libio-compress-zlib-perl/libio-compress-zlib-perl-2.012/t/050interop-gzip.t @@ -0,0 +1,143 @@ +BEGIN { + if ($ENV{PERL_CORE}) { + chdir 't' if -d 't'; + @INC = ("../lib", "lib/compress"); + } +} + +use lib qw(t t/compress); +use strict; +use warnings; +use bytes; + +use Test::More ; +use CompTestUtils; + +my $GZIP ; + + +sub ExternalGzipWorks +{ + my $lex = new LexFile my $outfile; + my $content = qq { +Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Ut tempus odio id + dolor. Camelus perlus. Larrius in lumen numen. Dolor en quiquum filia + est. Quintus cenum parat. +}; + + writeWithGzip($outfile, $content) + or return 0; + + my $got ; + readWithGzip($outfile, $got) + or return 0; + + if ($content ne $got) + { + diag "Uncompressed content is wrong"; + return 0 ; + } + + return 1 ; +} + +sub readWithGzip +{ + my $file = shift ; + + my $lex = new LexFile my $outfile; + + my $comp = "$GZIP -dc" ; + + if ( system("$comp $file >$outfile") == 0 ) + { + $_[0] = readFile($outfile); + return 1 + } + + diag "'$comp' failed: $?"; + return 0 ; +} + +sub getGzipInfo +{ + my $file = shift ; +} + +sub writeWithGzip +{ + my $file = shift ; + my $content = shift ; + my $options = shift || ''; + + my $lex = new LexFile my $infile; + writeFile($infile, $content); + + unlink $file ; + my $comp = "$GZIP -c $options $infile >$file" ; + + return 1 + if system($comp) == 0 ; + + diag "'$comp' failed: $?"; + return 0 ; +} + +BEGIN { + + # Check external gzip is available + my $name = $^O =~ /mswin/i ? 'gzip.exe' : 'gzip'; + my $split = $^O =~ /mswin/i ? ";" : ":"; + + for my $dir (reverse split $split, $ENV{PATH}) + { + $GZIP = "$dir/$name" + if -x "$dir/$name" ; + } + + plan(skip_all => "Cannot find $name") + if ! $GZIP ; + + plan(skip_all => "$name doesn't work as expected") + if ! ExternalGzipWorks(); + + + # use Test::NoWarnings, if available + my $extra = 0 ; + $extra = 1 + if eval { require Test::NoWarnings ; import Test::NoWarnings; 1 }; + + plan tests => 7 + $extra ; + + use_ok('IO::Compress::Gzip', ':all') ; + use_ok('IO::Uncompress::Gunzip', ':all') ; + +} + + +{ + title "Test interop with $GZIP" ; + + my $file; + my $file1; + my $lex = new LexFile $file, $file1; + my $content = qq { +Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Ut tempus odio id + dolor. Camelus perlus. Larrius in lumen numen. Dolor en quiquum filia + est. Quintus cenum parat. +}; + my $got; + + ok writeWithGzip($file, $content), "writeWithGzip ok"; + + gunzip $file => \$got ; + is $got, $content, "got content"; + + + gzip \$content => $file1; + $got = ''; + ok readWithGzip($file1, $got), "readWithGzip ok"; + is $got, $content, "got content"; +} + +