use Test::More tests => 19; my @addr = ( [ 'localhost', '127.0.0.1' ], [ 'broadcast', '255.255.255.255' ], [ '254.254.0.1', '254.254.0.1' ], [ 'default', '0.0.0.0' ], [ '10.0.0.1', '10.0.0.1' ], ); my %addr = ( localhost => pack('N',0x7f000001), broadcast => pack('N',0xffffffff), '254.254.0.1' => pack('N',0xfefe0001), default => pack('N',0), '10.0.0.1' => pack('N',0x0a000001), '127.0.0.1' => pack('N',0x7f000001), '255.255.255.255' => pack('N',0xffffffff), '0.0.0.0' => pack('N',0), ); # local inet_aton, don't use perl's Socket sub l_inet_aton { my $rv = (exists $addr{$_[0]}) ? $addr{$_[0]} : undef; } # Verify that Accept_Binary_IP works... my $x; SKIP: { skip "Failed to load NetAddr::IP::Lite", 17 unless use_ok('NetAddr::IP::Lite'); ok(! defined NetAddr::IP::Lite->new("\1\1\1\1"), "binary unrecognized by default ". ($x ? $x->addr :'')); # This mimicks the actual use with :aton NetAddr::IP::Lite::import(':aton'); ok(defined ($x = NetAddr::IP::Lite->new("\1\1\1\1")), "...but can be recognized ". $x->addr); ok(!defined ($x = NetAddr::IP::Lite->new('bad rfc-952 characters')), "bad rfc-952 characters ". ($x ? $x->addr :'')); is(NetAddr::IP::Lite->new($_->[0])->aton, l_inet_aton($_->[1]), "->aton($_->[0])") for @addr; ok(defined NetAddr::IP::Lite->new(l_inet_aton($_->[1])), "->new aton($_->[1])") for @addr; is(NetAddr::IP::Lite->new(l_inet_aton($_->[1]))->addr, $_->[1], "->new aton($_->[1])") for @addr; };