aboutsummaryrefslogtreecommitdiffstats
path: root/test/socket
diff options
context:
space:
mode:
Diffstat (limited to 'test/socket')
-rw-r--r--test/socket/test_basicsocket.rb28
-rw-r--r--test/socket/test_sockopt.rb19
2 files changed, 31 insertions, 16 deletions
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