diff --git a/t/v4-exclude.t b/t/v4-exclude.t index 1fb6c37..45749a3 100644 --- a/t/v4-exclude.t +++ b/t/v4-exclude.t @@ -1,3 +1,4 @@ +use Test::More; use NetAddr::IP qw(Exclude); my @r = ( @@ -10,32 +11,17 @@ ['192.168.0.0/23','192.168.0.127/32',['192.168.0.0/26','192.168.0.64/27','192.168.0.96/28','192.168.0.112/29','192.168.0.120/30','192.168.0.124/31','192.168.0.126/32'],['192.168.0.128/25','192.168.1.0/24']], ['1.2.3.4/32','1.2.3.4/32',[],[]], ['0.0.0.0/0','0.0.0.0/32',[],['0.0.0.1/32','0.0.0.2/31','0.0.0.4/30','0.0.0.8/29','0.0.0.16/28','0.0.0.32/27','0.0.0.64/26','0.0.0.128/25','0.0.1.0/24','0.0.2.0/23','0.0.4.0/22','0.0.8.0/21','0.0.16.0/20','0.0.32.0/19','0.0.64.0/18','0.0.128.0/17','0.1.0.0/16','0.2.0.0/15','0.4.0.0/14','0.8.0.0/13','0.16.0.0/12','0.32.0.0/11','0.64.0.0/10','0.128.0.0/9','1.0.0.0/8','2.0.0.0/7','4.0.0.0/6','8.0.0.0/5','16.0.0.0/4','32.0.0.0/3','64.0.0.0/2','128.0.0.0/1']], + ['1.2.3.4/32','1.2.3.5/32',['1.2.3.4/32'],[]], ); -print "1..9\n"; +plan tests => 2 * scalar @r; -my $num = 0; -foreach my $case (@r) { - $num++; - my ($low, $up) = Exclude(NetAddr::IP->new($case->[0]), NetAddr::IP->new($case->[1])); - my $ex_low = $case->[2]; - my $ex_up = $case->[3]; - - unless (scalar(@$low) == scalar(@$ex_low) && scalar(@$up) == scalar(@$ex_up)) { - print "not ok $num\n"; - next; +SKIP: { + foreach my $case (@r) { + my ($low, $up) = Exclude(NetAddr::IP->new($case->[0]), NetAddr::IP->new($case->[1])); + my $ex_low = [map { NetAddr::IP->new($_) } @{$case->[2]}]; + my $ex_up = [map { NetAddr::IP->new($_) } @{$case->[3]}]; + is("@$up", "@$ex_up", "Upper half of Exclude($case->[0],$case->[1]) is @$ex_up"); + is("@$low", "@$ex_low", "Lower half of Exclude($case->[0],$case->[1]) is @$ex_low"); } - for (my $i=0; $i < @$low; $i++) { - if (@$low[$i] != NetAddr::IP->new(@$ex_low[$i])) { - print "not ok $num\n"; - next; - } - } - for (my $i=0; $i < @$up; $i++) { - if (@$up[$i] != NetAddr::IP->new(@$ex_up[$i])) { - print "not ok $num\n"; - next; - } - } - print "ok $num\n"; } diff --git a/t/v6-exclude.t b/t/v6-exclude.t index 10c747b..fbbada1 100644 --- a/t/v6-exclude.t +++ b/t/v6-exclude.t @@ -1,3 +1,4 @@ +use Test::More; use NetAddr::IP qw(Exclude); my @r = ( @@ -7,32 +8,17 @@ ['2001:db8::/32','2001:db8:8000::/33', ['2001:db8::/33'], []], ['2001:db8::/32','2001:db8:8000::/34', ['2001:db8::/33'], ['2001:db8:c000::/34']], ['::/0','::/128', [], ['0:0:0:0:0:0:0:1/128','0:0:0:0:0:0:0:2/127','0:0:0:0:0:0:0:4/126','0:0:0:0:0:0:0:8/125','0:0:0:0:0:0:0:10/124','0:0:0:0:0:0:0:20/123','0:0:0:0:0:0:0:40/122','0:0:0:0:0:0:0:80/121','0:0:0:0:0:0:0:100/120','0:0:0:0:0:0:0:200/119','0:0:0:0:0:0:0:400/118','0:0:0:0:0:0:0:800/117','0:0:0:0:0:0:0:1000/116','0:0:0:0:0:0:0:2000/115','0:0:0:0:0:0:0:4000/114','0:0:0:0:0:0:0:8000/113','0:0:0:0:0:0:1:0/112','0:0:0:0:0:0:2:0/111','0:0:0:0:0:0:4:0/110','0:0:0:0:0:0:8:0/109','0:0:0:0:0:0:10:0/108','0:0:0:0:0:0:20:0/107','0:0:0:0:0:0:40:0/106','0:0:0:0:0:0:80:0/105','0:0:0:0:0:0:100:0/104','0:0:0:0:0:0:200:0/103','0:0:0:0:0:0:400:0/102','0:0:0:0:0:0:800:0/101','0:0:0:0:0:0:1000:0/100','0:0:0:0:0:0:2000:0/99','0:0:0:0:0:0:4000:0/98','0:0:0:0:0:0:8000:0/97','0:0:0:0:0:1:0:0/96','0:0:0:0:0:2:0:0/95','0:0:0:0:0:4:0:0/94','0:0:0:0:0:8:0:0/93','0:0:0:0:0:10:0:0/92','0:0:0:0:0:20:0:0/91','0:0:0:0:0:40:0:0/90','0:0:0:0:0:80:0:0/89','0:0:0:0:0:100:0:0/88','0:0:0:0:0:200:0:0/87','0:0:0:0:0:400:0:0/86','0:0:0:0:0:800:0:0/85','0:0:0:0:0:1000:0:0/84','0:0:0:0:0:2000:0:0/83','0:0:0:0:0:4000:0:0/82','0:0:0:0:0:8000:0:0/81','0:0:0:0:1:0:0:0/80','0:0:0:0:2:0:0:0/79','0:0:0:0:4:0:0:0/78','0:0:0:0:8:0:0:0/77','0:0:0:0:10:0:0:0/76','0:0:0:0:20:0:0:0/75','0:0:0:0:40:0:0:0/74','0:0:0:0:80:0:0:0/73','0:0:0:0:100:0:0:0/72','0:0:0:0:200:0:0:0/71','0:0:0:0:400:0:0:0/70','0:0:0:0:800:0:0:0/69','0:0:0:0:1000:0:0:0/68','0:0:0:0:2000:0:0:0/67','0:0:0:0:4000:0:0:0/66','0:0:0:0:8000:0:0:0/65','0:0:0:1:0:0:0:0/64','0:0:0:2:0:0:0:0/63','0:0:0:4:0:0:0:0/62','0:0:0:8:0:0:0:0/61','0:0:0:10:0:0:0:0/60','0:0:0:20:0:0:0:0/59','0:0:0:40:0:0:0:0/58','0:0:0:80:0:0:0:0/57','0:0:0:100:0:0:0:0/56','0:0:0:200:0:0:0:0/55','0:0:0:400:0:0:0:0/54','0:0:0:800:0:0:0:0/53','0:0:0:1000:0:0:0:0/52','0:0:0:2000:0:0:0:0/51','0:0:0:4000:0:0:0:0/50','0:0:0:8000:0:0:0:0/49','0:0:1:0:0:0:0:0/48','0:0:2:0:0:0:0:0/47','0:0:4:0:0:0:0:0/46','0:0:8:0:0:0:0:0/45','0:0:10:0:0:0:0:0/44','0:0:20:0:0:0:0:0/43','0:0:40:0:0:0:0:0/42','0:0:80:0:0:0:0:0/41','0:0:100:0:0:0:0:0/40','0:0:200:0:0:0:0:0/39','0:0:400:0:0:0:0:0/38','0:0:800:0:0:0:0:0/37','0:0:1000:0:0:0:0:0/36','0:0:2000:0:0:0:0:0/35','0:0:4000:0:0:0:0:0/34','0:0:8000:0:0:0:0:0/33','0:1:0:0:0:0:0:0/32','0:2:0:0:0:0:0:0/31','0:4:0:0:0:0:0:0/30','0:8:0:0:0:0:0:0/29','0:10:0:0:0:0:0:0/28','0:20:0:0:0:0:0:0/27','0:40:0:0:0:0:0:0/26','0:80:0:0:0:0:0:0/25','0:100:0:0:0:0:0:0/24','0:200:0:0:0:0:0:0/23','0:400:0:0:0:0:0:0/22','0:800:0:0:0:0:0:0/21','0:1000:0:0:0:0:0:0/20','0:2000:0:0:0:0:0:0/19','0:4000:0:0:0:0:0:0/18','0:8000:0:0:0:0:0:0/17','1:0:0:0:0:0:0:0/16','2:0:0:0:0:0:0:0/15','4:0:0:0:0:0:0:0/14','8:0:0:0:0:0:0:0/13','10:0:0:0:0:0:0:0/12','20:0:0:0:0:0:0:0/11','40:0:0:0:0:0:0:0/10','80:0:0:0:0:0:0:0/9','100:0:0:0:0:0:0:0/8','200:0:0:0:0:0:0:0/7','400:0:0:0:0:0:0:0/6','800:0:0:0:0:0:0:0/5','1000:0:0:0:0:0:0:0/4','2000:0:0:0:0:0:0:0/3','4000:0:0:0:0:0:0:0/2','8000:0:0:0:0:0:0:0/1']], + ['2001:db8::/128','2001:db8:1::/128', ['2001:db8::/128'], []], ); -print "1..6\n"; +plan tests => 2 * scalar @r; -my $num = 0; -foreach my $case (@r) { - $num++; - my ($low, $up) = Exclude(NetAddr::IP->new($case->[0]), NetAddr::IP->new($case->[1])); - my $ex_low = $case->[2]; - my $ex_up = $case->[3]; - - unless (scalar(@$low) == scalar(@$ex_low) && scalar(@$up) == scalar(@$ex_up)) { - print "not ok $num\n"; - next; +SKIP: { + foreach my $case (@r) { + my ($low, $up) = Exclude(NetAddr::IP->new($case->[0]), NetAddr::IP->new($case->[1])); + my $ex_low = [map { NetAddr::IP->new($_) } @{$case->[2]}]; + my $ex_up = [map { NetAddr::IP->new($_) } @{$case->[3]}]; + is("@$up", "@$ex_up", "Upper half of Exclude($case->[0],$case->[1]) is @$ex_up"); + is("@$low", "@$ex_low", "Lower half of Exclude($case->[0],$case->[1]) is @$ex_low"); } - for (my $i=0; $i < @$low; $i++) { - if (@$low[$i] != NetAddr::IP->new(@$ex_low[$i])) { - print "not ok $num\n"; - next; - } - } - for (my $i=0; $i < @$up; $i++) { - if (@$up[$i] != NetAddr::IP->new(@$ex_up[$i])) { - print "not ok $num\n"; - next; - } - } - print "ok $num\n"; }