Branch Coverage

blib/lib/Net/Server/HTTP.pm
Criterion Covered Total %
branch 42 204 20.5


line true false branch
79 2 0 if not $log or $log eq '/dev/null'
80 0 0 unless $prop->{'access_log_format'}
81 0 0 $1 eq 't' ? :
0 0 $1 eq 'n' ? :
82 0 0 if ($log eq 'STDERR') { }
85 0 0 unless open my $fh, '>>', $log
105 2 1 if ($request_info->{'headers_sent'})
107 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') { }
118 0 0 if @_
126 2 0 if defined $len
130 0 1 if $method ne 'print'
137 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*//) { }
146 1 0 if @$s
153 0 0 $line =~ /(.{0,120})/ ? :
160 0 1 if ($key eq 'Status' and $line =~ /^(\d+) (?:|\s+(.+?))$/xi) { }
0 1 elsif ($key eq 'Location') { }
1 0 elsif ($key eq 'Content-type') { }
178 2 0 unless ($self->{'server'}{'enable_dispatch'})
179 1 1 if 'Net::Server::HTTP'->can('process_request') ne $self->can('process_request')
180 0 1 if 'Net::Server::HTTP'->can('process_http_request') ne $self->can('process_http_request')
184 1 0 if (not $app or ref $app eq 'ARRAY' and not @$app)
192 1 0 ref $app eq 'ARRAY' ? :
193 0 0 unless $a
194 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' ? :
205 0 0 if ($dispatch{$key})
215 0 1 if (@dispatch)
216 0 0 if (not $dispatch{'/'} and $first)
237 1 0 $status == 200 ? :
250 0 2 if ($body)
304 0 1 if (not $ok)
311 2 0 unless +(shift())->{'script_name'}
321 0 2 if $self->{'server'}{'client'}->NS_proto =~ /SSL/
325 0 2 if $ok != 1
326 0 2 if ($has_xs_parser) { }
328 0 0 if $len == -1
329 0 0 if $len == -2
333 0 2 unless defined $req
335 0 2 unless (defined $req and $req =~ m[ ^\s*(GET|POST|PUT|DELETE|PUSH|HEAD|OPTIONS)\s+(.+)\s+(HTTP/1\.[01])\s*$ ]xi)
341 0 2 if $ENV{'REQUEST_URI'} =~ / \?(.*)$ /x
342 2 0 if $ENV{'REQUEST_URI'} =~ /^([^\?]+)/
348 0 2 if $key eq 'COOKIES'
351 2 0 unless $key =~ /^CONTENT_(?:LENGTH|TYPE)$/
353 0 2 if (exists $ENV{$key}) { }
364 2 0 if $type eq 'Net::Server::MultiType'
382 0 2 if defined $ENV{'QUERY_STRING'}
383 0 2 $ENV{'HTTPS'} ? :
393 0 0 if @_ >= 3
400 0 0 unless $ENV{'PATH_INFO'} =~ s[^($dispatch_qr)(?=/|$|(?<=/))][]
402 0 0 if ($ENV{'PATH_INFO'})
403 0 0 unless $ENV{'PATH_INFO'} =~ m[^/]
407 0 0 if ref $code
414 0 1 if (my $table = $self->{'dispatch'})
415 0 0 unless my $qr = $self->{'dispatch_qr'}
426 1 0 if (eval { do { require Data::Dumper } })
429 1 0 if (eval { do { require CGI } })
437 0 2 unless defined $info->{'begin'}
489 0 0 if $1 and $orig and $1 eq '<'
497 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) ? :
500 0 0 unless defined $v and length $v
501 0 0 $1 eq "\t" ? :
0 0 $1 eq "\n" ? :
514 0 0 unless $info->{'request_headers'}
515 0 0 if $cookie =~ /^\Q$var\E=(.*)/
521 0 0 unless $info->{'request_headers'}
529 0 0 unless $info->{'response_headers'}
531 0 0 unless $_[1]{'pid'}
538 0 0 $info->{'headers_sent'} ? :
547 0 0 unless -x $file
550 0 0 unless defined $pid
552 0 0 if (not $pid) { }
553 0 0 unless (eval { do { require $file } })
556 0 0 unless $self->{'request_info'}{'headers_sent'}
573 0 0 if $pid == $chld
574 0 0 unless $chld > 0
584 0 0 unless $pid = eval { do { IPC::Open3::open3($in, $out, $err, $file) } }
587 0 0 $len ? :
594 0 0 unless read $fh, my $buf, 4096
595 0 0 if ($fh == $out) { }
602 0 0 if (@$i)
604 0 0 if $bytes
606 0 0 if $len <= 0
609 0 0 unless ($self->{'request_info'}{'headers_sent'})
610 0 0 if (not $printed) { }
0 0 elsif ($done > 0) { }