use strict; use warnings; use Test::More; use t::Utils; use File::Spec::Functions; use SVN::Dump; eval { require PerlIO::gzip; }; plan skip_all => 'PerlIO::gzip required to test gziped streams' if $@; my @files = glob catfile( 't', 'dump', 'gzip', '*' ); plan tests => scalar @files; for my $f (@files) { my $src = $f; $src =~ s/gzip/full/; $src =~ s/\.gz$//; my $expected = file_content($src); my $dump; # open a gzipped filehandle open my $fh, $f or do { fail("Failed to open $f: $!") for 1 .. 2; next; }; binmode( $fh, ':gzip' ); $dump = SVN::Dump->new( { fh => $fh } ); my $as_string = ''; while ( my $r = $dump->next_record() ) { $as_string .= $r->as_string(); } is_same_string( $as_string, $expected, "Read $f dump" ); }