relax tests for IPv4 compat/mapped IPv6 addresss.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@22040 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
akr 2009-02-04 13:38:24 +00:00
Родитель e193fa79d6
Коммит 9845b50c11
1 изменённых файлов: 9 добавлений и 1 удалений

Просмотреть файл

@ -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}")