|
Packit |
0b51a0 |
# This -*- perl -*- code excercises the basic v6 functionality
|
|
Packit |
0b51a0 |
|
|
Packit |
0b51a0 |
sub mypass() {1}
|
|
Packit |
0b51a0 |
sub myfail() {0}
|
|
Packit |
0b51a0 |
|
|
Packit |
0b51a0 |
@addr =
|
|
Packit |
0b51a0 |
(
|
|
Packit |
0b51a0 |
['[::]', 3, '0:0:0:0:0:0:0:0/128',myfail],
|
|
Packit |
0b51a0 |
['[::1]', 3, '0:0:0:0:0:0:0:1/128',myfail],
|
|
Packit |
0b51a0 |
['[F34::123/40]', 2, 'F34:0:0:0:0:0:0:3/40',mypass],
|
|
Packit |
0b51a0 |
['[DEAD:BEEF::1/40]', 2, 'DEAD:BEEF:0:0:0:0:0:3/40',mypass],
|
|
Packit |
0b51a0 |
['[1000::2/40]', 0, '1000:0:0:0:0:0:0:1/40',mypass],
|
|
Packit |
0b51a0 |
['[1000::2000/40]', 0, '1000:0:0:0:0:0:0:1/40',mypass],
|
|
Packit |
0b51a0 |
['[DEAD::CAFE/40]', 0, 'DEAD:0:0:0:0:0:0:1/40',mypass],
|
|
Packit |
0b51a0 |
['[DEAD:BEEF::1/40]', 3, 'DEAD:BEEF:0:0:0:0:0:4/40',mypass],
|
|
Packit |
0b51a0 |
['[DEAD:BEEF::1/40]', 4, 'DEAD:BEEF:0:0:0:0:0:5/40',mypass],
|
|
Packit |
0b51a0 |
['[DEAD:BEEF::1/40]', 5, 'DEAD:BEEF:0:0:0:0:0:6/40',mypass],
|
|
Packit |
0b51a0 |
['[DEAD:BEEF::1/40]', 6, 'DEAD:BEEF:0:0:0:0:0:7/40',mypass],
|
|
Packit |
0b51a0 |
['[DEAD:BEEF::1/40]', 7, 'DEAD:BEEF:0:0:0:0:0:8/40',mypass],
|
|
Packit |
0b51a0 |
['[DEAD:BEEF::1/40]', 8, 'DEAD:BEEF:0:0:0:0:0:9/40',mypass],
|
|
Packit |
0b51a0 |
['[DEAD:BEEF::1/40]', 254, 'DEAD:BEEF:0:0:0:0:0:FF/40',mypass],
|
|
Packit |
0b51a0 |
['[DEAD:BEEF::1/40]', 255, 'DEAD:BEEF:0:0:0:0:0:100/40',mypass],
|
|
Packit |
0b51a0 |
['[DEAD:BEEF::1/40]', 256, 'DEAD:BEEF:0:0:0:0:0:101/40',mypass],
|
|
Packit |
0b51a0 |
['[DEAD:BEEF::1/40]', 65535, 'DEAD:BEEF:0:0:0:0:1:0/40',mypass],
|
|
Packit |
0b51a0 |
['[DEAD:BEEF::1/40]', 65536, 'DEAD:BEEF:0:0:0:0:1:1/40',mypass],
|
|
Packit |
0b51a0 |
['[2001:620:0:4::/64]', 0, '2001:620:0:4:0:0:0:1/64',mypass],
|
|
Packit |
0b51a0 |
['[3FFE:2000:0:4::/64]', 0, '3FFE:2000:0:4:0:0:0:1/64',mypass],
|
|
Packit |
0b51a0 |
['[2001:620:600::1]', 0, '2001:620:600:0:0:0:0:1/128',mypass],
|
|
Packit |
0b51a0 |
['[2001:620:600:0:1::1]', 0,'2001:620:600:0:1:0:0:1/128',mypass],
|
|
Packit |
0b51a0 |
);
|
|
Packit |
0b51a0 |
|
|
Packit |
0b51a0 |
use NetAddr::IP::Lite;
|
|
Packit |
0b51a0 |
use Test::More;
|
|
Packit |
0b51a0 |
|
|
Packit |
0b51a0 |
my($a, $ip, $test);
|
|
Packit |
0b51a0 |
|
|
Packit |
0b51a0 |
$test = 4 * @addr + 4;
|
|
Packit |
0b51a0 |
plan tests => $test;
|
|
Packit |
0b51a0 |
|
|
Packit |
0b51a0 |
$test = 1;
|
|
Packit |
0b51a0 |
|
|
Packit |
0b51a0 |
sub tst {
|
|
Packit |
0b51a0 |
for $a (@addr) {
|
|
Packit |
0b51a0 |
$ip = new NetAddr::IP::Lite $a->[0];
|
|
Packit |
0b51a0 |
$a->[0] =~ s,/\d+,,;
|
|
Packit |
0b51a0 |
isa_ok($ip, 'NetAddr::IP::Lite', "$a->[0] ");
|
|
Packit |
0b51a0 |
# requires full NetAddr::IP
|
|
Packit |
0b51a0 |
# is(uc $ip->short, $a->[0], "short returns $a->[0]");
|
|
Packit |
0b51a0 |
is($ip->bits, 128, "bits == 128");
|
|
Packit |
0b51a0 |
is($ip->version, 6, "version == 6");
|
|
Packit |
0b51a0 |
my $index = $a->[1];
|
|
Packit |
0b51a0 |
if ($a->[3]) {
|
|
Packit |
0b51a0 |
is(uc $ip->nth($index), $a->[2], "nth $a->[0], $index");
|
|
Packit |
0b51a0 |
} else {
|
|
Packit |
0b51a0 |
ok(!$ip->nth($index),"nth $a->[0], undef");
|
|
Packit |
0b51a0 |
}
|
|
Packit |
0b51a0 |
}
|
|
Packit |
0b51a0 |
}
|
|
Packit |
0b51a0 |
|
|
Packit |
0b51a0 |
tst();
|
|
Packit |
0b51a0 |
|
|
Packit |
0b51a0 |
|
|
Packit |
0b51a0 |
$test = new NetAddr::IP::Lite 'f34::1';
|
|
Packit |
0b51a0 |
isa_ok($test, 'NetAddr::IP::Lite');
|
|
Packit |
0b51a0 |
ok($test->network->contains($test), "->contains");
|
|
Packit |
0b51a0 |
|
|
Packit |
0b51a0 |
$test = new NetAddr::IP::Lite 'f35::1/40';
|
|
Packit |
0b51a0 |
isa_ok($test, 'NetAddr::IP::Lite');
|
|
Packit |
0b51a0 |
ok($test->network->contains($test), "->contains");
|
|
Packit |
0b51a0 |
|