Add ARM files
[dh-make-perl] / dev / arm / libio-compress-zlib-perl / libio-compress-zlib-perl-2.012 / t / 050interop-gzip.t
diff --git a/dev/arm/libio-compress-zlib-perl/libio-compress-zlib-perl-2.012/t/050interop-gzip.t b/dev/arm/libio-compress-zlib-perl/libio-compress-zlib-perl-2.012/t/050interop-gzip.t
new file mode 100644 (file)
index 0000000..22be064
--- /dev/null
@@ -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";
+}
+
+