[331] | 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
|
---|