summaryrefslogtreecommitdiff
path: root/spec/ruby/library/socket/basicsocket
diff options
context:
space:
mode:
Diffstat (limited to 'spec/ruby/library/socket/basicsocket')
-rw-r--r--spec/ruby/library/socket/basicsocket/recv_nonblock_spec.rb5
-rw-r--r--spec/ruby/library/socket/basicsocket/recvmsg_nonblock_spec.rb4
-rw-r--r--spec/ruby/library/socket/basicsocket/sendmsg_nonblock_spec.rb9
3 files changed, 18 insertions, 0 deletions
diff --git a/spec/ruby/library/socket/basicsocket/recv_nonblock_spec.rb b/spec/ruby/library/socket/basicsocket/recv_nonblock_spec.rb
index 1b6027d26c..26683b3d23 100644
--- a/spec/ruby/library/socket/basicsocket/recv_nonblock_spec.rb
+++ b/spec/ruby/library/socket/basicsocket/recv_nonblock_spec.rb
@@ -35,6 +35,11 @@ describe "Socket::BasicSocket#recv_nonblock" do
}
end
+ it "returns :wait_readable with exception: false" do
+ @s1.bind(Socket.pack_sockaddr_in(0, ip_address))
+ @s1.recv_nonblock(5, exception: false).should == :wait_readable
+ end
+
it "receives data after it's ready" do
@s1.bind(Socket.pack_sockaddr_in(0, ip_address))
@s2.send("aaa", 0, @s1.getsockname)
diff --git a/spec/ruby/library/socket/basicsocket/recvmsg_nonblock_spec.rb b/spec/ruby/library/socket/basicsocket/recvmsg_nonblock_spec.rb
index 8f6b75029c..c440bac8bf 100644
--- a/spec/ruby/library/socket/basicsocket/recvmsg_nonblock_spec.rb
+++ b/spec/ruby/library/socket/basicsocket/recvmsg_nonblock_spec.rb
@@ -31,6 +31,10 @@ describe 'BasicSocket#recvmsg_nonblock' do
it 'raises an exception extending IO::WaitReadable' do
lambda { @server.recvmsg_nonblock }.should raise_error(IO::WaitReadable)
end
+
+ it 'returns :wait_readable with exception: false' do
+ @server.recvmsg_nonblock(exception: false).should == :wait_readable
+ end
end
describe 'with data available' do
diff --git a/spec/ruby/library/socket/basicsocket/sendmsg_nonblock_spec.rb b/spec/ruby/library/socket/basicsocket/sendmsg_nonblock_spec.rb
index de5e2aa749..000971f6af 100644
--- a/spec/ruby/library/socket/basicsocket/sendmsg_nonblock_spec.rb
+++ b/spec/ruby/library/socket/basicsocket/sendmsg_nonblock_spec.rb
@@ -98,6 +98,15 @@ describe 'BasicSocket#sendmsg_nonblock' do
10.times { @client.sendmsg_nonblock('hello' * 1_000_000) }
}.should raise_error(IO::WaitWritable)
end
+
+ it 'returns :wait_writable when the underlying buffer is full with exception: false' do
+ ret = nil
+ 10.times {
+ ret = @client.sendmsg_nonblock('hello' * 1_000_000, exception: false)
+ break unless ret.is_a?(Integer)
+ }
+ ret.should == :wait_writable
+ end
end
end
end