File: v6-contains.t

package info (click to toggle)
libnetaddr-ip-perl 4.079%2Bdfsg-1
  • links: PTS, VCS
  • area: main
  • in suites: bullseye, buster, stretch
  • size: 1,580 kB
  • ctags: 251
  • sloc: perl: 1,417; cpp: 67; sh: 51; makefile: 9
file content (51 lines) | stat: -rw-r--r-- 1,778 bytes parent folder | download | duplicates (5)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
use NetAddr::IP::Lite;
use Test::More;

my @yes_pairs =
    (
     [ '::/0', '2001:620:0:4:a00:20ff:fe9c:7e4a' ],
     [ '3ffe:2000:0:4::/64', '3ffe:2000:0:4:a00:20ff:fe9c:7e4a' ],
     [ '3ffe:2000:0:4::/64', '3ffe:2000:0:4:a00:20ff:fe9c:7e4a/65' ],
     [ '2001:620:0:4::/64', '2001:620:0:4:a00:20ff:fe9c:7e4a' ],
     [ '2001:620:0:4::/64', '2001:620:0:4:a00:20ff:fe9c:7e4a/65' ],
     [ '2001:620:0:4::/64', '2001:620:0:4::1' ],
     [ '2001:620:0:4::/64', '2001:620:0:4:0:0:0:1' ],
     [ 'deaf:beef::/32', 'deaf:beef::1' ],
     [ 'deaf:beef::/32', 'deaf:beef::1:1' ],
     [ 'deaf:beef::/32', 'deaf:beef::1:0:1' ],
     [ 'deaf:beef::/32', 'deaf:beef::1:0:0:1' ],
     [ 'deaf:beef::/32', 'deaf:beef::1:0:0:0:1' ],
     );

my @no_pairs =
    (
     [ '3ffe:2000:0:4::/64', '3ffe:2000:0:4:a00:20ff:fe9c:7e4a/63' ],
     [ '2001:620:0:4::/64', '2001:620:0:4:a00:20ff:fe9c:7e4a/63' ],
     [ 'deaf:beef::/32', 'dead:cafe::1' ],
     [ 'deaf:beef::/32', 'dead:cafe::1:1' ],
     [ 'deaf:beef::/32', 'dead:cafe::1:0:1' ],
     [ 'deaf:beef::/32', 'dead:cafe::1:0:0:1' ],
     [ 'deaf:beef::/32', 'dead:cafe::1:0:0:0:1' ],
     );

my $tests = 6 * @yes_pairs + 1;
plan tests => $tests;

ok(NetAddr::IP::Lite->new('::')->contains(NetAddr::IP::Lite->new('::')),
   ":: contains itself");

for my $p (@yes_pairs)
{
    my $a = new NetAddr::IP::Lite $p->[0];
    my $b = new NetAddr::IP::Lite $p->[1];

    isa_ok($a, 'NetAddr::IP::Lite', "$p->[0]");
    isa_ok($b, 'NetAddr::IP::Lite', "$p->[1]");

  SKIP: {
      ok($a->contains($b), "->contains $p->[0], $p->[1] is true");
      ok($b->within($a), "->within $p->[1], $p->[0] is true");
      ok(!$b->contains($a), "->contains $p->[1], $p->[0] is false");
      ok(!$a->within($b), "->within $p->[0], $p->[1] is false");
  }
}