File tree Expand file tree Collapse file tree 1 file changed +40
-0
lines changed
Expand file tree Collapse file tree 1 file changed +40
-0
lines changed Original file line number Diff line number Diff line change 7777 writer . transfer
7878 selector . select ( 0 )
7979 end
80+
81+ it "can perform non-blocking read" do
82+ skip_if_ruby_platform ( /mswin|mingw|cygwin/ )
83+
84+ buffer = IO ::Buffer . new ( 64 )
85+ result = nil
86+
87+ output . puts "Hello World\n "
88+ output . close
89+
90+ reader = Fiber . new do
91+ result = selector . io_read ( Fiber . current , input , buffer , 0 )
92+ end
93+
94+ reader . transfer
95+ selector . select ( 0 )
96+
97+ expect ( buffer . get_string ( 0 , 12 ) ) . to be == "Hello World\n "
98+ end
99+
100+ # Whether the given error code indicates that the operation should be retried.
101+ def be_again?
102+ ( be == -Errno ::EAGAIN ::Errno ) . or ( be == -Errno ::EWOULDBLOCK ::Errno )
103+ end
104+
105+ it "can perform non-blocking read with empty input" do
106+ skip_if_ruby_platform ( /mswin|mingw|cygwin/ )
107+
108+ buffer = IO ::Buffer . new ( 64 )
109+ result = nil
110+
111+ reader = Fiber . new do
112+ result = selector . io_read ( Fiber . current , input , buffer , 0 )
113+ end
114+
115+ reader . transfer
116+ selector . select ( 0 )
117+
118+ expect ( result ) . to be_again?
119+ end
80120 end
81121end
82122
You can’t perform that action at this time.
0 commit comments