summaryrefslogtreecommitdiffstats
path: root/test
diff options
context:
space:
mode:
authorakr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2009-02-04 13:38:24 +0000
committerakr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2009-02-04 13:38:24 +0000
commiteac842b5645f060c4ac5d4fefce44b17c2f2e2e7 (patch)
tree4384223877912568441c970611d4db657bddb49b /test
parentfe4f00594b2134bd07cf345d812b055d479c346b (diff)
downloadruby-eac842b5645f060c4ac5d4fefce44b17c2f2e2e7.tar.gz
ruby-eac842b5645f060c4ac5d4fefce44b17c2f2e2e7.tar.xz
ruby-eac842b5645f060c4ac5d4fefce44b17c2f2e2e7.zip
relax tests for IPv4 compat/mapped IPv6 addresss.
git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@22040 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'test')
-rw-r--r--test/socket/test_addrinfo.rb10
1 files changed, 9 insertions, 1 deletions
diff --git a/test/socket/test_addrinfo.rb b/test/socket/test_addrinfo.rb
index 3271472fc..55e818344 100644
--- a/test/socket/test_addrinfo.rb
+++ b/test/socket/test_addrinfo.rb
@@ -480,7 +480,15 @@ class TestSocketAddrInfo < Test::Unit::TestCase
list.each {|meth, *addrs|
addrs.each {|addr|
addr_exp = "AddrInfo.getaddrinfo(#{addr.inspect}, nil, :INET6, :DGRAM).fetch(0)"
- assert(ipv6(addr).send(meth), "#{addr_exp}.#{meth}")
+ if meth == :ipv6_v4compat? || meth == :ipv6_v4mapped?
+ # MacOS X returns IPv4 address for ::ffff:1.2.3.4 and ::1.2.3.4.
+ # Solaris returns IPv4 address for ::ffff:1.2.3.4.
+ ai = ipv6(addr)
+ assert(ai.ipv4? || ai.send(meth), "ai=#{addr_exp}; ai.ipv4? || .#{meth}")
+ else
+ assert(ipv6(addr).send(meth), "#{addr_exp}.#{meth}")
+ assert_equal(addr, ipv6(addr).ip_address)
+ end
list.each {|meth2,|
next if meth == meth2
assert(!ipv6(addr).send(meth2), "!#{addr_exp}.#{meth2}")