netaddr 1.5.0 → 2.0.4

Sign up to get free protection for your applications and to get access to all the features.
data/tests/cidr_test.rb DELETED
@@ -1,544 +0,0 @@
1
- #!/usr/bin/ruby
2
-
3
- require 'lib/netaddr.rb'
4
- require 'test/unit'
5
-
6
-
7
-
8
- class TestCIDR < Test::Unit::TestCase
9
-
10
-
11
- def test_new
12
- cidr = NetAddr::CIDRv4.new(3232235777, netmask=4294967040, tag={}, wildcard_mask=4294967040)
13
- assert_equal('192.168.1.0/24', cidr.desc)
14
- assert_equal('192.168.1.1', cidr.ip)
15
- assert_equal('255.255.255.0', cidr.wildcard_mask)
16
- end
17
-
18
- def test_create
19
- assert_raise(ArgumentError) {NetAddr::CIDR.create('192.168.1.0/24', :test => true)}
20
- assert_nothing_raised(Exception){NetAddr::CIDR.create('0.0.0.0/0')}
21
- assert_nothing_raised(Exception){NetAddr::CIDR.create('192.168.1.0/24')}
22
- assert_nothing_raised(Exception){NetAddr::CIDR.create('192.168.1.0/24') }
23
- assert_nothing_raised(Exception){NetAddr::CIDR.create('192.168.1.0 255.255.255.0')}
24
- assert_nothing_raised(Exception){NetAddr::CIDR.create('192.168.1.1') }
25
- assert_nothing_raised(Exception){NetAddr::CIDR.create('192.168.1.1 ') }
26
- assert_nothing_raised(Exception){NetAddr::CIDR.create('fec0::/64') }
27
- assert_nothing_raised(Exception){NetAddr::CIDR.create('192.168.1.1/24 255.255.0.0')}
28
- assert_nothing_raised(Exception){NetAddr::CIDR.create('::/0')}
29
- assert_nothing_raised(Exception){NetAddr::CIDR.create('fec0::1/64')}
30
- assert_nothing_raised(Exception){NetAddr::CIDR.create('fec0::1/64')}
31
- assert_nothing_raised(Exception){NetAddr::CIDR.create(0x0a0a0a0a, :Mask => 0xffffffff)}
32
- assert_nothing_raised(Exception){NetAddr::CIDR.create('192.168.1.1', :WildcardMask => ['0.0.7.255', true]) }
33
- assert_nothing_raised(Exception){NetAddr::CIDR.create('192.168.1.1', :WildcardMask => [0x000007ff, true]) }
34
- assert_nothing_raised(Exception){NetAddr::CIDR.create('fec0::1', :WildcardMask => ['0000:ffff::ffff', true])}
35
- assert_nothing_raised(Exception){NetAddr::CIDR.create('fec0::1', :WildcardMask => [0xffff, true])}
36
-
37
- assert_kind_of(NetAddr::CIDRv4, NetAddr::CIDR.create('192.168.1.1 255.255.0.0'))
38
- assert_kind_of(NetAddr::CIDRv4, NetAddr::CIDR.create('192.168.1.1/24 255.255.0.0'))
39
- assert_kind_of(NetAddr::CIDRv6, NetAddr::CIDR.create('fec0::1/64'))
40
- assert_kind_of(NetAddr::CIDRv4, NetAddr::CIDR.create('10.10.10.10/32 255.255.255.0'))
41
- assert_kind_of(NetAddr::CIDRv4, NetAddr::CIDR.create('10.10.10.10/32', :Mask => 0xffffff00))
42
-
43
- assert_raise(ArgumentError){ NetAddr::CIDR.create(:Version => 4) }
44
- assert_raise(NetAddr::ValidationError){ NetAddr::CIDR.create('192.168.1.1', :WildcardMask => ['0000:ffff::ffff', true]) }
45
- assert_raise(NetAddr::ValidationError){ NetAddr::CIDR.create('fec0::1', :WildcardMask => ['0.0.7.255', true]) }
46
-
47
- cidr = NetAddr::CIDRv4.create('192.168.1.1 255.255.0.0')
48
- assert_equal(16, cidr.bits )
49
-
50
- cidr = NetAddr::CIDRv4.create('192.168.1.1/24 255.255.0.0')
51
- assert_equal(24, cidr.bits )
52
-
53
- cidr = NetAddr::CIDRv4.create('10.10.10.10/32 255.255.255.0')
54
- assert_equal(32, cidr.bits )
55
-
56
- cidr = NetAddr::CIDRv4.create('10.10.10.10/32', :Mask => 0xffffff00)
57
- assert_equal(24, cidr.bits )
58
-
59
- cidr = NetAddr::CIDR.create('fec0::1/64')
60
- assert_equal(64, cidr.bits )
61
-
62
- assert_raise(ArgumentError){ NetAddr::CIDRv4.create({}) }
63
- assert_raise(NetAddr::ValidationError){ NetAddr::CIDRv4.create('192.168.1.0 a') }
64
- end
65
-
66
- def test_comparasins
67
- cidr4 = NetAddr::CIDR.create('192.168.1.1/24')
68
-
69
- assert(cidr4 == '192.168.1.0/24')
70
- assert(cidr4 > '192.168.0.0/24')
71
- assert(cidr4 < '192.168.2.0/24')
72
- assert_equal(0, cidr4 <=> '192.168.1.0/24')
73
- assert_equal(1, cidr4 <=> '192.168.0.0/24')
74
- assert_equal(-1, cidr4 <=> '192.168.2.0/24')
75
- end
76
-
77
- def test_index
78
- cidr = NetAddr::CIDR.create('192.168.1.0/24')
79
- assert_equal('192.168.1.1/32', cidr[1].desc)
80
- assert_equal('192.168.1.255/32', cidr[255].desc)
81
- assert_raise(NetAddr::BoundaryError){ cidr[256] }
82
- assert_raise(NetAddr::BoundaryError){ cidr[-1] }
83
- assert_raise(ArgumentError){ cidr['a'] }
84
- end
85
-
86
- def test_allocate_allocate_rfc3531
87
- cidr = NetAddr::CIDR.create('192.168.0.0/16')
88
- centermost = ["192.168.0.0/21", "192.168.32.0/21", "192.168.64.0/21", "192.168.96.0/21",
89
- "192.168.16.0/21", "192.168.48.0/21", "192.168.80.0/21", "192.168.112.0/21",
90
- "192.168.128.0/21", "192.168.144.0/21", "192.168.160.0/21", "192.168.176.0/21",
91
- "192.168.192.0/21", "192.168.208.0/21", "192.168.224.0/21", "192.168.240.0/21",
92
- "192.168.8.0/21", "192.168.24.0/21", "192.168.40.0/21", "192.168.56.0/21", "192.168.72.0/21",
93
- "192.168.88.0/21", "192.168.104.0/21", "192.168.120.0/21", "192.168.136.0/21",
94
- "192.168.152.0/21", "192.168.168.0/21", "192.168.184.0/21", "192.168.200.0/21",
95
- "192.168.216.0/21", "192.168.232.0/21", "192.168.248.0/21"]
96
- leftmost = ["192.168.0.0/21", "192.168.128.0/21", "192.168.64.0/21", "192.168.192.0/21",
97
- "192.168.32.0/21", "192.168.160.0/21", "192.168.96.0/21", "192.168.224.0/21",
98
- "192.168.16.0/21", "192.168.144.0/21", "192.168.80.0/21", "192.168.208.0/21",
99
- "192.168.48.0/21", "192.168.176.0/21", "192.168.112.0/21", "192.168.240.0/21",
100
- "192.168.8.0/21", "192.168.136.0/21", "192.168.72.0/21", "192.168.200.0/21",
101
- "192.168.40.0/21", "192.168.168.0/21", "192.168.104.0/21", "192.168.232.0/21",
102
- "192.168.24.0/21", "192.168.152.0/21", "192.168.88.0/21", "192.168.216.0/21",
103
- "192.168.56.0/21", "192.168.184.0/21", "192.168.120.0/21", "192.168.248.0/21"]
104
-
105
- assert_equal(centermost, cidr.allocate_rfc3531(21, :Strategy => :centermost) )
106
- assert_equal(leftmost, cidr.allocate_rfc3531(21) )
107
- assert_equal("192.168.192.0/21", cidr.allocate_rfc3531(21, :Objectify => true)[3].desc )
108
- assert_equal("192.168.96.0/21", cidr.allocate_rfc3531(21, :Strategy => :centermost, :Objectify => true)[3].desc )
109
- end
110
-
111
- def test_arpa
112
- cidr4 = NetAddr::CIDR.create('192.168.1.1/24')
113
- cidr6 = NetAddr::CIDR.create('fec0::1/64')
114
-
115
- assert_equal('1.168.192.in-addr.arpa.', cidr4.arpa() )
116
- assert_equal('0.0.0.0.0.0.0.0.0.0.0.0.0.c.e.f.ip6.arpa.', cidr6.arpa() )
117
- end
118
-
119
- def test_bits
120
- cidr4 = NetAddr::CIDR.create('192.168.1.1/24')
121
- cidr6 = NetAddr::CIDR.create('fec0::1/64')
122
- assert_equal(24,cidr4.bits() )
123
- assert_equal(64,cidr6.bits() )
124
- end
125
-
126
- def test_cmp
127
-
128
- cidr4 = NetAddr::CIDR.create('192.168.1.0/24')
129
- cidr4_2 = NetAddr::CIDR.create('192.168.1.0/26')
130
- cidr6 = NetAddr::CIDR.create('fec0::/64')
131
- cidr6_2 = NetAddr::CIDR.create('fec0::/96')
132
-
133
- assert_equal(1,cidr4.cmp('192.168.1.0/26') )
134
- assert_equal(-1,cidr4.cmp('192.168.0.0/23') )
135
- assert_equal(0,cidr4.cmp('192.168.1.0/24') )
136
- assert_nil(cidr4.cmp('192.168.2.0/26') )
137
- assert_equal(1,cidr4.cmp(cidr4_2) )
138
- assert_equal(1,cidr6.cmp('fec0::/96') )
139
- assert_equal(-1,cidr6.cmp('fec0::/63') )
140
- assert_equal(0,cidr6.cmp('fec0::/64') )
141
- assert_nil(cidr6.cmp('fe80::/64') )
142
- assert_equal(1,cidr6.cmp(cidr6_2) )
143
-
144
- assert_raise(NetAddr::VersionError) { cidr4.cmp(cidr6_2) }
145
- end
146
-
147
- def test_contains?
148
-
149
- cidr4 = NetAddr::CIDR.create('192.168.1.0/24')
150
- cidr4_2 = NetAddr::CIDR.create('192.168.1.0/26')
151
- cidr6 = NetAddr::CIDR.create('fec0::/64')
152
- cidr6_2 = NetAddr::CIDR.create('fec0::/96')
153
-
154
- assert_equal(true,cidr4.contains?('192.168.1.0/26') )
155
- assert_equal(true,cidr4.contains?(cidr4_2) )
156
- assert_equal(true,cidr6.contains?(cidr6_2) )
157
- assert_equal(false,cidr4.contains?('192.168.2.0/26') )
158
- assert_equal(false,cidr6.contains?('fe80::/96') )
159
-
160
- assert_raise(NetAddr::VersionError) { cidr4.contains?(cidr6_2) }
161
- end
162
-
163
- def test_desc
164
- cidr4 = NetAddr::CIDR.create('192.168.1.1/24')
165
- cidr6 = NetAddr::CIDR.create('fec0::1/64')
166
-
167
- assert_raise(ArgumentError) {cidr4.desc(:test => true)}
168
- assert_equal('192.168.1.0/24',cidr4.desc() )
169
- assert_equal('192.168.1.1/24',cidr4.desc(:IP => true) )
170
- assert_equal('fec0:0000:0000:0000:0000:0000:0000:0000/64',cidr6.desc() )
171
- assert_equal('fec0::/64',cidr6.desc(:Short => true) )
172
- end
173
-
174
- def test_enumerate
175
- cidr4 = NetAddr::CIDR.create('192.168.1.0/24')
176
- cidr6 = NetAddr::CIDR.create('fec0::/64')
177
-
178
- assert_raise(ArgumentError) {cidr4.enumerate(:test => true)}
179
- assert_equal(['192.168.1.0', '192.168.1.1'],cidr4.enumerate(:Limit => 2) )
180
- assert_equal(['fec0:0000:0000:0000:0000:0000:0000:0000'],cidr6.enumerate(:Limit => 1) )
181
- assert_equal(['fec0::'],cidr6.enumerate(:Limit => 1, :Short => true) )
182
-
183
- enums4 = cidr4.enumerate(:Limit => 2, :Bitstep => 5)
184
- enums6 = cidr6.enumerate(:Limit => 2, :Bitstep => 5)
185
- assert_equal('192.168.1.5', enums4[1] )
186
- assert_equal('fec0:0000:0000:0000:0000:0000:0000:0005', enums6[1] )
187
-
188
- enums4 = cidr4.enumerate(:Objectify => true,:Limit => 1)
189
- assert_kind_of(NetAddr::CIDR, enums4[0] )
190
- end
191
-
192
- def test_fill_in
193
- cidr = NetAddr::CIDR.create('192.168.1.0/24')
194
- filled = cidr.fill_in(['192.168.1.0/27','192.168.1.44/30',
195
- '192.168.1.64/26','192.168.1.129'])
196
-
197
- assert_equal(['192.168.1.0/27','192.168.1.32/29','192.168.1.40/30',
198
- '192.168.1.44/30','192.168.1.48/28','192.168.1.64/26',
199
- '192.168.1.128/32','192.168.1.129/32','192.168.1.130/31',
200
- '192.168.1.132/30','192.168.1.136/29','192.168.1.144/28',
201
- '192.168.1.160/27','192.168.1.192/26'],filled)
202
- end
203
-
204
- def test_hostmask_ext
205
- cidr4 = NetAddr::CIDR.create('192.168.1.1/24')
206
- assert_equal('0.0.0.255',cidr4.hostmask_ext() )
207
- assert_equal('255.255.255.0',cidr4.netmask_ext() )
208
- end
209
-
210
- def test_ip
211
- cidr4 = NetAddr::CIDR.create('192.168.1.1/24')
212
- cidr6 = NetAddr::CIDR.create('fec0::1/64')
213
-
214
- assert_raise(ArgumentError) {cidr4.ip(:test => true)}
215
- assert_equal('192.168.1.1',cidr4.ip() )
216
- assert_equal('fec0:0000:0000:0000:0000:0000:0000:0001',cidr6.ip() )
217
- assert_equal('fec0::1',cidr6.ip(:Short => true) )
218
- end
219
-
220
- def test_is_contained?
221
-
222
- cidr4 = NetAddr::CIDR.create('192.168.1.0/24')
223
- cidr4_2 = NetAddr::CIDR.create('192.168.1.0/26')
224
- cidr6 = NetAddr::CIDR.create('fec0::/64')
225
- cidr6_2 = NetAddr::CIDR.create('fec0::/96')
226
-
227
- assert_equal(true,cidr4_2.is_contained?('192.168.1.0/24') )
228
- assert_equal(true,cidr4_2.is_contained?(cidr4) )
229
- assert_equal(true,cidr6_2.is_contained?('fec0::/64') )
230
- assert_equal(true,cidr6_2.is_contained?(cidr6) )
231
- assert_equal(false,cidr4.is_contained?('192.168.2.0/26') )
232
- assert_equal(false,cidr6.is_contained?('fe80::/96') )
233
-
234
- assert_raise(NetAddr::VersionError) { cidr4.is_contained?(cidr6_2) }
235
- end
236
-
237
- def test_last
238
- cidr4 = NetAddr::CIDR.create('192.168.1.1/24')
239
- cidr6 = NetAddr::CIDR.create('fec0::1/64')
240
-
241
- assert_raise(ArgumentError) {cidr4.last(:test => true)}
242
- assert_equal('192.168.1.255',cidr4.last() )
243
- assert_equal('fec0:0000:0000:0000:ffff:ffff:ffff:ffff',cidr6.last() )
244
- assert_equal('fec0::ffff:ffff:ffff:ffff',cidr6.last(:Short => true) )
245
- end
246
-
247
- def test_matches?
248
- cidr = NetAddr::CIDR.create('10.0.0.0/24')
249
- assert(cidr.matches?('10.0.0.22'))
250
- assert(!cidr.matches?('10.1.1.1'))
251
-
252
- cidr = NetAddr::CIDR.create('10.0.248.0', :WildcardMask => ['255.248.255.0'])
253
- assert(cidr.matches?('10.1.248.0'))
254
- assert(!cidr.matches?('10.8.248.0'))
255
-
256
- cidr = NetAddr::CIDR.create('10.0.248.0')
257
- cidr.set_wildcard_mask('0.7.0.255', true)
258
- assert(cidr.matches?('10.1.248.0'))
259
- assert(!cidr.matches?('10.8.248.0'))
260
-
261
- cidr = NetAddr::CIDR.create('127.0.0.0')
262
- cidr.set_wildcard_mask('0.255.255.255', true)
263
- assert(cidr.matches?('127.0.0.1'))
264
- assert(!cidr.matches?('128.0.0.0'))
265
-
266
- cidr = NetAddr::CIDR.create('127.0.0.0', :WildcardMask => ['0.255.255.255', true])
267
- assert(cidr.matches?('127.0.0.1'))
268
- assert(!cidr.matches?('128.0.0.0'))
269
-
270
- cidr = NetAddr::CIDR.create('fec0::1')
271
- cidr.set_wildcard_mask('0000:ffff::ffff', true)
272
- assert(cidr.matches?('fec0:1::1'))
273
- assert(!cidr.matches?('fec0:0:1::1'))
274
-
275
- cidr = NetAddr::CIDR.create('fec0::1', :WildcardMask => ['0000:ffff::ffff', true])
276
- assert(cidr.matches?('fec0:1::1'))
277
- assert(!cidr.matches?('fec0:0:1::1'))
278
- end
279
-
280
- def test_mcast
281
- cidr4 = NetAddr::CIDR.create('224.0.0.1')
282
- cidr4_2 = NetAddr::CIDR.create('239.255.255.255')
283
- cidr4_3 = NetAddr::CIDR.create('230.2.3.5')
284
- cidr4_4 = NetAddr::CIDR.create('235.147.18.23')
285
- cidr4_5 = NetAddr::CIDR.create('192.168.1.1')
286
- cidr6 = NetAddr::CIDR.create('ff00::1')
287
- cidr6_2 = NetAddr::CIDR.create('ffff::1')
288
- cidr6_3 = NetAddr::CIDR.create('ff00::ffff:ffff')
289
- cidr6_4 = NetAddr::CIDR.create('ff00::fec0:1234:')
290
- cidr6_5 = NetAddr::CIDR.create('2001:4800::1')
291
-
292
- assert_raise(ArgumentError) {cidr4.multicast_mac(:test => true)}
293
- assert_equal('01-00-5e-00-00-01',cidr4.multicast_mac(:Objectify => true).address )
294
- assert_equal('01-00-5e-7f-ff-ff',cidr4_2.multicast_mac )
295
- assert_equal('01-00-5e-02-03-05',cidr4_3.multicast_mac )
296
- assert_equal('01-00-5e-13-12-17',cidr4_4.multicast_mac )
297
-
298
- assert_equal('33-33-00-00-00-01',cidr6.multicast_mac(:Objectify => true).address )
299
- assert_equal('33-33-00-00-00-01',cidr6_2.multicast_mac )
300
- assert_equal('33-33-ff-ff-ff-ff',cidr6_3.multicast_mac )
301
- assert_equal('33-33-fe-c0-12-34',cidr6_4.multicast_mac )
302
-
303
- assert_raise(NetAddr::ValidationError){ cidr4_5.multicast_mac }
304
- assert_raise(NetAddr::ValidationError){ cidr6_5.multicast_mac }
305
- end
306
-
307
- def test_netmask
308
- cidr4 = NetAddr::CIDR.create('192.168.1.1/24')
309
- cidr6 = NetAddr::CIDR.create('fec0::1/64')
310
-
311
- assert_equal('/24',cidr4.netmask() )
312
- assert_equal('/64',cidr6.netmask() )
313
- end
314
-
315
- def test_netmask_ext
316
- cidr4 = NetAddr::CIDR.create('192.168.1.1/24')
317
- assert_equal('255.255.255.0',cidr4.netmask_ext() )
318
- end
319
-
320
- def test_network
321
- cidr4 = NetAddr::CIDR.create('192.168.1.1/24')
322
- cidr6 = NetAddr::CIDR.create('fec0::1/64')
323
-
324
- assert_raise(ArgumentError) {cidr4.network(:test => true)}
325
- assert_equal('192.168.1.0',cidr4.network() )
326
- assert_equal('fec0:0000:0000:0000:0000:0000:0000:0000',cidr6.network() )
327
- assert_equal('fec0::',cidr6.network(:Short => true) )
328
- end
329
-
330
- def test_next_ip
331
- cidr4 = NetAddr::CIDR.create('192.168.1.0/24')
332
- cidr6 = NetAddr::CIDR.create('fec0::/64')
333
-
334
- assert_raise(ArgumentError) {cidr4.next_ip(:test => true)}
335
- next4 = cidr4.next_ip()
336
- next6 = cidr6.next_ip()
337
- assert_equal('192.168.2.0',next4 )
338
- assert_equal('fec0:0000:0000:0001:0000:0000:0000:0000',next6 )
339
-
340
- next6 = cidr6.next_ip(:Short => true)
341
- assert_equal('fec0:0:0:1::',next6 )
342
-
343
- next4 = cidr4.next_ip(:Bitstep => 2)
344
- next6 = cidr6.next_ip(:Bitstep => 2)
345
- assert_equal('192.168.2.1',next4 )
346
- assert_equal('fec0:0000:0000:0001:0000:0000:0000:0001',next6 )
347
-
348
- next4 = cidr4.next_ip(:Objectify => true)
349
- next6 = cidr6.next_ip(:Objectify => true)
350
- assert_equal('192.168.2.0/32',next4.desc )
351
- assert_equal('fec0:0000:0000:0001:0000:0000:0000:0000/128',next6.desc )
352
-
353
- end
354
-
355
- def test_next_subnet
356
- cidr4 = NetAddr::CIDR.create('192.168.1.0/24')
357
- cidr6 = NetAddr::CIDR.create('fec0::/64')
358
-
359
- assert_raise(ArgumentError) {cidr4.next_subnet(:test => true)}
360
- next4 = cidr4.next_subnet()
361
- next6 = cidr6.next_subnet()
362
- assert_equal('192.168.2.0/24',next4 )
363
- assert_equal('fec0:0000:0000:0001:0000:0000:0000:0000/64',next6 )
364
-
365
- next6 = cidr6.next_subnet(:Short => true)
366
- assert_equal('fec0:0:0:1::/64',next6 )
367
-
368
- next4 = cidr4.next_subnet(:Bitstep => 2)
369
- next6 = cidr6.next_subnet(:Bitstep => 2)
370
- assert_equal('192.168.3.0/24',next4 )
371
- assert_equal('fec0:0000:0000:0002:0000:0000:0000:0000/64',next6 )
372
-
373
- next4 = cidr4.next_subnet(:Objectify => true)
374
- next6 = cidr6.next_subnet(:Objectify => true)
375
- assert_equal('192.168.2.0/24',next4.desc )
376
- assert_equal('fec0:0000:0000:0001:0000:0000:0000:0000/64',next6.desc )
377
- end
378
-
379
- def test_nth
380
- cidr4 = NetAddr::CIDR.create('192.168.1.0/24')
381
- cidr6 = NetAddr::CIDR.create('fec0::/126')
382
-
383
- assert_raise(ArgumentError) {cidr4.nth(1, :test => true)}
384
- assert_equal('192.168.1.1',cidr4.nth(1) )
385
- assert_equal('192.168.1.50',cidr4.nth(50) )
386
- assert_kind_of(NetAddr::CIDR,cidr4.nth(1, :Objectify => true) )
387
- assert_raise(NetAddr::BoundaryError){ cidr4.nth(256) }
388
- assert_raise(ArgumentError){ cidr4.nth() }
389
-
390
- assert_equal('fec0:0000:0000:0000:0000:0000:0000:0001',cidr6.nth(1) )
391
- assert_equal('fec0:0000:0000:0000:0000:0000:0000:0003',cidr6.nth(3) )
392
- assert_equal('fec0::1',cidr6.nth(1, :Short => true) )
393
- assert_raise(NetAddr::BoundaryError){ cidr6.nth(10) }
394
-
395
- assert_raise(ArgumentError) { cidr4.nth({}) }
396
- end
397
-
398
- def test_range
399
- cidr4 = NetAddr::CIDR.create('192.168.1.0/24')
400
- cidr6 = NetAddr::CIDR.create('fec0::/64')
401
-
402
- assert_raise(ArgumentError) {cidr4.range(25,0, :test => true)}
403
- range4 = cidr4.range(25,0, :Bitstep => 5)
404
- range4_2 = cidr4.range(250)
405
- range6 = cidr6.range(25,0, :Bitstep => 5, :Short => true)
406
-
407
- assert_equal(6,range4.length)
408
- assert_equal(6,range4_2.length)
409
- assert_equal(6,range6.length)
410
- assert_equal('192.168.1.0',range4[0])
411
- assert_equal('192.168.1.25',range4[5])
412
- assert_equal('fec0::',range6[0])
413
- assert_equal('fec0::19',range6[5])
414
- end
415
-
416
- def test_remainder
417
- cidr4 = NetAddr::CIDR.create('192.168.1.0/24')
418
- cidr4_2 = NetAddr::CIDR.create('192.168.1.64/26')
419
-
420
- assert_raise(ArgumentError) {cidr4.remainder(cidr4_2, :test => true)}
421
- remainder = cidr4.remainder(cidr4_2)
422
-
423
- assert_equal(2,remainder.length)
424
- assert_equal('192.168.1.0/26',remainder[0])
425
-
426
- remainder = cidr4.remainder('192.168.1.64/26', :Objectify => true)
427
- assert_equal('192.168.1.128/25',remainder[1].desc)
428
- end
429
-
430
- def test_resize
431
- cidr4 = NetAddr::CIDR.create('192.168.1.129/24')
432
- cidr6 = NetAddr::CIDR.create('fec0::1/64')
433
-
434
- assert_raise(ArgumentError) {cidr4.resize(23, :test => true)}
435
- new4 = cidr4.resize(23)
436
- new6 = cidr6.resize(63)
437
- assert_equal('192.168.0.0/23',new4.desc )
438
- assert_equal('fec0::/63',new6.desc(:Short => true) )
439
-
440
- cidr4.resize!(25)
441
- cidr6.resize!(67)
442
- assert_equal('192.168.1.0/25',cidr4.desc )
443
- assert_equal('192.168.1.0',cidr4.ip )
444
- assert_equal('fec0:0000:0000:0000:0000:0000:0000:0000/67',cidr6.desc )
445
- end
446
-
447
- def test_set_wildcard_mask
448
- cidr = NetAddr::CIDR.create('10.1.0.0/24')
449
- assert_equal('0.0.0.255', cidr.wildcard_mask(true))
450
- assert_equal('255.255.255.0', cidr.wildcard_mask)
451
-
452
- cidr.set_wildcard_mask('0.7.0.255', true)
453
- assert_equal('0.7.0.255', cidr.wildcard_mask(true))
454
- assert_equal('255.248.255.0', cidr.wildcard_mask())
455
- cidr.set_wildcard_mask('255.248.255.0')
456
- assert_equal('0.7.0.255', cidr.wildcard_mask(true))
457
- assert_equal('255.248.255.0', cidr.wildcard_mask())
458
- cidr.set_wildcard_mask('0.0.0.0')
459
- assert_equal('0.0.0.0', cidr.wildcard_mask)
460
- assert_raise(NetAddr::ValidationError){ cidr.set_wildcard_mask('0000:ffff::ffff') }
461
-
462
- cidr = NetAddr::CIDR.create('fec0::1/64')
463
- assert_equal('0000:0000:0000:0000:ffff:ffff:ffff:ffff', cidr.wildcard_mask(true))
464
- cidr.set_wildcard_mask('0000:ffff::ffff', true)
465
- assert_equal('0000:ffff:0000:0000:0000:0000:0000:ffff', cidr.wildcard_mask(true))
466
- assert_raise(NetAddr::ValidationError){ cidr.set_wildcard_mask('0.7.0.255', true) }
467
- end
468
-
469
- def test_size
470
- cidr4 = NetAddr::CIDR.create('192.168.1.1/24')
471
- cidr6 = NetAddr::CIDR.create('fec0::1/64')
472
-
473
- assert_equal(256,cidr4.size() )
474
- assert_equal(2**64,cidr6.size() )
475
- end
476
-
477
- def test_subnet
478
- cidr4 = NetAddr::CIDR.create('192.168.1.0/24')
479
- cidr6 = NetAddr::CIDR.create('fec0::/64')
480
-
481
- assert_raise(ArgumentError) {cidr4.subnet(:test => true)}
482
- subnet4 = cidr4.subnet(:Bits => 26, :NumSubnets => 4)
483
- subnet6 = cidr6.subnet(:Bits => 66, :NumSubnets => 4)
484
- assert_equal('192.168.1.0/26', subnet4[0])
485
- assert_equal('fec0:0000:0000:0000:0000:0000:0000:0000/66', subnet6[0])
486
-
487
- subnet4 = cidr4.subnet(:Bits => 26, :NumSubnets => 1)
488
- assert_equal('192.168.1.0/26', subnet4[0])
489
- assert_equal('192.168.1.64/26', subnet4[1])
490
- assert_equal('192.168.1.128/25', subnet4[2])
491
-
492
- subnet4 = cidr4.subnet(:Bits => 28, :NumSubnets => 3, :Objectify => true)
493
- assert_equal('192.168.1.0/28', subnet4[0].desc)
494
- assert_equal('192.168.1.16/28', subnet4[1].desc)
495
- assert_equal('192.168.1.32/28', subnet4[2].desc)
496
- assert_equal('192.168.1.48/28', subnet4[3].desc)
497
- assert_equal('192.168.1.64/26', subnet4[4].desc)
498
- assert_equal('192.168.1.128/25', subnet4[5].desc)
499
-
500
- subnet4 = cidr4.subnet(:IPCount => 112)
501
- assert_equal('192.168.1.0/25', subnet4[0])
502
-
503
- subnet4 = cidr4.subnet(:IPCount => 31)
504
- assert_equal('192.168.1.0/27', subnet4[0])
505
- end
506
-
507
- def test_succ
508
- cidr4 = NetAddr::CIDR.create('192.168.1.0/24')
509
- cidr6 = NetAddr::CIDR.create('fec0::/64')
510
- cidr4_2 = NetAddr::CIDR.create('255.255.255.0/24')
511
-
512
- assert_equal('192.168.2.0/24',cidr4.succ.desc)
513
- assert_equal('fec0:0000:0000:0001:0000:0000:0000:0000/64',cidr6.succ.desc )
514
- assert_raise(NetAddr::BoundaryError) {cidr4_2.succ}
515
- end
516
-
517
- def test_to_i
518
- cidr4 = NetAddr::CIDR.create('192.168.1.1/24')
519
-
520
- assert_equal(3232235776,cidr4.to_i )
521
- assert_equal(4294967040,cidr4.to_i(:netmask) )
522
- assert_equal(3232235777,cidr4.to_i(:ip) )
523
- assert_equal(255,cidr4.to_i(:hostmask) )
524
- assert_equal(4294967040,cidr4.to_i(:wildcard_mask) )
525
- end
526
-
527
- def test_unique_local
528
- eui = NetAddr::EUI48.new('abcdef010203')
529
- cidr = NetAddr::CIDR.create('FC00::/7')
530
- assert_kind_of(NetAddr::CIDRv6, NetAddr::CIDRv6.unique_local(eui))
531
- assert(cidr.contains?(NetAddr::CIDRv6.unique_local(eui)) )
532
- end
533
-
534
- def test_wildcard_mask
535
- cidr = NetAddr::CIDR.create('10.1.0.0/24', :WildcardMask => ['0.7.0.255', true])
536
- assert_equal('0.7.0.255', cidr.wildcard_mask(true))
537
- assert_equal('255.248.255.0', cidr.wildcard_mask)
538
- end
539
-
540
- end
541
-
542
-
543
-
544
-
data/tests/eui_test.rb DELETED
@@ -1,101 +0,0 @@
1
- #!/usr/bin/ruby
2
-
3
- require 'lib/netaddr.rb'
4
- require 'test/unit'
5
-
6
-
7
-
8
- class TestEUI < Test::Unit::TestCase
9
-
10
- def test_new
11
- assert_not_nil(NetAddr::EUI48.new('aabbccddeeff') )
12
- assert_not_nil(NetAddr::EUI48.new('aabbccddeeff') )
13
- assert_not_nil(NetAddr::EUI64.new('aabbccddeeff0001') )
14
- assert_not_nil(NetAddr::EUI48.new(0x000000000001) )
15
- assert_not_nil(NetAddr::EUI64.new(0x0000000000000001) )
16
-
17
- assert_raise(ArgumentError){ NetAddr::EUI48.new() }
18
- assert_raise(ArgumentError){ NetAddr::EUI48.new({}) }
19
- assert_raise(ArgumentError){ NetAddr::EUI64.new() }
20
- assert_raise(ArgumentError){ NetAddr::EUI64.new({}) }
21
- end
22
-
23
- def test_create
24
- assert_not_nil(NetAddr::EUI.create('aa-bb-cc-dd-ee-ff') )
25
- assert_not_nil(NetAddr::EUI.create('aa:bb:cc:dd:ee:ff') )
26
- assert_not_nil(NetAddr::EUI.create('aabb.ccdd.eeff') )
27
- assert_not_nil(NetAddr::EUI.create('aa-bb-cc-dd-ee-ff-00-01') )
28
-
29
- assert_raise(ArgumentError){ NetAddr::EUI.create() }
30
- assert_raise(ArgumentError){ NetAddr::EUI.create(0x0000000000000001) }
31
-
32
- assert_kind_of(NetAddr::EUI48, NetAddr::EUI.create('aa-bb-cc-dd-ee-ff'))
33
- assert_kind_of(NetAddr::EUI64, NetAddr::EUI.create('aa-bb-cc-dd-ee-ff-00-01'))
34
- end
35
-
36
- def test_simple
37
- mac = NetAddr::EUI.create('aa-bb-cc-dd-ee-ff')
38
- assert_raise(ArgumentError) {mac.oui(:test => true)}
39
- assert_raise(ArgumentError) {mac.ei(:test => true)}
40
-
41
- assert_equal('aa-bb-cc', mac.oui )
42
- assert_equal('dd-ee-ff', mac.ei )
43
- assert_equal('aa:bb:cc', mac.oui(:Delimiter => ':' ) )
44
- assert_equal('dd:ee:ff', mac.ei(:Delimiter => ':' ) )
45
- assert_equal('aa-bb-cc-dd-ee-ff', mac.address )
46
- assert_equal('aa:bb:cc:dd:ee:ff', mac.address(:Delimiter => ':') )
47
- assert_equal('aabb.ccdd.eeff', mac.address(:Delimiter => '.') )
48
- assert_equal(0xaabbccddeeff, mac.to_i )
49
- assert_equal(NetAddr::EUI48, mac.class )
50
-
51
- mac = NetAddr::EUI.create('aa-bb-cc-dd-ee-ff-01-02')
52
- assert_raise(ArgumentError) {mac.oui(:test => true)}
53
- assert_raise(ArgumentError) {mac.ei(:test => true)}
54
- assert_equal('aa-bb-cc', mac.oui )
55
- assert_equal('dd-ee-ff-01-02', mac.ei )
56
- assert_equal('aa:bb:cc', mac.oui(:Delimiter => ':') )
57
- assert_equal('dd:ee:ff:01:02', mac.ei(:Delimiter => ':' ) )
58
- assert_equal('aa-bb-cc-dd-ee-ff-01-02', mac.address )
59
- assert_equal('aa:bb:cc:dd:ee:ff:01:02', mac.address(:Delimiter => ':') )
60
- assert_equal('aabb.ccdd.eeff.0102', mac.address(:Delimiter => '.') )
61
- assert_equal(0xaabbccddeeff0102, mac.to_i )
62
- assert_equal(NetAddr::EUI64, mac.class )
63
-
64
- end
65
-
66
- def test_link_local
67
- mac = NetAddr::EUI.create('aa-bb-cc-dd-ee-ff')
68
- assert_equal('fe80:0000:0000:0000:a8bb:ccff:fedd:eeff', mac.link_local )
69
-
70
- mac = NetAddr::EUI.create('1234.5678.9abc')
71
- assert_equal('fe80:0000:0000:0000:1034:56ff:fe78:9abc', mac.link_local )
72
-
73
- mac = NetAddr::EUI.create('1234.5678.9abc.def0')
74
- assert_equal('fe80:0000:0000:0000:1034:5678:9abc:def0', mac.link_local(:Objectify => true).ip )
75
- assert_raise(ArgumentError) {mac.link_local(:test => true)}
76
- end
77
-
78
- def test_to_eui64
79
- mac = NetAddr::EUI.create('aa-bb-cc-dd-ee-ff')
80
- assert_equal('aa-bb-cc-ff-fe-dd-ee-ff', mac.to_eui64.address )
81
-
82
- # check that to_eui64 has no side effects
83
- b = mac.to_eui64
84
- c = mac.to_eui64
85
- assert_equal(b.to_s, c.to_s)
86
- end
87
-
88
- def test_to_ipv6
89
- mac = NetAddr::EUI.create('aa-bb-cc-dd-ee-ff')
90
- assert_equal('fe80:0000:0000:0000:a8bb:ccff:fedd:eeff', mac.to_ipv6('fe80::/64') )
91
-
92
- mac = NetAddr::EUI.create('1234.5678.9abc')
93
- assert_equal('fe80:0000:0000:0000:1034:56ff:fe78:9abc', mac.to_ipv6('fe80::/64') )
94
-
95
- mac = NetAddr::EUI.create('1234.5678.9abc.def0')
96
- assert_equal('fe80:0000:0000:0000:1034:5678:9abc:def0', mac.to_ipv6('fe80::/64', :Objectify => true).ip )
97
- assert_raise(ArgumentError) {mac.link_local(:test => true)}
98
- assert_raise(NetAddr::ValidationError) {mac.to_ipv6('fe80::/65')}
99
- end
100
-
101
- end