File: v4-new.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 (67 lines) | stat: -rw-r--r-- 1,666 bytes parent folder | download | duplicates (4)
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
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
use NetAddr::IP::Lite;

use Test::More;

my $binword;
{
  local $SIG{__WARN__} = sub {};
  $binword = eval "0b11111111111111110000000000000000";
}
if ($@) {
  $binword = 0xffff0000;
  print STDERR "\t\tskipped! 0b11111111111111110000000000000000\n\t\tbinary bit strings unsupported in Perl version $]\n";
}

@a = (
	  [ 'localhost', '127.0.0.1' ],
	  [ 0x01010101, '1.1.1.1' ],
	  [ 1, '1.0.0.0' ],	# Because it will have a mask. 0.0.0.1 ow
	  [ 'default', '0.0.0.0' ],
	  [ 'any', '0.0.0.0' ],
	  [-809041407, '207.199.2.1'],
	  [3485925889, '207.199.2.1'],
);

@m = (
	 [ 0, '0.0.0.0' ],
	 [ 1, '128.0.0.0' ],
	 [ 2, '192.0.0.0' ],
	 [ 4, '240.0.0.0' ],
	 [ 8, '255.0.0.0' ],
	 [ 16, '255.255.0.0' ],
	 [ 17, '255.255.128.0' ],
	 [ 24, '255.255.255.0' ],
	 [ 'default', '0.0.0.0' ],
	 [ 32, '255.255.255.255' ],
	 [ 'host', '255.255.255.255' ],
	 [ 0xffffff00, '255.255.255.0' ],
	 [ '255.255.255.240', '255.255.255.240' ],
	 [ '255.255.128.0', '255.255.128.0' ],
	 [ $binword, '255.255.0.0' ],
);

plan tests => (4 * scalar @a * scalar @m) + 4;

foreach my $invalid (qw(
	256.1.1.1
	256.256.1.1
	256.256.256.1
	256.256.256.256
)) {
  ok (! defined NetAddr::IP::Lite->new($invalid), "Invalid IP $invalid returns undef");
}

for my $a (@a) {
    for my $m (@m) {
	my $ip = new NetAddr::IP::Lite $a->[0], $m->[0];
      SKIP:
	{
	    skip "Failed to make an object for $a->[0]/$m->[0]", 4
		unless defined $ip;
	    is($ip->addr, $a->[1], "$a->[0] / $m->[0] is $a->[1]");
	    is($ip->mask, $m->[1], "$a->[0] / $m->[0] is $m->[1]");
	    is($ip->bits, 32, "$a->[0] / $m->[0] is 32 bits wide");
	    is($ip->version, 4, "$a->[0] / $m->[0] is version 4");
	};
    }
}