| 1 | #!/usr/bin/perl |
| 2 | use v5.14; |
| 3 | use warnings; |
| 4 | |
| 5 | use Test::More tests => 126; |
| 6 | use File::Slurper qw/read_binary/; |
| 7 | |
| 8 | use IO::Uncompress::Brotli; |
| 9 | |
| 10 | for my $test (<brotli/tests/testdata/*.compressed*>) { |
| 11 | my ($expected) = $test =~ s/\.compressed.*//r; |
| 12 | $expected = read_binary $expected; |
| 13 | |
| 14 | my $decoded = unbro ((scalar read_binary $test), 1_000_000); |
| 15 | is $decoded, $expected, "$test (two-argument unbro)"; |
| 16 | |
| 17 | $decoded = unbro scalar read_binary $test; |
| 18 | is $decoded, $expected, "$test (one-argument unbro)"; |
| 19 | |
| 20 | open FH, '<', $test; |
| 21 | binmode FH; |
| 22 | my $unbro = IO::Uncompress::Brotli->create; |
| 23 | my ($buf, $out); |
| 24 | until (eof FH) { |
| 25 | read FH, $buf, 100; |
| 26 | $out .= $unbro->decompress($buf); |
| 27 | } |
| 28 | is $out, $expected, "$test (streaming)"; |
| 29 | } |