netaddr 1.5.3 → 2.0.1

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of netaddr might be problematic. Click here for more details.

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