Skip to content

Commit 709967d

Browse files
authored
Add test for reusing encoder after finalize (#243)
1 parent ad1f984 commit 709967d

File tree

4 files changed

+40
-3
lines changed

4 files changed

+40
-3
lines changed

lib/TestsForCodecPackages/Project.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
name = "TestsForCodecPackages"
22
uuid = "c2e61002-3542-480d-8b3c-5f05cc4f8554"
33
authors = ["nhz2 <[email protected]>"]
4-
version = "0.1.0"
4+
version = "0.1.1"
55

66
[deps]
77
Random = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c"

lib/TestsForCodecPackages/src/TestsForCodecPackages.jl

Lines changed: 32 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,8 @@ export
1616
test_roundtrip_seekstart,
1717
test_roundtrip_fileio,
1818
test_chunked_read,
19-
test_chunked_write
19+
test_chunked_write,
20+
test_reuse_encoder
2021

2122
function test_roundtrip_read(encoder, decoder)
2223
seed!(TEST_RANDOM_SEED)
@@ -157,4 +158,34 @@ function test_chunked_write(Encoder, Decoder)
157158
finalize(encoder)
158159
end
159160

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+
160191
end # module TestsForCodecPackages

test/Project.toml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,3 +6,7 @@ Random = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c"
66
Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40"
77
TestsForCodecPackages = "c2e61002-3542-480d-8b3c-5f05cc4f8554"
88
TranscodingStreams = "3bb67fe8-82b1-5028-8e26-92a6c54297fa"
9+
10+
[sources]
11+
TranscodingStreams = {path = ".."}
12+
TestsForCodecPackages = {path = "../lib/TestsForCodecPackages"}

test/codecdoubleframe.jl

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,8 @@ using TestsForCodecPackages:
1313
test_roundtrip_seekstart,
1414
test_roundtrip_fileio,
1515
test_chunked_read,
16-
test_chunked_write
16+
test_chunked_write,
17+
test_reuse_encoder
1718

1819
# An insane codec for testing the codec APIs.
1920
struct DoubleFrameEncoder <: TranscodingStreams.Codec
@@ -461,4 +462,5 @@ DoubleFrameDecoderStream(stream::IO; kwargs...) = TranscodingStream(DoubleFrameD
461462
test_roundtrip_fileio(DoubleFrameEncoder, DoubleFrameDecoder)
462463
test_chunked_read(DoubleFrameEncoder, DoubleFrameDecoder)
463464
test_chunked_write(DoubleFrameEncoder, DoubleFrameDecoder)
465+
test_reuse_encoder(DoubleFrameEncoder, DoubleFrameDecoder)
464466
end

0 commit comments

Comments
 (0)