Blame t/v4-splitplan.t

Packit 0b51a0
Packit 0b51a0
use Test::More tests => 28;
Packit 0b51a0
Packit 0b51a0
use_ok('NetAddr::IP');
Packit 0b51a0
Packit 0b51a0
my $ip = new NetAddr::IP('192.168.21.13/15');
Packit 0b51a0
my $rv;
Packit 0b51a0
ok(($rv = sprintf("%s",$ip)) eq '192.168.21.13/15',"$rv eq 192.168.21.13/15");
Packit 0b51a0
Packit 0b51a0
my($plan,$masks) = $ip->_splitplan(15);
Packit 0b51a0
ok($plan,'there is a plan');
Packit 0b51a0
ok(!$masks,'plan returns the orignal net');
Packit 0b51a0
ok(@$plan == 1,'one item plan');
Packit 0b51a0
ok(($rv = $plan->[0]) == 15,"plan $rv is original cidr 15");
Packit 0b51a0
Packit 0b51a0
my $cmask = new NetAddr::IP('255.126.0.0');
Packit 0b51a0
ok(($rv = sprintf("%s",$cmask)) eq '255.126.0.0/32',"$rv eq 255.126.0.0/32");
Packit 0b51a0
Packit 0b51a0
($plan,$masks) = $ip->_splitplan($cmask);
Packit 0b51a0
ok(!$plan,'failing because of bits in mask');
Packit 0b51a0
Packit 0b51a0
$cmask = new NetAddr::IP('255.254.0.0');
Packit 0b51a0
ok(($rv = sprintf("%s",$cmask)) eq '255.254.0.0/32',"$rv eq 255.254.0.0/32");
Packit 0b51a0
Packit 0b51a0
($plan,$masks) = $ip->_splitplan($cmask);
Packit 0b51a0
ok($plan,'there is a plan');
Packit 0b51a0
Packit 0b51a0
ok(!$masks,'plan returns the orignal net');
Packit 0b51a0
ok(@$plan == 1,'one item plan');
Packit 0b51a0
ok(($rv = $plan->[0]) == 15,"plan $rv is original cidr 15");
Packit 0b51a0
Packit 0b51a0
$cmask = '255.254.0.0';			# ipV4 text cmask
Packit 0b51a0
($plan,$masks) = $ip->_splitplan($cmask);
Packit 0b51a0
ok($plan,'there is a plan');
Packit 0b51a0
ok(!$masks,'plan returns the orignal net');
Packit 0b51a0
ok(@$plan == 1,'one item plan');
Packit 0b51a0
ok(($rv = $plan->[0]) == 15,"plan $rv is original cidr 15");
Packit 0b51a0
Packit 0b51a0
$cmask = '255.126.0.0';                    # ipV4 text cmask
Packit 0b51a0
($plan,$masks) = $ip->_splitplan($cmask);
Packit 0b51a0
ok(!$plan,'failing because of bits in mask');
Packit 0b51a0
Packit 0b51a0
$cmask = 'garbage';
Packit 0b51a0
($plan,$masks) = $ip->_splitplan($cmask);
Packit 0b51a0
ok(!$plan,'failing because of garbage');
Packit 0b51a0
Packit 0b51a0
$cmask = 14;	# cidr is bigger than requested
Packit 0b51a0
($plan,$masks) = $ip->_splitplan($cmask);
Packit 0b51a0
ok(!$plan,'failing because of 15 overange');
Packit 0b51a0
Packit 0b51a0
# cidr makes more nets than 2**16
Packit 0b51a0
($plan,$masks) = $ip->_splitplan(32);
Packit 0b51a0
ok(!$plan,'failing to many nets 32 - 15 = 2**17');
Packit 0b51a0
Packit 0b51a0
($plan,$masks) = $ip->_splitplan(16,16,16);
Packit 0b51a0
ok(!$plan,'failing because of 3 * 16 overange');
Packit 0b51a0
Packit 0b51a0
# test for plan that just fits
Packit 0b51a0
($plan,$masks) = $ip->_splitplan(31);
Packit 0b51a0
ok($plan,'there is a plan 31');
Packit 0b51a0
ok($masks,'plan has masks');
Packit 0b51a0
ok(($rv = @{$plan}) == 2 ** 16,"$rv should = 65536");
Packit 0b51a0
Packit 0b51a0
# set netlimit internal to 4 nets
Packit 0b51a0
$NetAddr::IP::_netlimit = 4;
Packit 0b51a0
($plan,$masks) = $ip->_splitplan(17);	# should fit
Packit 0b51a0
ok($plan,"plan of 4 17's");
Packit 0b51a0
Packit 0b51a0
($plan,$masks) = $ip->_splitplan(17,17,17,17,18);
Packit 0b51a0
ok(!plan,"fail plan of 4 17's + 18");
Packit 0b51a0
Packit 0b51a0
($plan,$masks) = $ip->_splitplan(18);
Packit 0b51a0
ok(!plan,"fail plan of 8 18's");