Make sure to wait with IO.select before using Socket#recvfrom_nonblock
* On all platforms, as this is the recommended code pattern. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67010 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
8552ee87b6
commit
920b924e56
@ -36,12 +36,11 @@ describe 'Socket#recvfrom_nonblock' do
|
|||||||
describe 'with data available' do
|
describe 'with data available' do
|
||||||
before do
|
before do
|
||||||
@client.write('hello')
|
@client.write('hello')
|
||||||
|
|
||||||
platform_is(:darwin, :freebsd) { IO.select([@server]) }
|
|
||||||
end
|
end
|
||||||
|
|
||||||
platform_is_not :windows do
|
platform_is_not :windows do
|
||||||
it 'returns an Array containing the data and an Addrinfo' do
|
it 'returns an Array containing the data and an Addrinfo' do
|
||||||
|
IO.select([@server])
|
||||||
ret = @server.recvfrom_nonblock(1)
|
ret = @server.recvfrom_nonblock(1)
|
||||||
|
|
||||||
ret.should be_an_instance_of(Array)
|
ret.should be_an_instance_of(Array)
|
||||||
@ -54,8 +53,7 @@ describe 'Socket#recvfrom_nonblock' do
|
|||||||
5.times do
|
5.times do
|
||||||
@client.write('hello')
|
@client.write('hello')
|
||||||
|
|
||||||
platform_is(:darwin, :freebsd) { IO.select([@server]) }
|
IO.select([@server])
|
||||||
|
|
||||||
msg, _ = @server.recvfrom_nonblock(5)
|
msg, _ = @server.recvfrom_nonblock(5)
|
||||||
|
|
||||||
msg.should == 'hello'
|
msg.should == 'hello'
|
||||||
@ -66,6 +64,7 @@ describe 'Socket#recvfrom_nonblock' do
|
|||||||
platform_is_not :windows do
|
platform_is_not :windows do
|
||||||
describe 'the returned Array' do
|
describe 'the returned Array' do
|
||||||
before do
|
before do
|
||||||
|
IO.select([@server])
|
||||||
@array = @server.recvfrom_nonblock(1)
|
@array = @server.recvfrom_nonblock(1)
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -80,6 +79,7 @@ describe 'Socket#recvfrom_nonblock' do
|
|||||||
|
|
||||||
describe 'the returned Addrinfo' do
|
describe 'the returned Addrinfo' do
|
||||||
before do
|
before do
|
||||||
|
IO.select([@server])
|
||||||
@addr = @server.recvfrom_nonblock(1)[1]
|
@addr = @server.recvfrom_nonblock(1)[1]
|
||||||
end
|
end
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user