File tree Expand file tree Collapse file tree 2 files changed +21
-2
lines changed Expand file tree Collapse file tree 2 files changed +21
-2
lines changed Original file line number Diff line number Diff line change 310
310
311
311
function Base. seekend (stream:: TranscodingStream )
312
312
mode = stream. state. mode
313
- @checkmode (:idle , :read , :write )
314
- if mode == :read || mode == :write
313
+ @checkmode (:idle , :read )
314
+ if mode == :read
315
315
callstartproc (stream, mode)
316
316
emptybuffer! (stream. buffer1)
317
317
emptybuffer! (stream. buffer2)
Original file line number Diff line number Diff line change 142
142
end
143
143
end
144
144
145
+ @testset " seekend doesn't delete data" begin
146
+ for n in 0 : 3
147
+ sink = IOBuffer ()
148
+ # wrap stream in NoopStream n times.
149
+ stream = foldl (
150
+ (s,_) -> NoopStream (s),
151
+ 1 : n;
152
+ init= TranscodingStream (QuadrupleCodec (), sink, bufsize= 16 )
153
+ )
154
+ write (stream, " x" )
155
+ # seekend must not delete user data even if it errors.
156
+ @test_throws Exception seekend (stream)
157
+ write (stream, TranscodingStreams. TOKEN_END)
158
+ flush (stream)
159
+ @test take! (sink) == b " xxxx"
160
+ close (stream)
161
+ end
162
+ end
163
+
145
164
@testset " eof is true after write" begin
146
165
sink = IOBuffer ()
147
166
stream = TranscodingStream (QuadrupleCodec (), sink, bufsize= 16 )
You can’t perform that action at this time.
0 commit comments