Condition Coverage

blib/lib/HTTP/Tiny.pm
Criterion Covered Total %
condition 194 302 64.2


and 3 conditions

line !l l&&!r l&&r condition
97 1 0 0 not $persist_ok{$accessor} and $_[1] ne $_[0]{$accessor}
109 1 170 2 defined $agent && $agent =~ / $/
237 0 0 0 @_ == 3 and ref $args eq "HASH"
2 1 6 @_ == 3 and ref $args eq "HASH"
0 0 0 @_ == 3 and ref $args eq "HASH"
0 0 0 @_ == 3 and ref $args eq "HASH"
0 0 2 @_ == 3 and ref $args eq "HASH"
0 0 8 @_ == 3 and ref $args eq "HASH"
269 0 0 1 @_ == 4 and ref $args eq "HASH"
315 3 1 1 @_ == 4 and ref $args eq "HASH"
326 2 0 3 -e $file and my $mtime = (stat $file)[9]
344 0 0 3 $lm and my $mtime = $self->_parse_http_date($lm)
464 3 1 114 @_ == 4 and ref $args eq "HASH"
472 125 0 20 $@ and $idempotent{$method}
0 20 0 $@ and $idempotent{$method} and $@ =~ /^(?:Socket closed|Unexpected end|SSL read error)/
478 20 0 0 ref $e eq "HASH" and exists $e->{'status'}
517 0 0 7 @_ == 2 and ref $data
582 33 3 0 ref $self and $self->{'verify_SSL'} || $self->{'SSL_options'}{'SSL_verify_mode'}
645 127 30 1 $scheme ne "http" and $scheme ne "https"
700 88 0 50 $self->{'keep_alive'} and $handle->connected
88 2 48 $self->{'keep_alive'} and $handle->connected and $known_message_length
2 2 46 $self->{'keep_alive'} and $handle->connected and $known_message_length and $response->{'protocol'} eq "HTTP/1.1"
4 3 43 $self->{'keep_alive'} and $handle->connected and $known_message_length and $response->{'protocol'} eq "HTTP/1.1" and ($response->{'headers'}{'connection'} || '') ne "close"
742 150 0 2 $self->{'_has_proxy'}{$scheme} and not grep({$host =~ /\Q$_\E$/;} @{$$self{"no_proxy"};})
768 1 0 1 length $p_auth and not defined $request->{'headers'}{'proxy-authorization'}
790 1 0 21 defined $scheme and length $scheme
1 0 21 defined $scheme and length $scheme and length $host
0 0 21 defined $scheme and length $scheme and length $host and length $port
0 0 21 defined $scheme and length $scheme and length $host and length $port and $path_query eq "/"
861 18 1 30 defined $args->{'content'} and length $args->{'content'}
868 5 0 0 exists $request->{'content-length'} and $request->{'content-length'} == 0
902 137 1 4 length $auth and not defined $request->{'headers'}{'authorization'}
922 132 1 4 $data_cb and $response->{'status'} =~ /^2/
955 0 2 15 ref $jar and ref($jar)->can($method)
968 124 0 15 $status eq '303' || $status =~ /^30[1278]/ && $method =~ /^GET|HEAD$/ and $headers->{'location'}
0 2 13 $status eq '303' || $status =~ /^30[1278]/ && $method =~ /^GET|HEAD$/ and $headers->{'location'} and @{$args->{'_redirects'};} < $self->{'max_redirect'}
999 168 4 21 $host =~ s/:(\d*)\z// && length $1
1108 0 2 0 $self->{'fh'} and $self->{'fh'}->can("timeout")
1159 0 0 18 $self->{'fh'} and $self->{'fh'}->connected
1279 311 4 0 $len and not $allow_partial
1385 0 0 146 @_ >= 2 and @_ <= 4
0 0 146 @_ >= 2 and @_ <= 4 and ref $_[1] eq "HASH"
1489 2 25 154 defined $data and length $data
1536 4 1 54 defined $data and length $data
1596 904 0 0 defined $timeout and $timeout >= 0
1599 0 0 904 defined $fd and $fd >= 0

or 2 conditions

line l !l condition
162 10 305 $ENV{'PERL_HTTP_TINY_SSL_INSECURE_BY_DEFAULT'} || ''
186 1 1 $ENV{'CGI_HTTP_PROXY'} || ''
237 0 1 $args || {}
6 67 $args || {}
0 2 $args || {}
0 0 $args || {}
2 0 $args || {}
8 0 $args || {}
466 114 31 $args ||= {}
700 15 31 $response->{'headers'}{'connection'} || ''
872 5 0 $request->{'headers'}{'content-type'} ||= "application/octet-stream"
885 8 17 $request->{'headers'}{'content-type'} ||= "application/octet-stream"
966 13 126 $args->{'_redirects'} ||= []
1318 12 150 $headers ||= {}
1387 24 122 $header_case ||= {}
1441 10 127 $response->{'headers'}{'transfer-encoding'} || ''

or 3 conditions

