Branch Coverage

blib/lib/Net/Server/HTTP.pm
Criterion Covered Total %
branch 42 208 20.1


line true false branch
89 2 0 if not $log or $log eq '/dev/null'
90 0 0 unless $prop->{'access_log_format'}
91 0 0 $1 eq 't' ? :
0 0 $1 eq 'n' ? :
92 0 0 if ($log eq 'STDOUT' or $log eq '/dev/stdout') { }
0 0 elsif ($log eq 'STDERR' or $log eq '/dev/stderr') { }
93 0 0 unless open my $fh, '>&', \*STDOUT
99 0 0 unless open my $fh, '>>', $log
119 2 1 if ($request_info->{'headers_sent'})
121 2 0 if ($method eq 'print') { }
0 0 elsif ($method eq 'printf') { }
0 0 elsif ($method eq 'say') { }
0 0 elsif ($method eq 'write') { }
0 0 elsif ($method eq 'syswrite') { }
132 0 0 if @_
140 2 0 if defined $len
144 0 1 if $method ne 'print'
151 0 2 if (not $headers->{'parsed'} and $line =~ m[^HTTP/(1.[01]) \s+ (\d+) (?: | \s+ .+)$ ]x) { }
1 1 elsif (not length $line) { }
0 1 elsif (not $line =~ s/^(\w+(?:-(?:\w+))*):\s*//) { }
160 1 0 if @$s
167 0 0 $line =~ /(.{0,120})/ ? :
174 0 1 if ($key eq 'Status' and $line =~ /^(\d+) (?:|\s+(.+?))$/xi) { }
0 1 elsif ($key eq 'Location') { }
1 0 elsif ($key eq 'Content-type') { }
192 2 0 unless ($self->{'server'}{'enable_dispatch'})
193 1 1 if 'Net::Server::HTTP'->can('process_request') ne $self->can('process_request')
194 0 1 if 'Net::Server::HTTP'->can('process_http_request') ne $self->can('process_http_request')
198 1 0 if (not $app or ref $app eq 'ARRAY' and not @$app)
206 1 0 ref $app eq 'ARRAY' ? :
207 0 0 unless $a
208 0 0 $a =~ /^(.+?)=(.+)$/ ? :
0 0 $a =~ /^(.+?)\s+(.+)$/ ? :
0 0 ref $a eq 'CODE' ? :
0 0 ref $a eq 'HASH' ? :
0 0 ref $a eq 'ARRAY' ? :
219 0 0 if ($dispatch{$key})
229 0 1 if (@dispatch)
230 0 0 if (not $dispatch{'/'} and $first)
251 1 0 $status == 200 ? :
264 0 2 if ($body)
318 0 1 if (not $ok)
325 2 0 unless +(shift())->{'script_name'}
335 0 2 if $self->{'server'}{'client'}->NS_proto =~ /SSL/
339 0 2 if $ok != 1
340 0 2 if ($has_xs_parser) { }
342 0 0 if $len == -1
343 0 0 if $len == -2
347 0 2 unless defined $req
349 0 2 unless (defined $req and $req =~ m[ ^\s*(GET|POST|PUT|PATCH|DELETE|PUSH|HEAD|OPTIONS)\s+(.+)\s+(HTTP/1\.[01])\s*$ ]xi)
355 0 2 if $ENV{'REQUEST_URI'} =~ / \?(.*)$ /x
356 2 0 if $ENV{'REQUEST_URI'} =~ /^([^\?]+)/
362 0 2 if $key eq 'COOKIES'
365 2 0 unless $key =~ /^CONTENT_(?:LENGTH|TYPE)$/
367 0 2 if (exists $ENV{$key}) { }
378 2 0 if $type eq 'Net::Server::MultiType'
396 0 2 if defined $ENV{'QUERY_STRING'}
397 0 2 $ENV{'HTTPS'} ? :
407 0 0 if @_ >= 3
414 0 0 unless $ENV{'PATH_INFO'} =~ s[^($dispatch_qr)(?=/|$|(?<=/))][]
416 0 0 if ($ENV{'PATH_INFO'})
417 0 0 unless $ENV{'PATH_INFO'} =~ m[^/]
421 0 0 if ref $code
428 0 1 if (my $table = $self->{'dispatch'})
429 0 0 unless my $qr = $self->{'dispatch_qr'}
440 1 0 if (eval { do { require Data::Dumper } })
443 1 0 if (eval { do { require CGI } })
451 0 2 unless defined $info->{'begin'}
503 0 0 if $1 and $orig and $1 eq '<'
511 0 0 $4 eq '%' ? :
0 0 $4 eq 'D' ? :
0 0 $4 eq 'T' ? :
0 0 $4 eq 'O' ? :
0 0 $4 eq 'I' ? :
0 0 $4 eq 'b' ? :
0 0 $fmt_code{$4} ? :
0 0 $fmt_map{$4} ? :
0 0 $2 && (substr($2, 0, 1) eq '!' ? index($2, $info->{'response_status'}) != -1 : index($2, $info->{'response_status'}) == -1) ? :
514 0 0 unless defined $v and length $v
515 0 0 $1 eq "\t" ? :
0 0 $1 eq "\n" ? :
528 0 0 unless $info->{'request_headers'}
529 0 0 if $cookie =~ /^\Q$var\E=(.*)/
535 0 0 unless $info->{'request_headers'}
543 0 0 unless $info->{'response_headers'}
545 0 0 unless $_[1]{'pid'}
552 0 0 $info->{'headers_sent'} ? :
561 0 0 unless -x $file
564 0 0 unless defined $pid
566 0 0 if (not $pid) { }
567 0 0 unless (eval { do { require $file } })
570 0 0 unless $self->{'request_info'}{'headers_sent'}
587 0 0 if $pid == $chld
588 0 0 unless $chld > 0
598 0 0 unless $pid = eval { do { IPC::Open3::open3($in, $out, $err, $file) } }
601 0 0 $len ? :
608 0 0 unless read $fh, my $buf, 4096
609 0 0 if ($fh == $out) { }
616 0 0 if (@$i)
618 0 0 if $bytes
620 0 0 if $len <= 0
623 0 0 unless ($self->{'request_info'}{'headers_sent'})
624 0 0 if (not $printed) { }
0 0 elsif ($done > 0) { }