Skip to content

Commit 00f2fdb

Browse files
authored
Test if seekstart after write deletes data. (#157)
1 parent 1cb583d commit 00f2fdb

File tree

2 files changed

+32
-0
lines changed

2 files changed

+32
-0
lines changed

test/codecnoop.jl

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -333,4 +333,20 @@
333333
end
334334
end
335335
end
336+
337+
@testset "seekstart doesn't delete data" begin
338+
sink = IOBuffer()
339+
stream = NoopStream(sink, bufsize=16)
340+
write(stream, "x")
341+
# seekstart must not delete user data even if it errors.
342+
try
343+
seekstart(stream)
344+
catch e
345+
e isa ArgumentError || rethrow()
346+
end
347+
write(stream, TranscodingStreams.TOKEN_END)
348+
flush(stream)
349+
@test_broken take!(sink) == b"x"
350+
close(stream)
351+
end
336352
end

test/codecquadruple.jl

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -107,4 +107,20 @@ end
107107
end
108108
end
109109
end
110+
111+
@testset "seekstart doesn't delete data" begin
112+
sink = IOBuffer()
113+
stream = TranscodingStream(QuadrupleCodec(), sink, bufsize=16)
114+
write(stream, "x")
115+
# seekstart must not delete user data even if it errors.
116+
try
117+
seekstart(stream)
118+
catch e
119+
e isa ArgumentError || rethrow()
120+
end
121+
write(stream, TranscodingStreams.TOKEN_END)
122+
flush(stream)
123+
@test_broken take!(sink) == b"xxxx"
124+
close(stream)
125+
end
110126
end

0 commit comments

Comments
 (0)