summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNaohisa Goto <ngotogenome@gmail.com>2019-09-03 16:51:01 +0900
committerNaohisa Goto <ngotogenome@gmail.com>2019-09-03 16:51:01 +0900
commit83889292f5e0944d6762228c9ca81318f618aa4e (patch)
tree9d1565dd7ba3b91143d822363c1a8bbb44bd2072
parente913fa94d30e5d3007fe52f5d7840576c0f86c78 (diff)
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.
-rw-r--r--test/ruby/test_io.rb8
1 files changed, 5 insertions, 3 deletions
diff --git a/test/ruby/test_io.rb b/test/ruby/test_io.rb
index 7849d81fd0..ed60452b36 100644
--- a/test/ruby/test_io.rb
+++ b/test/ruby/test_io.rb
@@ -3837,14 +3837,16 @@ __END__
end if IO.method_defined?(:pread) and IO.method_defined?(:pwrite)
def test_select_exceptfds
- if Etc.uname[:sysname] == 'SunOS' && Etc.uname[:release] == '5.11'
- skip "Solaris 11 fails this"
+ if Etc.uname[:sysname] == 'SunOS'
+ str = 'h'.freeze #(???) Only 1 byte with MSG_OOB on Solaris
+ else
+ str = 'hello'.freeze
end
TCPServer.open('localhost', 0) do |svr|
con = TCPSocket.new('localhost', svr.addr[1])
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)
assert_equal([[], [], [acc]], set, 'IO#select exceptions array OK')
acc.close