diff options
Diffstat (limited to 'test/socket')
-rw-r--r-- | test/socket/test_nonblock.rb | 2 | ||||
-rw-r--r-- | test/socket/test_tcp.rb | 8 | ||||
-rw-r--r-- | test/socket/test_unix.rb | 7 |
3 files changed, 17 insertions, 0 deletions
diff --git a/test/socket/test_nonblock.rb b/test/socket/test_nonblock.rb index 882e438deb..94ed198616 100644 --- a/test/socket/test_nonblock.rb +++ b/test/socket/test_nonblock.rb @@ -13,6 +13,8 @@ class TestSocketNonblock < Test::Unit::TestCase serv.bind(Socket.sockaddr_in(0, "127.0.0.1")) serv.listen(5) assert_raise(IO::WaitReadable) { serv.accept_nonblock } + assert_equal :wait_readable, serv.accept_nonblock(exception: false) + assert_raise(IO::WaitReadable) { serv.accept_nonblock(exception: true) } c = Socket.new(Socket::AF_INET, Socket::SOCK_STREAM, 0) c.connect(serv.getsockname) begin diff --git a/test/socket/test_tcp.rb b/test/socket/test_tcp.rb index 7328897d1e..a6c332c6c4 100644 --- a/test/socket/test_tcp.rb +++ b/test/socket/test_tcp.rb @@ -76,4 +76,12 @@ class TestSocket_TCPSocket < Test::Unit::TestCase th.join } end + + def test_accept_nonblock + TCPServer.open("localhost", 0) {|svr| + assert_raises(IO::WaitReadable) { svr.accept_nonblock } + assert_equal :wait_readable, svr.accept_nonblock(exception: false) + assert_raises(IO::WaitReadable) { svr.accept_nonblock(exception: true) } + } + end end if defined?(TCPSocket) diff --git a/test/socket/test_unix.rb b/test/socket/test_unix.rb index 866c83906e..829eaa90a2 100644 --- a/test/socket/test_unix.rb +++ b/test/socket/test_unix.rb @@ -663,4 +663,11 @@ class TestSocket_UNIXSocket < Test::Unit::TestCase assert(s0.closed?) end + def test_accept_nonblock + bound_unix_socket(UNIXServer) {|serv, path| + assert_raises(IO::WaitReadable) { serv.accept_nonblock } + assert_raises(IO::WaitReadable) { serv.accept_nonblock(exception: true) } + assert_equal :wait_readable, serv.accept_nonblock(exception: false) + } + end end if defined?(UNIXSocket) && /cygwin/ !~ RUBY_PLATFORM |