source: EcnlProtoTool/trunk/mrbgems/mruby-ipaddr/test/ipaddr.rb@ 331

Last change on this file since 331 was 331, checked in by coas-nagasima, 6 years ago

prototoolに関連するプロジェクトをnewlibからmuslを使うよう変更・更新
ntshellをnewlibの下位の実装から、muslのsyscallの実装に変更・更新
以下のOSSをアップデート
・mruby-1.3.0
・musl-1.1.18
・onigmo-6.1.3
・tcc-0.9.27
以下のOSSを追加
・openssl-1.1.0e
・curl-7.57.0
・zlib-1.2.11
以下のmrbgemsを追加
・iij/mruby-digest
・iij/mruby-env
・iij/mruby-errno
・iij/mruby-iijson
・iij/mruby-ipaddr
・iij/mruby-mock
・iij/mruby-require
・iij/mruby-tls-openssl

  • Property svn:eol-style set to native
  • Property svn:mime-type set to text/x-ruby
File size: 3.1 KB
Line 
1assert('IPAddr') do
2 IPAddr.class == Class
3end
4
5assert('IPAddr#initialize') do
6 n1 = IPAddr.new
7 n2 = IPAddr.new('::')
8 n3 = IPAddr.new('::', Socket::AF_UNSPEC)
9 n4 = IPAddr.new('127.0.0.1')
10 assert_equal(n1, n2)
11 assert_equal(n1, n3)
12 assert_not_equal(n1, n4)
13
14 a = IPAddr.new('192.0.2.1/24')
15 b = IPAddr.new('192.0.2.1/24', Socket::AF_INET)
16 c = IPAddr.new('192.0.2.1/255.255.255.0')
17 assert_equal(a, b)
18 assert_equal(a, c)
19
20 a = IPAddr.new('2001:db8::1/64')
21 b = IPAddr.new('2001:db8::1/64', Socket::AF_INET6)
22 c = IPAddr.new('2001:db8::1/ffff:ffff:ffff:ffff::')
23 assert_equal(a, b)
24 assert_equal(a, c)
25end
26
27assert('IPAddr.new_ntoh') do
28 a = IPAddr.new_ntoh("\300\250\001\001")
29 b = IPAddr.new("192.168.1.1")
30 assert_equal(a, b)
31
32 a = IPAddr.new_ntoh("\040\001\015\270\0\0\0\0\0\0\0\0\0\0\0\001")
33 b = IPAddr.new("2001:db8::1")
34 assert_equal(a, b)
35end
36
37assert('IPAddr.ntop') do
38 IPAddr.ntop("\300\250\001\001") == "192.168.1.1" and
39 IPAddr.ntop("\040\001\015\270\0\0\0\0\0\0\0\0\0\0\0\001") == "2001:db8::1"
40end
41
42assert('IPAddr#<=>') do
43 x = IPAddr.new('1.1.1.1')
44 a = IPAddr.new('1.1.1.0')
45 b = IPAddr.new('1.1.1.2')
46 c = IPAddr.new('1.1.1.1')
47 d = IPAddr.new('2001:db8::1')
48 (x <=> a) > 0 and (x <=> b) < 0 and (x <=> c) == 0 and (x <=> d) == nil
49end
50
51assert('IPAddr#==') do
52 assert_true(IPAddr.new("192.168.0.1") == "192.168.0.1")
53 assert_false(IPAddr.new("192.168.0.1") == IPAddr.new("192.168.0.1/24"))
54end
55
56assert('IPAddr#eql?') do
57 assert_true(IPAddr.new("192.2.0.1").eql? IPAddr.new("192.2.0.1"))
58 assert_false(IPAddr.new("192.2.0.1").eql? IPAddr.new("192.2.0.1/24"))
59 assert_false(IPAddr.new("0.0.0.1").eql? IPAddr.new("::1"))
60end
61
62assert('IPAddr#family') do
63 a = IPAddr.new('192.0.2.1', Socket::AF_INET)
64 b = IPAddr.new('2001:db8::1', Socket::AF_INET6)
65 c = IPAddr.new('192.0.2.1', Socket::AF_UNSPEC)
66 d = IPAddr.new('2001:db8::1', Socket::AF_UNSPEC)
67 a.family == Socket::AF_INET and
68 b.family == Socket::AF_INET6 and
69 c.family == Socket::AF_INET and
70 d.family == Socket::AF_INET6
71end
72
73assert('IPAddr#hash') do
74 a = IPAddr.new("192.0.2.1").hash
75 b = IPAddr.new("192.0.2.1").hash
76 c = IPAddr.new("192.0.2.2").hash
77 a == b and a != c
78end
79
80assert('IPAddr#hton') do
81 IPAddr.new('1.2.3.4').hton == "\x01\x02\x03\x04"
82end
83
84assert('IPAddr#ipv4?') do
85 a = IPAddr.new('192.0.2.1', Socket::AF_INET)
86 b = IPAddr.new('2001:db8::1', Socket::AF_INET6)
87 c = IPAddr.new('192.0.2.1', Socket::AF_UNSPEC)
88 d = IPAddr.new('2001:db8::1', Socket::AF_UNSPEC)
89 a.ipv4? and (not b.ipv4?) and c.ipv4? and (not d.ipv4?)
90end
91
92assert('IPAddr#ipv6?') do
93 a = IPAddr.new('192.0.2.1', Socket::AF_INET)
94 b = IPAddr.new('2001:db8::1', Socket::AF_INET6)
95 c = IPAddr.new('192.0.2.1', Socket::AF_UNSPEC)
96 d = IPAddr.new('2001:db8::1', Socket::AF_UNSPEC)
97 (not a.ipv6?) and b.ipv6? and (not c.ipv6?) and d.ipv6?
98end
99
100assert('IPAddr#mask') do
101 IPAddr.new('192.0.2.1').mask(24).hton == "\xc0\x00\x02\x00"
102end
103
104assert('IPAddr#to_s') do
105 IPAddr.new('192.0.2.1').to_s == '192.0.2.1' and
106 IPAddr.new('2001:db8::3').to_s == '2001:db8::3'
107end
108
109assert('IPAddr#~') do
110 (~IPAddr.new('192.0.2.1')).to_s == '63.255.253.254'
111end
Note: See TracBrowser for help on using the repository browser.