Condition Coverage

blib/lib/Net/Server.pm
Criterion Covered Total %
condition 78 215 36.2


and 2 conditions

line l !l condition
865 0 3 $prop->{'children'} and scalar keys %{$$prop{"children"};}
883 0 0 defined $prop->{'children'} and scalar keys %{$$prop{"children"};}
927 0 0 $prop->{'leave_children_open_on_hup'} and scalar keys %{$$prop{"children"};}

and 3 conditions

line !l l&&!r l&&r condition
90 0 0 32 $self->allow_deny($c) && $self->allow_deny_hook($c)
125 0 0 96 $script =~ m[^[^/]+/] and $ENV{'PWD'}
135 99 0 28 $_[0] && ref $_[0]
154 96 0 0 defined $prop->{'log_level'} and $prop->{'log_level'} =~ /^\d+$/
183 96 0 0 length $prop->{'log_file'} and not $prop->{'log_function'}
205 96 0 0 $prop->{'reverse_lookups'} and $prop->{'reverse_lookups'} =~ /^(?:double|2)(.*)$/i
273 0 88 7 ref $ports and not @$ports
275 7 0 0 ref $ports and not @$ports
289 0 136 0 $port ne 0 and $bound{"$host\e$port\e$proto\e$ipv"}++
520 23 0 5 $client->can("tie_stdout") and $client->tie_stdout
545 0 0 0 $prop->{'log_level'} and 3 <= $prop->{'log_level'}
574 0 31 0 $addr and $prop->{'reverse_lookups'}
575 0 0 0 $prop->{'peername'} and my(@res) = safe_name_info($prop->{'peername'}, 0)
578 0 0 0 @res > 1 and not $res[0]
582 0 0 0 $prop->{'peerhost'} and $prop->{'double_reverse_lookups'}
590 0 31 0 $prop->{'log_level'} and 3 <= $prop->{'log_level'}
601 0 32 0 $sock and $sock->NS_proto =~ /^UNIX/
620 0 0 0 $prop->{'reverse_lookups'} and defined $prop->{'peerhost'}
0 0 0 $prop->{'reverse_lookups'} and defined $prop->{'peerhost'} and $prop->{'peerhost'} =~ /^$_$/
631 0 0 0 $prop->{'reverse_lookups'} and defined $prop->{'peerhost'}
0 0 0 $prop->{'reverse_lookups'} and defined $prop->{'peerhost'} and $prop->{'peerhost'} =~ /^$_$/
652 0 0 0 $orig_addr && $orig_addr ne $addr
777 22 3 0 defined $prop->{'ppid'} and $prop->{'ppid'} != $$
25 0 0 defined $prop->{'ppid'} and $prop->{'ppid'} != $$ and not defined $prop->{'no_close_by_child'}
788 25 0 0 $prop->{'kind_quit'} and $prop->{'children'}
800 25 0 0 $prop->{'_HUP'} and $prop->{'leave_children_open_on_hup'}
808 23 0 2 defined $prop->{'lock_file'} and -e $prop->{'lock_file'}
23 0 2 defined $prop->{'lock_file'} and -e $prop->{'lock_file'} and defined $prop->{'lock_file_unlink'}
813 25 0 0 defined $prop->{'pid_file'} and -e $prop->{'pid_file'}
25 0 0 defined $prop->{'pid_file'} and -e $prop->{'pid_file'} and not $prop->{'_HUP'}
0 0 0 defined $prop->{'pid_file'} and -e $prop->{'pid_file'} and not $prop->{'_HUP'} and defined $prop->{'pid_file_unlink'}
964 0 146 38 $level =~ /^\d+$/ and $level > $prop->{'log_level'}
970 0 0 0 $prop->{'log_class'} and $prop->{'log_class'}->can("handle_error")
1042 132 0 28 $template and ref $template
1050 5 13 404 $args->[$i] =~ /^(?:--)?(\w+)(?:[=\ ](\S+))?$/ and exists $template->{$1}
1055 59 342 0 $args->[$i] and $args->[$i] =~ /^--\w+/
1060 360 28 13 ref $val eq "ARRAY" and @$val == 1
388 13 0 ref $val eq "ARRAY" and @$val == 1 and ref $template->{$key} ne "ARRAY"

or 2 conditions

line l !l condition
106 99 0 $self->{'server'} ||= {}
119 99 96 0 $self->{'server'}{'commandline'} || croak('commandline was not set during initialization')
143 119 0 $self->default_values || {}
203 0 0 $prop->{'reverse_lookups'} ||= 1
205 0 0 $1 || $prop->{'double_reverse_lookups'} || 1
462 15 0 $self->accept_multi_port || (next)
553 0 0 $ENV{'REMOTE_HOST'} || '0.0.0.0'
644 0 0 $self->{'server'}{'double_reverse_lookups'} || ''
835 0 25 $exit_val || 0
1012 132 0 shift() || {}
1138 3 0 $self->{'server'}{'sig_passthrough'} || []

or 3 conditions

line l !l&&r !l&&!r condition
54 97 0 0 shift() || croak('Missing class')
166 0 0 95 $prop->{'setsid'} or length $prop->{'log_file'}
173 0 0 96 $prop->{'setsid'} or $prop->{'background'}
228 0 0 0 $file =~ /::/ or grep {-e "$_/$file";} @INC
257 0 3 0 delete $prop->{'_recursive_multitype'} || 'Net::Server::MultiType'->net_server_type
272 95 0 0 $ports ||= $prop->{'ports'}
273 0 7 88 not defined $ports or ref $ports and not @$ports
275 0 0 7 not defined $ports or ref $ports and not @$ports
352 9 1 15 @{$prop->{'sock'};} > 1 or $prop->{'multi_port'}
390 0 0 26 $prop->{'group'} ne $) or $prop->{'user'} ne $>
506 31 0 0 shift() || $prop->{'client'}
520 1 5 23 $prop->{'tie_client_stdout'} or $client->can("tie_stdout") and $client->tie_stdout
541 31 0 0 shift() || $prop->{'client'}
598 31 1 0 shift() || $prop->{'client'}
615 0 0 32 @{$prop->{'allow'};} or @{$prop->{'deny'};}
0 0 32 @{$prop->{'allow'};} or @{$prop->{'deny'};} or @{$prop->{'cidr_allow'};}
0 0 32 @{$prop->{'allow'};} or @{$prop->{'deny'};} or @{$prop->{'cidr_allow'};} or @{$prop->{'cidr_deny'};}
653 0 0 0 $rev_addrs->{$addr} || $rev_addrs->{$orig_addr}
675 1 0 0 shift() || $prop->{'client'}
869 4 0 0 kill "TERM", $pid or not kill(0, $pid)
907 0 0 0 POSIX::dup($sock->fileno) || $self->fatal("Cannot duplicate the socket [$!]")
1043 28 132 0 $_[2] or scalar keys %$template
132 0 0 $_[2] or scalar keys %$template or $self->{'server'}{'_no_options'}++
1055 0 0 401 $i > $args->$#* or $args->[$i] and $args->[$i] =~ /^--\w+/