11 require Config; import Config;
12 if ($Config{'extensions'} !~ /\bSocket\b/ &&
13 !(($^O eq 'VMS') && $Config{d_socket}))
15 plan skip_all => "Test uses Socket, Socket not built";
17 if ($^O eq 'irix' && $Config{osvers} == 5) {
18 plan skip_all => "Test relies on resolution of localhost, fails on $^O ($Config{osvers})";
24 BEGIN { use_ok 'Net::hostent' }
26 # Remind me to add this to Test::More.
32 # test basic resolution of localhost <-> 127.0.0.1
35 my $h = gethost('localhost');
37 skip "Can't resolve localhost and you don't have /etc/hosts", 6
38 if (!defined($h) && !-e '/etc/hosts');
40 ok(defined $h, "gethost('localhost')") ||
41 DIE("Can't continue without working gethost: $!");
43 is( inet_ntoa($h->addr), "127.0.0.1", 'addr from gethost' );
45 my $i = gethostbyaddr(inet_aton("127.0.0.1"));
46 ok(defined $i, "gethostbyaddr('127.0.0.1')") ||
47 DIE("Can't continue without working gethostbyaddr: $!");
49 is( inet_ntoa($i->addr), "127.0.0.1", 'addr from gethostbyaddr' );
51 $i = gethost("127.0.0.1");
52 ok(defined $i, "gethost('127.0.0.1')");
53 is( inet_ntoa($i->addr), "127.0.0.1", 'addr from gethost' );
55 "127.0.0.1" =~ /(.*)/;
57 ok(defined $i, 'gethost on capture variable');
59 # need to skip the name comparisons on Win32 because windows will
60 # return the name of the machine instead of "localhost" when resolving
61 # 127.0.0.1 or even "localhost"
63 # - VMS returns "LOCALHOST" under tcp/ip services V4.1 ECO 2, possibly others
64 # - OS/390 returns localhost.YADDA.YADDA
67 skip "Windows will return the machine name instead of 'localhost'", 2
68 if $^O eq 'MSWin32' or $^O eq 'cygwin';
70 print "# name = " . $h->name . ", aliases = " . join (",", @{$h->aliases}) . "\n";
73 unless ($h->name =~ /^localhost(?:\..+)?$/i) {
74 foreach (@{$h->aliases}) {
75 if (/^localhost(?:\..+)?$/i) {
86 # If we found it in the aliases before, expect to find it there again.
87 foreach (@{$h->aliases}) {
88 if (/^localhost(?:\..+)?$/i) {
89 # This time, clear the flag if we see "localhost"
97 like( $i->name, qr/^localhost(?:\..+)?$/i );
101 print "# " . $h->name . " " . join (",", @{$h->aliases}) . "\n";