1# Test to perform icmp protocol testing. 2# Root access is required. 3 4BEGIN { 5 unless (eval "require Socket") { 6 print "1..0 \# Skip: no Socket\n"; 7 exit; 8 } 9} 10 11use Test; 12use Net::Ping; 13plan tests => 2; 14 15# Everything loaded fine 16ok 1; 17 18if (($> and $^O ne 'VMS') 19 or (($^O eq 'MSWin32' or $^O eq 'cygwin') 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->ping("127.0.0.1"); 29} 30 31sub IsAdminUser { 32 return unless $^O eq 'MSWin32' or $^O eq "cygwin"; 33 return unless eval { require Win32 }; 34 return unless defined &Win32::IsAdminUser; 35 return Win32::IsAdminUser(); 36} 37