Condition Coverage

blib/lib/Net/Ping.pm
Criterion Covered Total %
condition 89 331 26.8


and 3 conditions

line !l l&&!r l&&r condition
172 7 2 2 $ttl and $ttl < 0 || $ttl > 255
196 35 0 2 defined $data_size and $proto ne 'tcp'
247 0 1 0 $self->{'family'} and $self->{'family'} != $AF_INET6
338 0 0 0 defined $self->{'local_addr'} and $self->{'proto'} eq 'udp' || $self->{'proto'} eq 'icmp'
344 0 0 0 $self->{'proto'} ne 'udp' and $self->{'proto'} ne 'icmp'
0 0 0 $self->{'proto'} ne 'udp' and $self->{'proto'} ne 'icmp' and $self->{'proto'} ne 'tcp'
0 0 0 $self->{'proto'} ne 'udp' and $self->{'proto'} ne 'icmp' and $self->{'proto'} ne 'tcp' and $self->{'proto'} ne 'syn'
359 0 64 0 $_[3] > 0 and $^O eq 'MSWin32'
392 0 0 0 defined $self && ref $self
430 16 0 0 $> and $^O ne 'VMS'
16 0 0 $> and $^O ne 'VMS' and $^O ne 'cygwin'
16 0 0 $^O eq 'MSWin32' || $^O eq 'cygwin' and not _IsAdminUser()
16 0 0 $^O eq 'VMS' and `write sys\$output f\$privilege("SYSPRV")` =~ /FALSE/
517 0 0 3 defined $self && ref $self
571 61 0 0 not defined $host and $self->{'host'}
630 0 0 0 not defined $ip and $self->{'host'}
631 0 0 0 not defined $timeout and $self->{'timeout'}
714 5 0 0 not defined $ip and $self->{'host'}
715 5 0 0 not defined $timeout and $self->{'timeout'}
716 5 0 0 $self->{'message_type'} && $self->{'message_type'} eq 'timestamp'
721 5 0 0 defined $self->{'local_addr'} and not CORE::bind($self->{'fh'}, &_pack_sockaddr_in(0, $self->{'local_addr'}))
769 5 0 9 not $done and $timeout > 0
800 0 0 0 $ip->{'family'} == $AF_INET6 and length $recv_msg == 8
812 0 0 4 not $timestamp_msg and $from_type == 0 || $from_type == 129
0 0 0 $timestamp_msg and $from_type == 14
890 29 0 0 not defined $ip and $self->{'host'}
891 29 0 0 not defined $timeout and $self->{'timeout'}
895 2 14 12 not $self->{'econnrefused'} and $! == 111
911 29 0 0 not defined $ip and $self->{'host'}
912 29 0 0 not defined $timeout and $self->{'timeout'}
921 29 0 0 defined $self->{'local_addr'} and not CORE::bind($self->{'fh'}, &_pack_sockaddr_in(0, $self->{'local_addr'}))
939 29 0 0 $! != 115 and $^O ne 'MSWin32' || $! != 11
962 6 0 22 $nfound and vec $wout, $self->{'fh'}->fileno, 1
977 13 0 0 $! == 11 and $^O =~ /cygwin/i
980 1 0 12 not $self->{'econnrefused'} and $! == 111
990 0 0 0 $nfound and vec $wexc, $self->{'fh'}->fileno, 1
1050 0 0 0 &time() < $patience and $child != $self->{'tcp_chld'}
1084 26 15 0 $self->{'proto'} eq 'tcp' and $self->{'tcp_chld'}
1099 0 0 0 not defined $timeout and $self->{'timeout'}
1100 0 0 0 not defined $pingstring and $self->{'pingstring'}
1287 1 0 0 defined $self->{'local_addr'} and not CORE::bind($self->{'fh'}, &_pack_sockaddr_in(0, $self->{'local_addr'}))
1333 1 0 1 not $done and $timeout > 0
1355 0 1 0 not $self->{'econnrefused'} and $! == 111 || $! == 104
1366 0 0 0 $from_ip eq $addr_in and $from_port == $self->{'port_num'}
0 0 0 $from_ip eq $addr_in and $from_port == $self->{'port_num'} and $from_msg eq $msg
1388 0 0 0 not $self->{'econnrefused'} and $! == 111
1422 26 0 0 defined $self->{'local_addr'} and not CORE::bind($fh, &_pack_sockaddr_in(0, $self->{'local_addr'}))
1440 0 0 0 $^O eq 'MSWin32' and $! == 11
1484 0 0 0 defined $self->{'local_addr'} and not CORE::bind($self->{'fh'}, &_pack_sockaddr_in(0, $self->{'local_addr'}))
1527 0 0 0 not $self->{'econnrefused'} and $self->{'bad'}{$host}
0 0 0 not $self->{'econnrefused'} and $self->{'bad'}{$host} and ($! = 111) > 0
0 0 0 not $self->{'econnrefused'} and $self->{'bad'}{$host} and ($! = 111) > 0 and $self->{'bad'}{$host} eq "$!"
1599 8 14 0 not $self->{'econnrefused'} and $self->{'bad'}{$entry->[0]}
22 0 0 not $self->{'econnrefused'} and $self->{'bad'}{$entry->[0]} and ($! = 111) > 0
14 0 0 not $self->{'econnrefused'} and $self->{'bad'}{$entry->[0]} and ($! = 111) > 0 and $self->{'bad'}{$entry->[0]} eq "$!"
1617 1 0 2 not $self->{'econnrefused'} and $! == 111 || $! == 11 && $^O =~ /cygwin/i
1685 0 0 0 keys %{$$self{'syn'};} and $nfound = mselect(my $rout = $rbits, undef, undef, $timeout)
1699 0 0 0 not $self->{'econnrefused'} and $how == 111
1702 0 0 0 $host and $entry->[0] ne $host
1793 0 0 0 defined $port and $port =~ /^\d+$/
1860 61 0 0 defined $h{'port'} and !($h{'port'} =~ /^\d{1,5}$/) || $h{'port'} < 1 || $h{'port'} > 65535
1891 0 0 0 defined $ret and _inet_ntoa($ret) eq $h{'host'}
1969 0 0 0 not defined $family and length $addr <= 16

