summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authornaruse <naruse@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2016-03-29 06:57:48 +0000
committernaruse <naruse@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2016-03-29 06:57:48 +0000
commitf4606be3fe534e29044f83b6a0dbe287f6d1d842 (patch)
tree75836fcf92c560069c174a376de51ba96db9b2ba
parent56f3cc71c4c3d70dad5d7878ab7e314def503410 (diff)
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
-rw-r--r--ChangeLog12
-rw-r--r--test/rinda/test_rinda.rb35
-rw-r--r--test/socket/test_basicsocket.rb28
-rw-r--r--test/socket/test_sockopt.rb19
-rw-r--r--version.h2
5 files changed, 71 insertions, 25 deletions
diff --git a/ChangeLog b/ChangeLog
index e6dfde2960..bd2714dc56 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,15 @@
+Tue Mar 29 15:31:06 2016 Rei Odaira <Rei.Odaira@gmail.com>
+
+ * 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.
+
Tue Mar 29 15:27:14 2016 Rei Odaira <Rei.Odaira@gmail.com>
* test/zlib/test_zlib.rb (test_adler32_combine, test_crc32_combine):
diff --git a/test/rinda/test_rinda.rb b/test/rinda/test_rinda.rb
index 07de61438a..d41276e8ec 100644
--- a/test/rinda/test_rinda.rb
+++ b/test/rinda/test_rinda.rb
@@ -625,10 +625,17 @@ class TestRingServer < Test::Unit::TestCase
def test_make_socket_ipv4_multicast
v4mc = @rs.make_socket('239.0.0.1')
- if Socket.const_defined?(:SO_REUSEPORT) then
- assert(v4mc.getsockopt(:SOCKET, :SO_REUSEPORT).bool)
- else
- assert(v4mc.getsockopt(:SOCKET, :SO_REUSEADDR).bool)
+ begin
+ if Socket.const_defined?(:SO_REUSEPORT) then
+ assert(v4mc.getsockopt(:SOCKET, :SO_REUSEPORT).bool)
+ else
+ assert(v4mc.getsockopt(:SOCKET, :SO_REUSEADDR).bool)
+ end
+ rescue TypeError
+ if /aix/ =~ RUBY_PLATFORM
+ skip "Known bug in getsockopt(2) on AIX"
+ end
+ raise $!
end
assert_equal('0.0.0.0', v4mc.local_address.ip_address)
@@ -660,10 +667,17 @@ class TestRingServer < Test::Unit::TestCase
@rs = Rinda::RingServer.new(@ts, [['239.0.0.1', '0.0.0.0']], @port)
v4mc = @rs.instance_variable_get('@sockets').first
- if Socket.const_defined?(:SO_REUSEPORT) then
- assert(v4mc.getsockopt(:SOCKET, :SO_REUSEPORT).bool)
- else
- assert(v4mc.getsockopt(:SOCKET, :SO_REUSEADDR).bool)
+ begin
+ if Socket.const_defined?(:SO_REUSEPORT) then
+ assert(v4mc.getsockopt(:SOCKET, :SO_REUSEPORT).bool)
+ else
+ assert(v4mc.getsockopt(:SOCKET, :SO_REUSEADDR).bool)
+ end
+ rescue TypeError
+ if /aix/ =~ RUBY_PLATFORM
+ skip "Known bug in getsockopt(2) on AIX"
+ end
+ raise $!
end
assert_equal('0.0.0.0', v4mc.local_address.ip_address)
@@ -755,6 +769,11 @@ class TestRingFinger < Test::Unit::TestCase
v4 = @rf.make_socket('127.0.0.1')
assert(v4.getsockopt(:SOL_SOCKET, :SO_BROADCAST).bool)
+ rescue TypeError
+ if /aix/ =~ RUBY_PLATFORM
+ skip "Known bug in getsockopt(2) on AIX"
+ end
+ raise $!
ensure
v4.close if v4
end
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
diff --git a/version.h b/version.h
index 1ac6b8c9a2..7b2b9f992e 100644
--- a/version.h
+++ b/version.h
@@ -1,6 +1,6 @@
#define RUBY_VERSION "2.3.0"
#define RUBY_RELEASE_DATE "2016-03-29"
-#define RUBY_PATCHLEVEL 30
+#define RUBY_PATCHLEVEL 31
#define RUBY_RELEASE_YEAR 2016
#define RUBY_RELEASE_MONTH 3