The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
# Before `make install' is performed this script should be runnable with
# `make test'. After `make install' it should work as `perl test.pl'

use lib './blib/lib','./blib/arch';

use Test::More tests=>11;

BEGIN { use_ok('IO::Interface::Simple') }

ok(!IO::Interface::Simple->new('foo23'),"returns undef for invalid interface name");
ok(!IO::Interface::Simple->new_from_address('18'),"returns undef for invalid address");
ok(!IO::Interface::Simple->new_from_index(-1),"returns undef for invalid index");

my @if = IO::Interface::Simple->interfaces;
ok(@if>0, 'fetch interface list');

# find loopback interface
my $loopback;
foreach (@if) {
  next unless $_->is_running;
  $loopback ||= $_ if $_->is_loopback;
}

ok($loopback,"loopback device");
ok($loopback->address eq '127.0.0.1','loopback address');
ok($loopback->netmask eq '255.0.0.0','loopback netmask');

SKIP: {
  my $index = $loopback->index;
  skip ('index not implemented on this platform',3) unless defined $index;

  ok(defined $index,'loopback index');

  my $if    = IO::Interface::Simple->new_from_index($index);
  ok($if eq $loopback,"new_from_index()");

  $if       = IO::Interface::Simple->new_from_address('127.0.0.1');
  ok($if eq $loopback,"new_from_address()");
}