aboutsummaryrefslogtreecommitdiffstats
path: root/test/socket/test_socket.rb
diff options
context:
space:
mode:
authorusa <usa@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2009-07-19 00:48:40 +0000
committerusa <usa@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2009-07-19 00:48:40 +0000
commit828d7a368acab6ca389a0d34791368c2e708f48b (patch)
tree9379247740e6110ba84b07eb58d3b866719ff91e /test/socket/test_socket.rb
parent1e18f3a857cf6c3065a1ffed3627f61e2f232c27 (diff)
downloadruby-828d7a368acab6ca389a0d34791368c2e708f48b.tar.gz
* test_socket.rb (test_udp_server): cannot check the existance of sendmsg by
respond_to?. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@24199 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'test/socket/test_socket.rb')
-rw-r--r--test/socket/test_socket.rb19
1 files changed, 13 insertions, 6 deletions
diff --git a/test/socket/test_socket.rb b/test/socket/test_socket.rb
index 17455a421d..ae29ae1ed5 100644
--- a/test/socket/test_socket.rb
+++ b/test/socket/test_socket.rb
@@ -261,10 +261,10 @@ class TestSocket < Test::Unit::TestCase
end
Socket.udp_server_sockets(0) {|sockets|
- skip "need sendmsg and recvmsg" unless sockets[0].respond_to?(:sendmsg)
famlies = {}
sockets.each {|s| famlies[s.local_address.afamily] = true }
ip_addrs.reject! {|ai| !famlies[ai.afamily] }
+ skipped = false
begin
port = sockets.first.local_address.ip_port
@@ -289,13 +289,20 @@ class TestSocket < Test::Unit::TestCase
assert_equal(ai.ip_address, addr.ip_address)
}
}
+ rescue NotImplementedError
+ skipped = true
+ skip "need sendmsg and recvmsg"
ensure
if th
- Addrinfo.udp("127.0.0.1", port).connect {|s| s.sendmsg "exit" }
- unless th.join(10)
- Thread.kill th
- th.join(10)
- raise "thread killed"
+ if skipped
+ Thread.kill th unless th.join(10)
+ else
+ Addrinfo.udp("127.0.0.1", port).connect {|s| s.sendmsg "exit" }
+ unless th.join(10)
+ Thread.kill th
+ th.join(10)
+ raise "thread killed"
+ end
end
end
end