Commit | Line | Data |
f4c6fd49 |
1 | |
2 | |
3 | use strict ; |
8aa25532 |
4 | use warnings ; |
f4c6fd49 |
5 | |
6 | use Compress::Zlib ; |
7 | |
06edba15 |
8 | if (Compress::Zlib::ZLIB_VERNUM() < 0x1060 ) |
f4c6fd49 |
9 | { |
f4c6fd49 |
10 | my $ver = Compress::Zlib::zlib_version(); |
06edba15 |
11 | print "1..0 # gzsetparams needs zlib 1.0.6 or better. You have $ver\n"; |
12 | exit 0 ; |
f4c6fd49 |
13 | } |
06edba15 |
14 | |
f4c6fd49 |
15 | sub ok |
16 | { |
17 | my ($no, $ok) = @_ ; |
18 | |
19 | #++ $total ; |
20 | #++ $totalBad unless $ok ; |
21 | |
22 | print "ok $no\n" if $ok ; |
23 | print "not ok $no\n" unless $ok ; |
24 | } |
25 | |
26 | print "1..11\n" ; |
27 | |
28 | # Check zlib_version and ZLIB_VERSION are the same. |
29 | ok(1, Compress::Zlib::zlib_version eq ZLIB_VERSION) ; |
30 | |
31 | |
32 | { |
33 | # gzsetparams |
34 | |
35 | my $hello = "I am a HAL 9000 computer" x 2001 ; |
36 | my $len_hello = length $hello ; |
37 | my $goodbye = "Will I dream?" x 2010; |
38 | my $len_goodbye = length $goodbye; |
39 | |
40 | my ($input, $err, $answer, $X, $status, $Answer); |
41 | |
42 | my $name = "test.gz" ; |
43 | unlink $name ; |
44 | ok(2, my $x = gzopen($name, "wb")) ; |
45 | |
46 | ok(3, $x->gzwrite($hello) == $len_hello) ; |
47 | $input .= $hello; |
48 | |
49 | # error cases |
50 | eval { $x->gzsetparams() }; |
51 | ok(4, $@ =~ /^Usage: Compress::Zlib::gzFile::gzsetparams\(file, level, strategy\) at/); |
52 | |
53 | # change both Level & Strategy |
54 | $status = $x->gzsetparams(Z_BEST_SPEED, Z_HUFFMAN_ONLY) ; |
55 | ok(5, $status == Z_OK) ; |
56 | |
57 | ok(6, $x->gzwrite($goodbye) == $len_goodbye) ; |
58 | $input .= $goodbye; |
59 | |
60 | ok(7, ! $x->gzclose ) ; |
61 | |
62 | ok(8, my $k = gzopen($name, "rb")) ; |
63 | |
64 | my $len = length $input ; |
65 | my $uncompressed; |
66 | ok(9, $k->gzread($uncompressed, $len) == $len) ; |
67 | |
68 | ok(10, $uncompressed eq $input ) ; |
69 | ok(11, ! $k->gzclose ) ; |
bdd93743 |
70 | unlink $name ; |
f4c6fd49 |
71 | } |
06edba15 |
72 | |