mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
Examine TestIO#test_select_exceptfds on Solaris with 1 byte data
On Solaris, it seems that the select(3C) in this test works only when sending 1 byte out-of-band data, though I cannot investigate the cause. The behavior is observed on a Solaris 10 server in addition to Solaris 11 on which the test had been skipped.
This commit is contained in:
parent
e913fa94d3
commit
83889292f5
1 changed files with 5 additions and 3 deletions
|
@ -3837,14 +3837,16 @@ __END__
|
||||||
end if IO.method_defined?(:pread) and IO.method_defined?(:pwrite)
|
end if IO.method_defined?(:pread) and IO.method_defined?(:pwrite)
|
||||||
|
|
||||||
def test_select_exceptfds
|
def test_select_exceptfds
|
||||||
if Etc.uname[:sysname] == 'SunOS' && Etc.uname[:release] == '5.11'
|
if Etc.uname[:sysname] == 'SunOS'
|
||||||
skip "Solaris 11 fails this"
|
str = 'h'.freeze #(???) Only 1 byte with MSG_OOB on Solaris
|
||||||
|
else
|
||||||
|
str = 'hello'.freeze
|
||||||
end
|
end
|
||||||
|
|
||||||
TCPServer.open('localhost', 0) do |svr|
|
TCPServer.open('localhost', 0) do |svr|
|
||||||
con = TCPSocket.new('localhost', svr.addr[1])
|
con = TCPSocket.new('localhost', svr.addr[1])
|
||||||
acc = svr.accept
|
acc = svr.accept
|
||||||
assert_equal 5, con.send('hello', Socket::MSG_OOB)
|
assert_equal str.length, con.send(str, Socket::MSG_OOB)
|
||||||
set = IO.select(nil, nil, [acc], 30)
|
set = IO.select(nil, nil, [acc], 30)
|
||||||
assert_equal([[], [], [acc]], set, 'IO#select exceptions array OK')
|
assert_equal([[], [], [acc]], set, 'IO#select exceptions array OK')
|
||||||
acc.close
|
acc.close
|
||||||
|
|
Loading…
Reference in a new issue