IO-Compress-Zstd

 view release on metacpan or  search on metacpan

t/200regression.t  view on Meta::CPAN

    while (<$IN>)
    {
        $length += length($_);
        $md5->add($_);
        $uncompressed .= $_ ;
    }

    is $length, 17204641, "Length matches";
    is $md5->hexdigest, '3f5b564eea6aa4bb39ebecad0b98d70b', 'MD5 checksums match';

    my $text = "$tmpDir/text";
    writeFile($text, $uncompressed);


    # use IO::Compress::Zstd to an in-memory buffer
    use IO::Compress::Zstd qw(zstd $ZstdError);
    use IO::Uncompress::UnZstd qw(unzstd $UnZstdError);

    my $compressed;
    ok zstd \$uncompressed => \$compressed;

    my $new_uncompressed;
    unzstd \$compressed => \$new_uncompressed;

    ok $new_uncompressed eq $uncompressed;

    my $here;

    my $OUT = new IO::Compress::Zstd \$here ;
    for (split /\n/, $new_uncompressed)
    {
        print $OUT "$_\n";
    }
    close $OUT ;

    ok length($here);

    ok unzstd \$here => \$new_uncompressed, transparent => 0
        or diag "unstd failed";

    ok $new_uncompressed eq $uncompressed;

    # output to a file
    my $outFileZstd = "$tmpDir/file1";

    $OUT = new IO::Compress::Zstd $outFileZstd ;
    for (split /\n/, $new_uncompressed)
    {
        print $OUT "$_\n";
    }
    close $OUT ;

    ok unzstd $outFileZstd => \$new_uncompressed, transparent => 0
        or diag "unstd failed";

    ok $new_uncompressed eq $uncompressed;

    {
        # Read from <>

        local @ARGV = $text ;
        my $outB ;

        my $FH = new IO::Compress::Zstd \$outB
            or die "$ZstdError";

        # select $FH;

        while (<>)
        {
            print $FH $_;
        }
        close $FH ;

        $new_uncompressed = '';
        ok unzstd \$outB => \$new_uncompressed, transparent => 0
            or diag "unstd failed";

        ok $new_uncompressed eq $uncompressed;
    }
}



( run in 0.815 second using v1.01-cache-2.11-cpan-e1769b4cff6 )