From 229b4e4c3773949987950c7fa5ed09868fcd094d Mon Sep 17 00:00:00 2001 From: usa Date: Fri, 17 Jul 2009 13:40:59 +0000 Subject: * ext/socket/socket.c (socket_s_ip_address_list): drop inactive adapters. * test/socket/test_{nonblock,addrinfo,socket}.rb: skip some tests on Windows. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@24173 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- test/socket/test_addrinfo.rb | 1 + test/socket/test_nonblock.rb | 4 ++++ test/socket/test_socket.rb | 12 ++++++++---- 3 files changed, 13 insertions(+), 4 deletions(-) (limited to 'test/socket') diff --git a/test/socket/test_addrinfo.rb b/test/socket/test_addrinfo.rb index bb87381a3f..4c3babdfa8 100644 --- a/test/socket/test_addrinfo.rb +++ b/test/socket/test_addrinfo.rb @@ -317,6 +317,7 @@ class TestSocketAddrinfo < Test::Unit::TestCase ai = Addrinfo.tcp("0.0.0.0", 4649).family_addrinfo("127.0.0.1", 80) assert_equal(["127.0.0.1", 80], ai.ip_unpack) assert_equal(Socket::SOCK_STREAM, ai.socktype) + return unless Addrinfo.respond_to?(:unix) ai = Addrinfo.unix("/testdir/sock").family_addrinfo("/testdir/sock2") assert_equal("/testdir/sock2", ai.unix_path) assert_equal(Socket::SOCK_STREAM, ai.socktype) diff --git a/test/socket/test_nonblock.rb b/test/socket/test_nonblock.rb index e8e7fca95f..f29766886f 100644 --- a/test/socket/test_nonblock.rb +++ b/test/socket/test_nonblock.rb @@ -196,6 +196,8 @@ class TestSocketNonblock < Test::Unit::TestCase loop { c.sendmsg_nonblock("a" * 100000) } + rescue NotImplementedError + skip "sendmsg not implemented on this platform." rescue Errno::EWOULDBLOCK assert_kind_of(IO::WaitWritable, $!) end @@ -206,6 +208,8 @@ class TestSocketNonblock < Test::Unit::TestCase tcp_pair {|c, s| begin c.recvmsg_nonblock(4096) + rescue NotImplementedError + skip "sendmsg not implemented on this platform." rescue Errno::EWOULDBLOCK assert_kind_of(IO::WaitReadable, $!) end diff --git a/test/socket/test_socket.rb b/test/socket/test_socket.rb index aaaa9c43c3..1ab2918fff 100644 --- a/test/socket/test_socket.rb +++ b/test/socket/test_socket.rb @@ -36,19 +36,22 @@ class TestSocket < Test::Unit::TestCase def test_initialize Socket.open(Socket::AF_INET, Socket::SOCK_STREAM, 0) {|s| + s.bind(Socket.sockaddr_in(0, "127.0.0.1")) addr = s.getsockname assert_nothing_raised { Socket.unpack_sockaddr_in(addr) } - assert_raise(ArgumentError) { Socket.unpack_sockaddr_un(addr) } + assert_raise(ArgumentError, NoMethodError) { Socket.unpack_sockaddr_un(addr) } } Socket.open("AF_INET", "SOCK_STREAM", 0) {|s| + s.bind(Socket.sockaddr_in(0, "127.0.0.1")) addr = s.getsockname assert_nothing_raised { Socket.unpack_sockaddr_in(addr) } - assert_raise(ArgumentError) { Socket.unpack_sockaddr_un(addr) } + assert_raise(ArgumentError, NoMethodError) { Socket.unpack_sockaddr_un(addr) } } Socket.open(:AF_INET, :SOCK_STREAM, 0) {|s| + s.bind(Socket.sockaddr_in(0, "127.0.0.1")) addr = s.getsockname assert_nothing_raised { Socket.unpack_sockaddr_in(addr) } - assert_raise(ArgumentError) { Socket.unpack_sockaddr_un(addr) } + assert_raise(ArgumentError, NoMethodError) { Socket.unpack_sockaddr_un(addr) } } end @@ -254,10 +257,11 @@ class TestSocket < Test::Unit::TestCase begin ip_addrs = Socket.ip_address_list rescue NotImplementedError - return + skip "Socket.ip_address_list not implemented" end Socket.udp_server_sockets(0) {|sockets| + skip "need sendmsg and recvmsg" unless sockets.respond_to?(:sendmsg) famlies = {} sockets.each {|s| famlies[s.local_address.afamily] = true } ip_addrs.reject! {|ai| !famlies[ai.afamily] } -- cgit v1.2.3