1# Test to perform icmp protocol testing. 2# Root access is required. 3 4use Config; 5 6BEGIN { 7 unless (eval "require Socket") { 8 print "1..0 \# Skip: no Socket\n"; 9 exit; 10 } 11 unless ($Config{d_getpbyname}) { 12 print "1..0 \# Skip: no getprotobyname\n"; 13 exit; 14 } 15} 16 17use Test::More qw(no_plan); 18BEGIN {use_ok('Net::Ping')}; 19 20SKIP: { 21 skip "icmp ping requires root privileges.", 1 22 if !Net::Ping::_isroot() or $^O eq 'MSWin32'; 23 my $p = new Net::Ping ("icmp",undef,undef,undef,undef,undef); 24 isa_ok($p, 'Net::Ping'); 25 ok $p->ping("127.0.0.1"); 26 $p->close(); 27 $p = new Net::Ping ("icmp",undef,undef,undef,undef,0); 28 ok $p->ping("127.0.0.1"); 29 $p->close(); 30 $p = undef(); 31 $p = new Net::Ping ("icmp",undef,undef,undef,undef,1); 32 isa_ok($p, 'Net::Ping'); 33 $p = undef(); 34 $p = eval 'new Net::Ping ("icmp",undef,undef,undef,undef,-1)'; 35 ok(!defined($p)); 36 $p = undef(); 37 $p = eval 'new Net::Ping ("icmp",undef,undef,undef,undef,256)'; 38 ok(!defined($p)); 39 $p = new Net::Ping ("icmp",undef,undef,undef,undef,10); 40 ok $p->ping("127.0.0.1"); 41 $p->close(); 42} 43