Move Module::CoreList from ext/ to dist/
[perl.git] / ext / Net-Ping / t / 110_icmp_inst.t
1 # Test to make sure object can be instantiated for icmp protocol.
2 # Root access is required to actually perform icmp testing.
3
4 BEGIN {
5   unless (eval "require Socket") {
6     print "1..0 \# Skip: no Socket\n";
7     exit;
8   }
9 }
10
11 use Test;
12 use Net::Ping;
13 plan tests => 2;
14
15 # Everything loaded fine
16 ok 1;
17
18 if (($> and $^O ne 'VMS' and $^O ne 'cygwin')
19     or ($^O eq 'MSWin32'
20         and !IsAdminUser())
21     or ($^O eq 'VMS'
22         and (`write sys\$output f\$privilege("SYSPRV")` =~ m/FALSE/))) {
23   skip "icmp ping requires root privileges.", 1;
24 } elsif ($^O eq 'MacOS') {
25   skip "icmp protocol not supported.", 1;
26 } else {
27   my $p = new Net::Ping "icmp";
28   ok !!$p;
29 }
30
31 sub IsAdminUser {
32   return unless $^O eq 'MSWin32';
33   return unless eval { require Win32 };
34   return unless defined &Win32::IsAdminUser;
35   return Win32::IsAdminUser();
36 }