or 2 conditions

line l !l condition
264 0 0 eval { do { Socket::IPV6_NEXTHOP() } } || 48
269 0 0 eval { do { Socket::IPV6_USE_MIN_MTU() } } || 42
275 0 0 eval { do { Socket::IPV6_RECVPATHMTU() } } || 43
473 0 0 eval { do { Socket::IPV6_USE_MIN_MTU() } } || 43
495 0 0 eval { do { Socket::IPV6_RECVPATHMTU() } } || 43
675 0 1 $self->{'message_type'} || 'echo'
839 0 0 $self->{'from_ip'} || ''
841 0 0 $self->{'from_type'} || 0
0 0 $self->{'from_subcode'} || 0
1743 0 0 $self->{'bad'}{$host} || undef
1796 0 0 'IO::Socket::INET'->new('Proto', 'udp') || (return undef)

or 3 conditions

line l !l&&r !l&&!r condition
106 1 40 0 ref $this || $this
172 1 1 2 $ttl < 0 || $ttl > 255
198 1 1 35 $data_size < $min_datasize or $data_size > $Net::Ping::max_datasize
215 14 1 8 $self->{'proto'} eq 'tcp' or $self->{'proto'} eq 'stream'
217 2 0 0 eval { do { (getprotobyname 'udp')[2] } } || croak(q[Can't udp protocol by name])
220 2 0 0 $self->{'port'} || (getservbyname 'echo', 'udp')[2] || croak(q[Can't get udp echo port by name])
231 9 0 0 eval { do { (getprotobyname 'icmp')[2] } } || croak(q[Can't get icmp protocol by name])
249 1 0 0 eval { do { (getprotobyname 'ipv6-icmp')[2] } } || croak(q[Can't get ipv6-icmp protocol by name])
293 15 0 0 eval { do { (getprotobyname 'tcp')[2] } } || croak(q[Can't get tcp protocol by name])
296 15 0 0 $self->{'port'} || (getservbyname 'echo', 'tcp')[2] || croak(q[Can't get tcp echo port by name])
302 8 0 0 eval { do { (getprotobyname 'tcp')[2] } } || croak(q[Can't get tcp protocol by name])
304 8 0 0 (getservbyname 'echo', 'tcp')[2] || croak(q[Can't get tcp echo port by name])
338 0 0 0 $self->{'proto'} eq 'udp' || $self->{'proto'} eq 'icmp'
372 0 0 0 $nfound or not defined $nfound
0 0 0 $nfound or not defined $nfound or $t <= 0
423 0 0 0 $^O eq 'MSWin32' or $^O eq 'cygwin'
430 0 0 16 $^O eq 'MSWin32' || $^O eq 'cygwin'
0 0 16 $> and $^O ne 'VMS' and $^O ne 'cygwin' or $^O eq 'MSWin32' || $^O eq 'cygwin' and not _IsAdminUser()
0 0 16 $> and $^O ne 'VMS' and $^O ne 'cygwin' or $^O eq 'MSWin32' || $^O eq 'cygwin' and not _IsAdminUser() or $^O eq 'VMS' and `write sys\$output f\$privilege("SYSPRV")` =~ /FALSE/
536 0 0 83 $^O eq 'MSWin32' or $^O eq 'VMS'
572 0 0 61 @_ > 4 or not $host
791 4 0 4 $from_type == 0 or $from_type == 129
811 0 4 0 not $Net::Ping::source_verify or $self->ntop($from_ip) eq $self->ntop($ip)
812 4 0 0 $from_type == 0 || $from_type == 129
0 0 0 $from_type == 3 or $from_type == 1
931 0 0 0 connect($self->{'fh'}, $saddr) || $! == 111 && !$self->{'econnrefused'}
939 0 0 0 $^O ne 'MSWin32' || $! != 11
1320 0 1 0 $flush or $connect
1355 1 0 0 $! == 111 || $! == 104
1366 0 0 0 not $Net::Ping::source_verify or $from_ip eq $addr_in and $from_port == $self->{'port_num'} and $from_msg eq $msg
1440 26 0 0 $! == 115 or $^O eq 'MSWin32' and $! == 11
1523 8 0 20 my $host = shift() or $self->{'host'}
1543 8 0 0 $entry->[4] || croak("Corrupted SYN entry for [$host]")
1582 0 22 3 defined $winner_fd or my $nfound = mselect(undef, $wout = $wbits, undef, $timeout)
1589 0 22 150 $wout =~ /^\0*\z/ or vec $wout, $fd, 1
1617 2 0 0 $! == 111 || $! == 11 && $^O =~ /cygwin/i
1699 0 0 0 not $how or not $self->{'econnrefused'} and $how == 111
1742 0 0 0 shift() || croak('Usage> nack($failed_ack_host)')
1860 0 0 0 !($h{'port'} =~ /^\d{1,5}$/) || $h{'port'} < 1 || $h{'port'} > 65535
1969 8 0 0 $family == 2 or not defined $family and length $addr <= 16