File tree Expand file tree Collapse file tree 3 files changed +30
-11
lines changed Expand file tree Collapse file tree 3 files changed +30
-11
lines changed Original file line number Diff line number Diff line change @@ -90,6 +90,7 @@ function TranscodingStreams.test_chunked_read(Encoder, Decoder)
90
90
stream = TranscodingStream (Decoder (), buffer, stop_on_end= true )
91
91
ok &= hash (read (stream)) == hash (chunk)
92
92
ok &= eof (stream)
93
+ ok &= isreadable (stream)
93
94
close (stream)
94
95
end
95
96
Test. @test ok
Original file line number Diff line number Diff line change @@ -103,7 +103,7 @@ julia> using TranscodingStreams
103
103
104
104
julia> file = open(joinpath(dirname(dirname(pathof(TranscodingStreams))), "README.md"));
105
105
106
- julia> stream = NoopStream( file);
106
+ julia> stream = TranscodingStream(Noop(), file);
107
107
108
108
julia> readline(file)
109
109
"TranscodingStreams.jl"
@@ -182,6 +182,16 @@ function Base.isopen(stream::TranscodingStream)
182
182
return stream. state. mode != :close && stream. state. mode != :panic
183
183
end
184
184
185
+ function Base. isreadable (stream:: TranscodingStream ):: Bool
186
+ mode = stream. state. mode
187
+ (mode === :idle || mode === :read || mode === :stop ) && isreadable (stream. stream)
188
+ end
189
+
190
+ function Base. iswritable (stream:: TranscodingStream ):: Bool
191
+ mode = stream. state. mode
192
+ (mode === :idle || mode === :write ) && iswritable (stream. stream)
193
+ end
194
+
185
195
function Base. close (stream:: TranscodingStream )
186
196
mode = stream. state. mode
187
197
if mode != :panic
Original file line number Diff line number Diff line change 240
240
TranscodingStreams. test_roundtrip_write (NoopStream, NoopStream)
241
241
TranscodingStreams. test_roundtrip_lines (NoopStream, NoopStream)
242
242
243
- # switch write => read
244
- stream = NoopStream (IOBuffer (b " foobar" , read= true , write= true ))
245
- @test_throws ArgumentError begin
246
- write (stream, b " xyz" )
247
- read (stream, 3 )
243
+ @testset " switch write => read" begin
244
+ stream = NoopStream (IOBuffer (collect (b " foobar" ), read= true , write= true ))
245
+ @test isreadable (stream)
246
+ @test iswritable (stream)
247
+ @test_throws ArgumentError begin
248
+ write (stream, b " xyz" )
249
+ read (stream, 3 )
250
+ end
251
+ @test ! isreadable (stream)
252
+ @test iswritable (stream)
248
253
end
249
254
250
- # switch read => write
251
- stream = NoopStream (IOBuffer (b " foobar" , read= true , write= true ))
252
- @test_throws ArgumentError begin
253
- read (stream, 3 )
254
- write (stream, b " xyz" )
255
+ @testset " switch read => write" begin
256
+ stream = NoopStream (IOBuffer (collect (b " foobar" ), read= true , write= true ))
257
+ @test_throws ArgumentError begin
258
+ read (stream, 3 )
259
+ write (stream, b " xyz" )
260
+ end
261
+ @test isreadable (stream)
262
+ @test ! iswritable (stream)
255
263
end
256
264
257
265
stream = NoopStream (IOBuffer (" " ))
You can’t perform that action at this time.
0 commit comments