#!/usr/bin/perl
use strict;
use warnings;
use Test::More;
my $tests;
plan tests => $tests;
use Data::Dumper qw(Dumper);
use English qw( -no_match_vars );
my $warn;
BEGIN {
$SIG{__WARN__} = sub { $warn = shift; }
}
use Net::RawIP;
{
if ($EUID) {
like $warn, qr/Must have EUID == 0/, "root warning seen";
} else {
ok(not(defined $warn), "no root warning");
}
BEGIN { $tests += 1; }
}
$SIG{__WARN__} = 'DEFAULT';
{
my $list = ifaddrlist;
is( ref($list), 'HASH', 'ifaddrlist retursn HASH ref');
ok(exists $list->{lo}, 'lo interface exists');
is($list->{lo}, '127.0.0.1', 'lo interface is 127.0.0.1');
# on my Linux machine this is
# lo -> 127.0.0.1
# eth0 -> 192.168.2.2
# How can we test it on other machines?
diag "ifaddrelist returns: " . Dumper $list;
BEGIN { $tests += 3; }
}
{
is(rdev('127.0.0.1'), 'lo', 'rdev 127.0.0.1');
is(rdev('localhost'), 'lo', 'rdev localhost');
eval {
rdev('ab cd');
};
like($@, qr{host_to_ip: failed}, 'rdev ab cd fails');
# rdev will fail if there is not network connection
ok(rdev('cisco.com'), 'rdev cisco.com'); # on my Linux machine this returns eth0
BEGIN { $tests += 4; }
}
syntax highlighted by Code2HTML, v. 0.9.1