-
- #use diagnostics;
- use NetAddr::IP::Lite 0.10;
- *Ones = \&NetAddr::IP::Lite::Ones;
- use NetAddr::IP::Util qw(
- ipv6_aton
- shiftleft
- );
- $| = 1;
-
- print "1..8\n";
-
- my $test = 1;
- sub ok() {
- print 'ok ',$test++,"\n";
- }
-
- my $ip24 = '1.2.3.4/24';
- my $o = new NetAddr::IP::Lite($ip24);
- my $c = $o;
-
- ## test 1 validate original
- my $txto = sprintf("%s",$o);
- my $txtc = sprintf("%s",$c);
- print "orig... got: $txto, exp: $ip24\nnot "
- unless $txto eq $ip24;
- &ok;
-
- ## test 2
- print "copy... got: $txtc, exp: $ip24\nnot "
- unless $txtc eq $ip24;
- &ok;
-
- my $ip28 = '1.2.3.4/28';
- my $mask = shiftleft(Ones(),32 - 28);
-
- $c->{mask} = $mask;
- $txto = sprintf("%s",$o);
- $txtc = sprintf("%s",$c);
-
- ## overload does not unlink originals in this case
- ## test 3 validate original
- $txto = sprintf("%s",$o);
- $txtc = sprintf("%s",$c);
- print "orig... got: $txto, exp: $ip28\nnot "
- unless $txto eq $ip28;
- &ok;
-
- ## test 4
- print "copy... got: $txtc, exp: $ip28\nnot "
- unless $txtc eq $ip28;
- &ok;
-
- my $ip265 = '1.2.3.5/26';
- my $ip285 = '1.2.3.5/28';
- $mask = shiftleft(Ones(),32 - 26);
-
- ## test 5 overload seperates variables
- $c++;
- ## validate original
- $txto = sprintf("%s",$o);
- $txtc = sprintf("%s",$c);
- print "orig... got: $txto, exp: $ip28\nnot "
- unless $txto eq $ip28;
- &ok;
-
- ## test 6 check mutated copy
- print "copy... got: $txtc, exp: $ip285\nnot "
- unless $txtc eq $ip285;
- &ok;
-
- ## test 7 check seperation
- $c->{mask} = $mask;
- ## validate original
- $txto = sprintf("%s",$o);
- $txtc = sprintf("%s",$c);
- print "orig... got: $txto, exp: $ip28\nnot "
- unless $txto eq $ip28;
- &ok;
-
- ## test 8 check mutated copy
- print "copy... got: $txtc, exp: $ip265\nnot "
- unless $txtc eq $ip265;
- &ok;
-