diff --git a/library/socket/tcpsocket/recv_nonblock_spec.rb b/library/socket/tcpsocket/recv_nonblock_spec.rb index bfd815c658..6ce5a41b58 100644 --- a/library/socket/tcpsocket/recv_nonblock_spec.rb +++ b/library/socket/tcpsocket/recv_nonblock_spec.rb @@ -27,6 +27,20 @@ @socket.recv_nonblock(50).should == "TCPSocket#recv_nonblock" end + it 'writes the read to a buffer from the socket' do + @socket = TCPSocket.new @hostname, @server.port + @socket.write "TCPSocket#recv_nonblock" + + # Wait for the server to echo. This spec is testing the return + # value, not the non-blocking behavior. + # + # TODO: Figure out a good way to test non-blocking. + IO.select([@socket]) + buffer = "".b + @socket.recv_nonblock(50, 0, buffer) + buffer.should == 'TCPSocket#recv_nonblock' + end + it 'returns :wait_readable in exceptionless mode' do @socket = TCPSocket.new @hostname, @server.port @socket.recv_nonblock(50, exception: false).should == :wait_readable diff --git a/library/socket/udpsocket/recvfrom_nonblock_spec.rb b/library/socket/udpsocket/recvfrom_nonblock_spec.rb index c66d1df84d..650a061221 100644 --- a/library/socket/udpsocket/recvfrom_nonblock_spec.rb +++ b/library/socket/udpsocket/recvfrom_nonblock_spec.rb @@ -51,6 +51,13 @@ @server.recvfrom_nonblock(1).should be_an_instance_of(Array) end + it 'writes the data to the buffer when one is present' do + buffer = "".b + IO.select([@server]) + @server.recvfrom_nonblock(1, 0, buffer) + buffer.should == 'h' + end + describe 'the returned Array' do before do IO.select([@server])