1 | assert('IPAddr') do
|
---|
2 | IPAddr.class == Class
|
---|
3 | end
|
---|
4 |
|
---|
5 | assert('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)
|
---|
25 | end
|
---|
26 |
|
---|
27 | assert('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)
|
---|
35 | end
|
---|
36 |
|
---|
37 | assert('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"
|
---|
40 | end
|
---|
41 |
|
---|
42 | assert('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
|
---|
49 | end
|
---|
50 |
|
---|
51 | assert('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"))
|
---|
54 | end
|
---|
55 |
|
---|
56 | assert('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"))
|
---|
60 | end
|
---|
61 |
|
---|
62 | assert('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
|
---|
71 | end
|
---|
72 |
|
---|
73 | assert('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
|
---|
78 | end
|
---|
79 |
|
---|
80 | assert('IPAddr#hton') do
|
---|
81 | IPAddr.new('1.2.3.4').hton == "\x01\x02\x03\x04"
|
---|
82 | end
|
---|
83 |
|
---|
84 | assert('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?)
|
---|
90 | end
|
---|
91 |
|
---|
92 | assert('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?
|
---|
98 | end
|
---|
99 |
|
---|
100 | assert('IPAddr#mask') do
|
---|
101 | IPAddr.new('192.0.2.1').mask(24).hton == "\xc0\x00\x02\x00"
|
---|
102 | end
|
---|
103 |
|
---|
104 | assert('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'
|
---|
107 | end
|
---|
108 |
|
---|
109 | assert('IPAddr#~') do
|
---|
110 | (~IPAddr.new('192.0.2.1')).to_s == '63.255.253.254'
|
---|
111 | end
|
---|