mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
* ext/socket/raddrinfo.c (addrinfo_mdump): new method.
(addrinfo_mload): new method. (Init_addrinfo): define the method above. * ext/socket/constants.c (constant_arg): str_to_int's first argument constified. * ext/socket/mkconstants.rb (gen_name_to_int_decl): generated function's first argument constified. (gen_name_to_int_func_in_guard): ditto. (ipproto_to_int): generated. * ext/socket/rubysocket.h (IS_IP_FAMILY): moved from raddrinfo.c. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@21643 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
75e0fde36b
commit
86aa5043d8
6 changed files with 253 additions and 10 deletions
|
@ -274,6 +274,17 @@ class TestSocketAddrInfo < Test::Unit::TestCase
|
|||
s2.close if s2 && !s2.closed?
|
||||
end
|
||||
|
||||
def test_marshal
|
||||
ai1 = AddrInfo.tcp("127.0.0.1", 80)
|
||||
ai2 = Marshal.load(Marshal.dump(ai1))
|
||||
assert_equal(ai1.afamily, ai2.afamily)
|
||||
assert_equal(ai1.ip_unpack, ai2.ip_unpack)
|
||||
assert_equal(ai1.pfamily, ai2.pfamily)
|
||||
assert_equal(ai1.socktype, ai2.socktype)
|
||||
assert_equal(ai1.protocol, ai2.protocol)
|
||||
assert_equal(ai1.canonname, ai2.canonname)
|
||||
end
|
||||
|
||||
if Socket.const_defined?("AF_INET6")
|
||||
|
||||
def test_addrinfo_new_inet6
|
||||
|
@ -290,6 +301,17 @@ class TestSocketAddrInfo < Test::Unit::TestCase
|
|||
assert_equal(["::1", 80], ai.ip_unpack)
|
||||
end
|
||||
|
||||
def test_marshal_inet6
|
||||
ai1 = AddrInfo.tcp("::1", 80)
|
||||
ai2 = Marshal.load(Marshal.dump(ai1))
|
||||
assert_equal(ai1.afamily, ai2.afamily)
|
||||
assert_equal(ai1.ip_unpack, ai2.ip_unpack)
|
||||
assert_equal(ai1.pfamily, ai2.pfamily)
|
||||
assert_equal(ai1.socktype, ai2.socktype)
|
||||
assert_equal(ai1.protocol, ai2.protocol)
|
||||
assert_equal(ai1.canonname, ai2.canonname)
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
if defined?(UNIXSocket) && /cygwin/ !~ RUBY_PLATFORM
|
||||
|
@ -325,5 +347,16 @@ class TestSocketAddrInfo < Test::Unit::TestCase
|
|||
assert(unix_ai.unix?)
|
||||
end
|
||||
|
||||
def test_marshal_unix
|
||||
ai1 = AddrInfo.unix("/var/tmp/sock")
|
||||
ai2 = Marshal.load(Marshal.dump(ai1))
|
||||
assert_equal(ai1.afamily, ai2.afamily)
|
||||
assert_equal(ai1.unix_path, ai2.unix_path)
|
||||
assert_equal(ai1.pfamily, ai2.pfamily)
|
||||
assert_equal(ai1.socktype, ai2.socktype)
|
||||
assert_equal(ai1.protocol, ai2.protocol)
|
||||
assert_equal(ai1.canonname, ai2.canonname)
|
||||
end
|
||||
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue