|
16 | 16 | test_roundtrip_seekstart, |
17 | 17 | test_roundtrip_fileio, |
18 | 18 | test_chunked_read, |
19 | | - test_chunked_write |
| 19 | + test_chunked_write, |
| 20 | + test_reuse_encoder |
20 | 21 |
|
21 | 22 | function test_roundtrip_read(encoder, decoder) |
22 | 23 | seed!(TEST_RANDOM_SEED) |
@@ -157,4 +158,34 @@ function test_chunked_write(Encoder, Decoder) |
157 | 158 | finalize(encoder) |
158 | 159 | end |
159 | 160 |
|
| 161 | +function test_reuse_encoder(Encoder, Decoder) |
| 162 | + seed!(TEST_RANDOM_SEED) |
| 163 | + compressor = Encoder() |
| 164 | + x = rand(UInt8, 1000) |
| 165 | + TranscodingStreams.initialize(compressor) |
| 166 | + ret1 = transcode(compressor, x) |
| 167 | + TranscodingStreams.finalize(compressor) |
| 168 | + |
| 169 | + # compress again using the same compressor |
| 170 | + TranscodingStreams.initialize(compressor) |
| 171 | + ret2 = transcode(compressor, x) |
| 172 | + ret3 = transcode(compressor, x) |
| 173 | + TranscodingStreams.finalize(compressor) |
| 174 | + |
| 175 | + Test.@test transcode(Decoder, ret1) == x |
| 176 | + Test.@test transcode(Decoder, ret2) == x |
| 177 | + Test.@test transcode(Decoder, ret3) == x |
| 178 | + Test.@test ret1 == ret2 |
| 179 | + Test.@test ret1 == ret3 |
| 180 | + |
| 181 | + decompressor = Decoder() |
| 182 | + TranscodingStreams.initialize(decompressor) |
| 183 | + Test.@test transcode(decompressor, ret1) == x |
| 184 | + TranscodingStreams.finalize(decompressor) |
| 185 | + |
| 186 | + TranscodingStreams.initialize(decompressor) |
| 187 | + Test.@test transcode(decompressor, ret1) == x |
| 188 | + TranscodingStreams.finalize(decompressor) |
| 189 | +end |
| 190 | + |
160 | 191 | end # module TestsForCodecPackages |
0 commit comments