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