# Before `make install' is performed this script should be runnable with # `make test'. After `make install' it should work as `perl test.pl' ######################### We start with some black magic to print on failure. # Change 1..1 below to 1..last_test_to_print . # (It may become useful if the test is moved to ./t subdirectory.) $| = 1; END {print "1..1\nnot ok 1\n" unless $test;} #use diagnostics; use NetAddr::IP::Util qw( ipv6_n2d inet_aton ipv6_aton inet_4map6 ); $test = 1; sub ok { print "ok $test\n"; ++$test; } # Insert your test code below (better if it prints "ok 13" # (correspondingly "not ok 13") depending on the success of chunk 13 # of the test code): print "1..6\n"; my @stuff = qw( 192.168.1.1 1.2.3.4 ::3.4.5.6 ::FFFF:4.5.6.7 ::1:5.4.3.2 ::FEFF:4.3.2.1 ); my $p4 = '0:0:0:0:0:FFFF:'; my $p6 = '0:0:0:0:0:'; foreach(0..$#stuff) { my $pass = 1; my $result; my $bstr; $pass = 0 if $_ > 3; if ($stuff[$_] =~ /\:/) { $bstr = ipv6_aton($stuff[$_]); my $prefix = ($stuff[$_] =~ /^\:\:F/) ? $p6 : $p4; ($result = $stuff[$_]) =~ s/\:\:/$prefix/; } else { $bstr = inet_aton($stuff[$_]); $result = $p4 . $stuff[$_]; } my $rv = inet_4map6($bstr); if ($pass && ! $rv) { print "failed to return valid address\nnot "; } elsif ($pass) { $rv = ipv6_n2d($rv); print "got: $rv, exp: $result\nnot " unless $rv eq $result; } else { print 'unknown return ', ipv6_n2d($rv), "\nnot " if $rv; } &ok; }