[前][次][番号順一覧][スレッド一覧]

ruby-changes:10488

From: akr <ko1@a...>
Date: Wed, 4 Feb 2009 22:38:38 +0900 (JST)
Subject: [ruby-changes:10488] Ruby:r22040 (trunk): relax tests for IPv4 compat/mapped IPv6 addresss.

akr	2009-02-04 22:38:24 +0900 (Wed, 04 Feb 2009)

  New Revision: 22040

  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=22040

  Log:
    relax tests for IPv4 compat/mapped IPv6 addresss.

  Modified files:
    trunk/test/socket/test_addrinfo.rb

Index: test/socket/test_addrinfo.rb
===================================================================
--- test/socket/test_addrinfo.rb	(revision 22039)
+++ test/socket/test_addrinfo.rb	(revision 22040)
@@ -480,7 +480,15 @@
       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}")

--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

[前][次][番号順一覧][スレッド一覧]