From 1874524d4269ccebafe6825373a19b1df16d7f38 Mon Sep 17 00:00:00 2001 From: odaira Date: Sat, 5 Mar 2016 00:29:39 +0000 Subject: Sat Mar 5 09:17:54 2016 Rei Odaira * test/rinda/test_rinda.rb (test_make_socket_ipv4_multicast): The fifth argument to getsockopt(2) should be modified to indicate the actual size of the value on return, but not in AIX. This is a know bug. Skip related tests. * test/rinda/test_rinda.rb (test_ring_server_ipv4_multicast): ditto. * test/rinda/test_rinda.rb (test_make_socket_unicast): ditto. * test/socket/test_basicsocket.rb (test_getsockopt): ditto. * test/socket/test_sockopt.rb (test_bool): ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54004 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- test/socket/test_basicsocket.rb | 28 ++++++++++++++++++---------- test/socket/test_sockopt.rb | 19 +++++++++++++------ 2 files changed, 31 insertions(+), 16 deletions(-) (limited to 'test/socket') diff --git a/test/socket/test_basicsocket.rb b/test/socket/test_basicsocket.rb index 52732f18f6..e17a675d8a 100644 --- a/test/socket/test_basicsocket.rb +++ b/test/socket/test_basicsocket.rb @@ -16,20 +16,28 @@ class TestSocket_BasicSocket < Test::Unit::TestCase def test_getsockopt inet_stream do |s| - n = s.getsockopt(Socket::SOL_SOCKET, Socket::SO_TYPE) - assert_equal([Socket::SOCK_STREAM].pack("i"), n.data) + begin + n = s.getsockopt(Socket::SOL_SOCKET, Socket::SO_TYPE) + assert_equal([Socket::SOCK_STREAM].pack("i"), n.data) - n = s.getsockopt("SOL_SOCKET", "SO_TYPE") - assert_equal([Socket::SOCK_STREAM].pack("i"), n.data) + n = s.getsockopt("SOL_SOCKET", "SO_TYPE") + assert_equal([Socket::SOCK_STREAM].pack("i"), n.data) - n = s.getsockopt(:SOL_SOCKET, :SO_TYPE) - assert_equal([Socket::SOCK_STREAM].pack("i"), n.data) + n = s.getsockopt(:SOL_SOCKET, :SO_TYPE) + assert_equal([Socket::SOCK_STREAM].pack("i"), n.data) - n = s.getsockopt(:SOCKET, :TYPE) - assert_equal([Socket::SOCK_STREAM].pack("i"), n.data) + n = s.getsockopt(:SOCKET, :TYPE) + assert_equal([Socket::SOCK_STREAM].pack("i"), n.data) - n = s.getsockopt(Socket::SOL_SOCKET, Socket::SO_ERROR) - assert_equal([0].pack("i"), n.data) + n = s.getsockopt(Socket::SOL_SOCKET, Socket::SO_ERROR) + assert_equal([0].pack("i"), n.data) + rescue Minitest::Assertion + s.close + if /aix/ =~ RUBY_PLATFORM + skip "Known bug in getsockopt(2) on AIX" + end + raise $! + end val = Object.new class << val; self end.send(:define_method, :to_int) { diff --git a/test/socket/test_sockopt.rb b/test/socket/test_sockopt.rb index f38ac2a891..f166027d26 100644 --- a/test/socket/test_sockopt.rb +++ b/test/socket/test_sockopt.rb @@ -25,12 +25,19 @@ class TestSocketOption < Test::Unit::TestCase assert_equal(true, opt.bool) opt = Socket::Option.int(:INET, :SOCKET, :KEEPALIVE, 2) assert_equal(true, opt.bool) - Socket.open(:INET, :STREAM) {|s| - s.setsockopt(Socket::Option.bool(:INET, :SOCKET, :KEEPALIVE, true)) - assert_equal(true, s.getsockopt(Socket::SOL_SOCKET, Socket::SO_KEEPALIVE).bool) - s.setsockopt(Socket::Option.bool(:INET, :SOCKET, :KEEPALIVE, false)) - assert_equal(false, s.getsockopt(Socket::SOL_SOCKET, Socket::SO_KEEPALIVE).bool) - } + begin + Socket.open(:INET, :STREAM) {|s| + s.setsockopt(Socket::Option.bool(:INET, :SOCKET, :KEEPALIVE, true)) + assert_equal(true, s.getsockopt(Socket::SOL_SOCKET, Socket::SO_KEEPALIVE).bool) + s.setsockopt(Socket::Option.bool(:INET, :SOCKET, :KEEPALIVE, false)) + assert_equal(false, s.getsockopt(Socket::SOL_SOCKET, Socket::SO_KEEPALIVE).bool) + } + rescue TypeError + if /aix/ =~ RUBY_PLATFORM + skip "Known bug in getsockopt(2) on AIX" + end + raise $! + end end def test_ipv4_multicast_loop -- cgit v1.2.3