BEGIN {
chdir 't' if -d 't';
@INC = '../lib';
+}
+
+use Test::More tests => 7;
+
+BEGIN {
require Config; import Config;
if ($Config{'extensions'} !~ /\bSocket\b/ &&
- !(($^O eq 'VMS') && $Config{d_socket})) {
- print "1..0 # Test uses Socket, Socket not built\n";
- exit 0;
+ !(($^O eq 'VMS') && $Config{d_socket}))
+ {
+ plan skip_all => "Test uses Socket, Socket not built";
}
}
-BEGIN { $| = 1; print "1..7\n"; }
-END {print "not ok 1\n" unless $loaded;}
+BEGIN { use_ok 'Net::hostent' }
-use Net::hostent;
-
-$loaded = 1;
-print "ok 1\n";
+# Remind me to add this to Test::More.
+sub BAILOUT {
+ print "Bail Out! @_\n";
+ exit;
+}
# test basic resolution of localhost <-> 127.0.0.1
use Socket;
my $h = gethost('localhost');
-print +(defined $h ? '' : 'not ') . "ok 2\n";
-my $i = gethostbyaddr(inet_aton("127.0.0.1"));
-print +(!defined $i ? 'not ' : '') . "ok 3\n";
+ok(defined $h, "gethost('localhost')") ||
+ BAILOUT("Can't continue without working gethost: $!");
-print "not " if inet_ntoa($h->addr) ne "127.0.0.1";
-print "ok 4\n";
+is( inet_ntoa($h->addr), "127.0.0.1", 'addr from gethost' );
-print "not " if inet_ntoa($i->addr) ne "127.0.0.1";
-print "ok 5\n";
+my $i = gethostbyaddr(inet_aton("127.0.0.1"));
+ok(defined $i, "gethostbyaddr('127.0.0.1')") ||
+ BAILOUT("Can't continue without working gethostbyaddr: $!");
+
+is( inet_ntoa($i->addr), "127.0.0.1", 'addr from gethostbyaddr' );
# need to skip the name comparisons on Win32 because windows will
# return the name of the machine instead of "localhost" when resolving
# VMS returns "LOCALHOST" under tcp/ip services V4.1 ECO 2, possibly others
# OS/390 returns localhost.YADDA.YADDA
-if ($^O eq 'MSWin32' or $^O eq 'NetWare' or $^O eq 'cygwin') {
- print "ok $_ # skipped on win32\n" for (6,7);
-} else {
- my $in_alias;
- unless ($h->name =~ /^localhost(?:\..+)?$/i) {
- foreach (@{$h->aliases}) {
- if (/^localhost(?:\..+)?$/i) {
- $in_alias = 1;
- last;
- }
+SKIP: {
+ skip "Windows will return the machine name instead of 'localhost'", 2
+ if $^O eq 'MSWin32' or $^O eq 'NetWare' or $^O eq 'cygwin';
+
+ my $in_alias;
+ unless ($h->name =~ /^localhost(?:\..+)?$/i) {
+ foreach (@{$h->aliases}) {
+ if (/^localhost(?:\..+)?$/i) {
+ $in_alias = 1;
+ last;
+ }
+ }
+ }
+
+ unless( ok( $in_alias ) ) {
+ print "# ",$h->name, " ", join (",", @{$h->aliases}), "\n";
+ }
+
+ if ($in_alias) {
+ # If we found it in the aliases before, expect to find it there again.
+ foreach (@{$h->aliases}) {
+ if (/^localhost(?:\..+)?$/i) {
+ # This time, clear the flag if we see "localhost"
+ undef $in_alias;
+ last;
+ }
+ }
+ }
+
+ if( $in_alias ) {
+ like( $i->name, qr/^localhost(?:\..+)?$/i );
}
- print "not " unless $in_alias;
- } # Else we found it as the hostname
- print "ok 6 # ",$h->name, " ", join (",", @{$h->aliases}), "\n";
-
- if ($in_alias) {
- # If we found it in the aliases before, expect to find it there again.
- foreach (@{$h->aliases}) {
- if (/^localhost(?:\..+)?$/i) {
- undef $in_alias; # This time, clear the flag if we see "localhost"
- last;
- }
+ else {
+ ok( !$in_alias );
+ print "# ",$h->name, " ", join (",", @{$h->aliases}), "\n";
}
- print "not " if $in_alias;
- } else {
- print "not " unless $i->name =~ /^localhost(?:\..+)?$/i;
- }
- print "ok 7 # ",$h->name, " ", join (",", @{$h->aliases}), "\n";
}