line l !l&&r !l&&!r condition
131 3 1 3 $args{'verify_SSL'} ||= $args{'verify_ssl'}
173 1 1 165 $ENV{'all_proxy'} || $ENV{'ALL_PROXY'}
187 2 4 159 $ENV{'http_proxy'} || $ENV{'HTTP_PROXY'} || $self->{'proxy'}
200 1 4 162 $ENV{'https_proxy'} || $ENV{'HTTPS_PROXY'} || $self->{'proxy'}
237 1 0 0 @_ == 2 or @_ == 3 and ref $args eq "HASH"
67 7 2 @_ == 2 or @_ == 3 and ref $args eq "HASH"
2 0 0 @_ == 2 or @_ == 3 and ref $args eq "HASH"
0 0 0 @_ == 2 or @_ == 3 and ref $args eq "HASH"
0 2 0 @_ == 2 or @_ == 3 and ref $args eq "HASH"
0 8 0 @_ == 2 or @_ == 3 and ref $args eq "HASH"
269 6 1 0 @_ == 3 or @_ == 4 and ref $args eq "HASH"
315 4 1 4 @_ == 3 or @_ == 4 and ref $args eq "HASH"
327 1 2 0 $args->{'headers'}{'if-modified-since'} ||= $self->_http_date($mtime)
348 3 1 1 $response->{'success'} ||= $response->{'status'} eq 304
464 31 115 3 @_ == 3 or @_ == 4 and ref $args eq "HASH"
519 3 4 0 ref $data eq "HASH" or ref $data eq "ARRAY"
582 3 0 0 $self->{'verify_SSL'} || $self->{'SSL_options'}{'SSL_verify_mode'}
633 3 169 0 ref $_[0] || $_[0]
659 0 157 0 $args->{'peer'} || $host
676 5 150 2 $handle ||= $self->_open_handle($request, $scheme, $host, $port, $peer)
689 1 1 137 $method eq "HEAD" or $response->{'status'} =~ /^[23]04/
855 0 142 0 $request->{'headers'}{'user-agent'} ||= $self->{'agent'}
860 8 41 93 $request->{'method'} eq "PUT" or $request->{'method'} eq "POST"
875 2 0 3 exists $request->{'headers'}{'content-length'} or $request->{'headers'}{'transfer-encoding'}
888 1 0 24 $request->{'headers'}{'content-length'} or $request->{'headers'}{'transfer-encoding'}
968 2 23 114 $status eq '303' || $status =~ /^30[1278]/ && $method =~ /^GET|HEAD$/
1244 98 217 0 @_ == 2 or @_ == 3
1316 150 12 0 @_ == 1 or @_ == 2
1425 1 350 0 $_ eq "" or /\A $Field_Content \z/ox
1461 127 99 0 @_ == 3 or @_ == 4
1463 99 105 22 $content_length ||= $response->{'headers'}{'content-length'}
1615 0 0 0 not $timeout or ($pending = $timeout - (time - $initial)) > 0
1625 935 0 0 @_ == 1 or @_ == 2
1634 18 0 0 @_ == 1 or @_ == 2
1643 0 0 0 $self->{'last_used'} || $now
1668 0 0 16 $self->{'pid'} != $$ or $self->{'tid'} != _get_tid()
0 0 16 $self->{'pid'} != $$ or $self->{'tid'} != _get_tid() or length $self->{'rbuf'}
0 1 15 $self->{'pid'} != $$ or $self->{'tid'} != _get_tid() or length $self->{'rbuf'} or $scheme ne $self->{'scheme'}
1 1 14 $self->{'pid'} != $$ or $self->{'tid'} != _get_tid() or length $self->{'rbuf'} or $scheme ne $self->{'scheme'} or $host ne $self->{'host'}
2 1 13 $self->{'pid'} != $$ or $self->{'tid'} != _get_tid() or length $self->{'rbuf'} or $scheme ne $self->{'scheme'} or $host ne $self->{'host'} or $port ne $self->{'port'}
2 0 13 $self->{'pid'} != $$ or $self->{'tid'} != _get_tid() or length $self->{'rbuf'} or $scheme ne $self->{'scheme'} or $host ne $self->{'host'} or $port ne $self->{'port'} or $peer ne $self->{'peer'}
1 0 13 $self->{'pid'} != $$ or $self->{'tid'} != _get_tid() or length $self->{'rbuf'} or $scheme ne $self->{'scheme'} or $host ne $self->{'host'} or $port ne $self->{'port'} or $peer ne $self->{'peer'} or $self->_has_keep_alive_expired
0 8 5 $self->{'pid'} != $$ or $self->{'tid'} != _get_tid() or length $self->{'rbuf'} or $scheme ne $self->{'scheme'} or $host ne $self->{'host'} or $port ne $self->{'port'} or $peer ne $self->{'peer'} or $self->_has_keep_alive_expired or eval { do { $self->can_read(0) } }
8 0 5 $self->{'pid'} != $$ or $self->{'tid'} != _get_tid() or length $self->{'rbuf'} or $scheme ne $self->{'scheme'} or $host ne $self->{'host'} or $port ne $self->{'port'} or $peer ne $self->{'peer'} or $self->_has_keep_alive_expired or eval { do { $self->can_read(0) } } or $@