Move IO::Compress from ext/ to cpan/
[p5sagit/p5-mst-13.2.git] / cpan / IO-Compress / t / 001bzip2.t
CommitLineData
319fab50 1BEGIN {
2 if ($ENV{PERL_CORE}) {
3 chdir 't' if -d 't';
4 @INC = ("../lib", "lib/compress");
5 }
6}
7
8use lib qw(t t/compress);
9
10use strict;
11use warnings;
12use bytes;
13
14use Test::More ;
15use CompTestUtils;
16
17BEGIN
18{
19 # use Test::NoWarnings, if available
20 my $extra = 0 ;
21 $extra = 1
22 if eval { require Test::NoWarnings ; import Test::NoWarnings; 1 };
23
24 plan tests => 841 + $extra ;
25};
26
27
28use IO::Compress::Bzip2 qw($Bzip2Error) ;
29use IO::Uncompress::Bunzip2 qw($Bunzip2Error) ;
30
31
32my $CompressClass = 'IO::Compress::Bzip2';
33my $UncompressClass = getInverse($CompressClass);
34my $Error = getErrorRef($CompressClass);
35my $UnError = getErrorRef($UncompressClass);
36
37sub myBZreadFile
38{
39 my $filename = shift ;
40 my $init = shift ;
41
42
43 my $fil = new $UncompressClass $filename,
44 -Strict => 1,
45 -Append => 1
46 ;
47
48 my $data = '';
49 $data = $init if defined $init ;
50 1 while $fil->read($data) > 0;
51
52 $fil->close ;
53 return $data ;
54}
55
56
57{
58
59 title "Testing $CompressClass Errors";
60
61 my $buffer ;
62
63 for my $value (undef, -1, 'fred')
64 {
65 my $stringValue = defined $value ? $value : 'undef';
66 title "BlockSize100K => $stringValue";
67 my $err = "Parameter 'BlockSize100K' must be an unsigned int, got '$stringValue'";
68 my $bz ;
69 eval { $bz = new IO::Compress::Bzip2(\$buffer, BlockSize100K => $value) };
70 like $@, mkErr("IO::Compress::Bzip2: $err"),
71 " value $stringValue is bad";
72 is $Bzip2Error, "IO::Compress::Bzip2: $err",
73 " value $stringValue is bad";
74 ok ! $bz, " no bz object";
75 }
76
77 for my $value (0, 10, 99999)
78 {
79 my $stringValue = defined $value ? $value : 'undef';
80 title "BlockSize100K => $stringValue";
81 my $err = "Parameter 'BlockSize100K' not between 1 and 9, got $stringValue";
82 my $bz ;
83 eval { $bz = new IO::Compress::Bzip2(\$buffer, BlockSize100K => $value) };
84 like $@, mkErr("IO::Compress::Bzip2: $err"),
85 " value $stringValue is bad";
86 is $Bzip2Error, "IO::Compress::Bzip2: $err",
87 " value $stringValue is bad";
88 ok ! $bz, " no bz object";
89 }
90
91 for my $value (undef, -1, 'fred')
92 {
93 my $stringValue = defined $value ? $value : 'undef';
94 title "WorkFactor => $stringValue";
95 my $err = "Parameter 'WorkFactor' must be an unsigned int, got '$stringValue'";
96 my $bz ;
97 eval { $bz = new IO::Compress::Bzip2(\$buffer, WorkFactor => $value) };
98 like $@, mkErr("IO::Compress::Bzip2: $err"),
99 " value $stringValue is bad";
100 is $Bzip2Error, "IO::Compress::Bzip2: $err",
101 " value $stringValue is bad";
102 ok ! $bz, " no bz object";
103 }
104
105 for my $value (251, 99999)
106 {
107 my $stringValue = defined $value ? $value : 'undef';
108 title "WorkFactor => $stringValue";
109 my $err = "Parameter 'WorkFactor' not between 0 and 250, got $stringValue";
110 my $bz ;
111 eval { $bz = new IO::Compress::Bzip2(\$buffer, WorkFactor => $value) };
112 like $@, mkErr("IO::Compress::Bzip2: $err"),
113 " value $stringValue is bad";
114 is $Bzip2Error, "IO::Compress::Bzip2: $err",
115 " value $stringValue is bad";
116 ok ! $bz, " no bz object";
117 }
118
119}
120
121
122{
123 title "Testing $UncompressClass Errors";
124
125 my $buffer ;
126
127 for my $value (-1, 'fred')
128 {
129 my $stringValue = defined $value ? $value : 'undef';
130 title "Small => $stringValue";
131 my $err = "Parameter 'Small' must be an int, got '$stringValue'";
132 my $bz ;
133 eval { $bz = new IO::Uncompress::Bunzip2(\$buffer, Small => $value) };
134 like $@, mkErr("IO::Uncompress::Bunzip2: $err"),
135 " value $stringValue is bad";
136 is $Bunzip2Error, "IO::Uncompress::Bunzip2: $err",
137 " value $stringValue is bad";
138 ok ! $bz, " no bz object";
139 }
140
141}
142
143{
144 title "Testing $CompressClass and $UncompressClass";
145
146 my $hello = <<EOM ;
147hello world
148this is a test
149EOM
150
151 for my $value ( 1 .. 9 )
152 {
153 title "$CompressClass - BlockSize100K => $value";
154 my $lex = new LexFile my $name ;
155 my $bz ;
156 $bz = new IO::Compress::Bzip2($name, BlockSize100K => $value)
157 or diag $IO::Compress::Bzip2::Bzip2Error ;
158 ok $bz, " bz object ok";
159 $bz->write($hello);
160 $bz->close($hello);
161
162 is myBZreadFile($name), $hello, " got expected content";
163 }
164
165 for my $value ( 0 .. 250 )
166 {
167 title "$CompressClass - WorkFactor => $value";
168 my $lex = new LexFile my $name ;
169 my $bz ;
170 $bz = new IO::Compress::Bzip2($name, WorkFactor => $value);
171 ok $bz, " bz object ok";
172 $bz->write($hello);
173 $bz->close($hello);
174
175 is myBZreadFile($name), $hello, " got expected content";
176 }
177
178 for my $value ( 0 .. 1 )
179 {
180 title "$UncompressClass - Small => $value";
181 my $lex = new LexFile my $name ;
182 my $bz ;
183 $bz = new IO::Compress::Bzip2($name);
184 ok $bz, " bz object ok";
185 $bz->write($hello);
186 $bz->close($hello);
187
188 my $fil = new $UncompressClass $name,
189 Append => 1,
190 Small => $value ;
191
192 my $data = '';
193 1 while $fil->read($data) > 0;
194
195 $fil->close ;
196
197 is $data, $hello, " got expected";
198 }
199}
200
201
2021;
203
204
205
206