merge revision(s) 54004: [Backport #12152]

* 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/branches/ruby_2_3@54373 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
naruse 2016-03-29 06:57:48 +00:00
parent 56f3cc71c4
commit f4606be3fe
5 changed files with 71 additions and 25 deletions

View file

@ -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) {