Condition Coverage

blib/lib/PAGI/Server.pm
Criterion Covered Total %
condition 200 364 54.9


and 3 conditions

line !l l&&!r l&&r condition
2089 0 2 21 ref $listen eq "ARRAY" and @$listen
2105 0 2 17 defined $spec->{'host'} and defined $spec->{'port'}
2353 3 2 339 $self->{'quiet'} and $level ne "error"
2439 39 0 4 $self->{'http2'} and $HTTP2_AVAILABLE
2545 246 0 15 $self->{'workers'} and $self->{'workers'} > 0
2592 1 1 1 $inh->{'type'} eq "tcp" and $handle->can("sockport")
2705 0 0 233 $socket and $socket->can("sockport")
2772 0 0 0 $weak_self and not $weak_self->{'quiet'}
2777 0 0 0 $weak_self and not $weak_self->{'quiet'}
2789 8 235 0 $self->{'access_log'} and -t $self->{'access_log'}
2819 243 0 0 ($ENV{'PAGI_ENV'} // "") eq "production" and not $self->{'max_connections'}
2863 0 0 0 $inh->{'type'} eq "tcp" and $socket->can("sockport")
2896 0 0 0 $socket and not $spec->{'_inherited'}
2938 0 0 15 $socket and not $spec->{'_inherited'}
2965 0 0 15 @listen_entries and $listen_entries[0]{'socket'}
2985 0 15 0 $self->{'access_log'} and -t $self->{'access_log'}
3007 15 0 0 ($ENV{'PAGI_ENV'} // "") eq "production" and not $self->{'max_connections'}
3035 0 0 6 $self->{'heartbeat_timeout'} and $self->{'heartbeat_timeout'} > 0
3146 263 0 3 defined $listen_fds and $listen_fds =~ /^\d+$/
263 0 3 defined $listen_fds and $listen_fds =~ /^\d+$/ and $listen_fds > 0
3147 0 2 1 defined $ENV{'LISTEN_PID'} and $ENV{'LISTEN_PID'} == $$
3227 0 0 5 $key and defined $ENV{'PAGI_REUSE'}
3237 5 0 0 $entry->{'spec'}{'type'} eq "unix" and not $entry->{'spec'}{'_inherited'}
5 0 0 $entry->{'spec'}{'type'} eq "unix" and not $entry->{'spec'}{'_inherited'} and -e $entry->{'spec'}{'path'}
3388 0 0 24 $self->{'heartbeat_timeout'} and $self->{'heartbeat_timeout'} > 0
3445 7 0 0 $weak_self->{'running'} and not $weak_self->{'shutting_down'}
3458 0 3 4 $weak_self->{'shutting_down'} and not keys %{$$weak_self{"worker_pids"};}
3483 9 0 0 not $entry->{'socket'} and $reuseport
9 0 0 not $entry->{'socket'} and $reuseport and $spec->{'type'} eq "tcp"
3540 0 0 9 $entry->{'spec'}{'type'} eq "tcp" and $entry->{'socket'}
0 0 9 $entry->{'spec'}{'type'} eq "tcp" and $entry->{'socket'} and $entry->{'socket'}->can("sockport")
3613 5 0 4 $ssl_params && $spec->{'type'} eq 'tcp'
3695 214 42 2 $self->{'tls_enabled'} and $self->{'http2_enabled'}
3697 0 0 2 $handle and $handle->can("alpn_selected")
3728 0 0 258 $listener_spec && $listener_spec->{'type'}
3806 0 0 0 $listener and $listener->read_handle
3811 0 0 0 $self->{'listener'} and not $self->{'_listen_entries'}
3818 0 0 0 $weak_self and $weak_self->{'running'}
3825 0 0 0 $listener and $listener->read_handle
3830 0 0 0 $weak_self->{'listener'} and not $weak_self->{'_listen_entries'}
3845 5 0 2 $self->{'max_requests'} and $self->{'max_requests'} > 0
3930 255 0 0 $receive_pending and not $receive_pending->is_ready
3989 0 0 168 $$receive_pending_ref and not $$receive_pending_ref->is_ready
4002 0 168 0 $timeout_f->is_ready and not $self->{'shutdown_pending'}->is_ready
4032 3 0 238 $key and not $self->{'_hot_restart_in_progress'}
3 0 238 $key and not $self->{'_hot_restart_in_progress'} and defined $ENV{'PAGI_REUSE'}
4040 233 1 7 $entry->{'spec'}{'type'} eq "unix" and not $entry->{'spec'}{'_inherited'}
234 0 7 $entry->{'spec'}{'type'} eq "unix" and not $entry->{'spec'}{'_inherited'} and -e $entry->{'spec'}{'path'}
4105 0 0 0 $conn and $conn->can("_close")
4212 0 2 3 defined $qs and length $qs
4219 1 245 15 defined $qs && length $qs
4278 512 0 10 $self->{'max_connections'} && $self->{'max_connections'} > 0

or 2 conditions

line l !l condition
2058 2 424 delete $params->{'disable_tls'} // 0
2128 358 19 $host //= "127.0.0.1"
2129 371 6 $port //= 5000
2148 12 398 delete $params->{'extensions'} // {}
2151 8 402 delete $params->{'access_log_format'} // "clf"
2155 405 5 delete $params->{'quiet'} // 0
2156 10 400 delete $params->{'log_level'} // "info"
2162 11 399 delete $params->{'timeout'} // 60
2163 10 400 delete $params->{'max_header_size'} // 8192
2164 10 400 delete $params->{'max_header_count'} // 100
2165 13 397 delete $params->{'max_body_size'} // 10000000
2166 48 362 delete $params->{'workers'} // 0
2167 12 398 delete $params->{'max_requests'} // 0
2168 0 410 delete $params->{'listener_backlog'} // 2048
2169 17 393 delete $params->{'shutdown_timeout'} // 30
2170 0 410 delete $params->{'reuseport'} // 0
2171 10 400 delete $params->{'max_receive_queue'} // 1000
2172 9 401 delete $params->{'max_ws_frame_size'} // 65536
2173 2 408 delete $params->{'max_connections'} // 0
2174 9 401 delete $params->{'sync_file_threshold'} // 65536
2175 9 401 delete $params->{'request_timeout'} // 0
2176 9 401 delete $params->{'ws_idle_timeout'} // 0
2177 9 401 delete $params->{'sse_idle_timeout'} // 0
2178 0 410 delete $params->{'heartbeat_timeout'} // 50
2179 9 401 delete $params->{'write_high_watermark'} // 65536
2180 9 401 delete $params->{'write_low_watermark'} // 16384
2188 1 407 $ENV{'PAGI_ENV'} // ""
2191 3 313 (delete $params->{'http2'} // $ENV{'_PAGI_SERVER_HTTP2'}) // 0
2194 2 406 delete $params->{'h2_max_concurrent_streams'} // 100
2195 1 407 delete $params->{'h2_initial_window_size'} // 65535
2196 1 407 delete $params->{'h2_max_frame_size'} // 16384
2197 1 407 delete $params->{'h2_enable_push'} // 0
2198 1 407 delete $params->{'h2_enable_connect_protocol'} // 1
2199 1 407 delete $params->{'h2_max_header_list_size'} // 65536
2351 592 0 $_LOG_LEVELS{$level} // 2
2426 4 39 $ssl->{'min_version'} // "TLSv1_2"
2428 4 39 $ssl->{'cipher_list'} // "ECDHE+AESGCM:DHE+AESGCM:ECDHE+CHACHA20:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA"
2562 2 0 $startup_result->{'message'} // "Lifespan startup failed"
2721 199 44 $ENV{'PAGI_REUSE'} // ""
2819 0 243 $ENV{'PAGI_ENV'} // ""
2900 0 0 $ENV{'PAGI_REUSE'} // ""
2942 3 12 $ENV{'PAGI_REUSE'} // ""
3007 0 15 $ENV{'PAGI_ENV'} // ""
3078 0 0 $self->{'heartbeat_timeout'} || 10
3169 0 0 $inherited{$key} //= {"fd", $fd, "type", "unix", "path", $path, "handle", $fh, "source", "systemd"}
3177 0 1 $inherited{$key} //= {"fd", $fd, "type", "tcp", "host", $host, "port", $port, "handle", $fh, "source", "systemd"}
3213 5 0 $self->{'_listen_entries'} // []
3225 5 0 $self->{'_listen_entries'} // []
3236 5 0 $self->{'_listen_entries'} // []
3257 5 0 $self->{'shutdown_timeout'} // 30
3282 0 0 $self->{'shutdown_timeout'} // 30
3581 0 0 $startup_result->{'message'} // "Lifespan startup failed"
3656 9 0 $self->{'heartbeat_timeout'} || 50
3728 44 214 $self->{'tls_enabled'} // 0
258 0 $listener_spec && $listener_spec->{'type'} // "tcp"
2 0 $self->{'h2c_enabled'} // 0
3804 0 0 $self->{'_listen_entries'} // []
3823 0 0 $weak_self->{'_listen_entries'} // []
3881 255 0 $self->{'is_worker'} // 0
3901 343 0 $event->{'type'} // ""
3907 2 0 $event->{'message'} // ""
3918 0 0 $event->{'message'} // ""
3968 80 174 $result->{'lifespan_supported'} // 1
3996 168 0 $self->{'shutdown_timeout'} // 30
4006 167 1 $result // {"success", 1}
4024 240 9 $self->{'_listen_entries'} // []
4030 240 9 $self->{'_listen_entries'} // []
4039 240 9 $self->{'_listen_entries'} // []
4055 0 0 $shutdown_result->{'message'} // "Lifespan shutdown failed"
4067 249 0 $self->{'shutdown_timeout'} // 30
4204 264 0 $_[0]{'client_ip'} // "-"
4207 262 0 $_[0]{'timestamp'} // "-"
4210 5 0 $i->{'path'} // "/"
4213 5 0 $i->{'method'} // "-"
5 0 $i->{'http_version'} // "1.1"
4215 259 0 $_[0]{'method'} // "-"
4216 259 0 $_[0]{'path'} // "/"
4221 1 0 $_[0]{'http_version'} // "1.1"
4222 269 0 $_[0]{'status'} // "-"
4224 10 0 $_[0]{'size'} // 0
4227 2 0 $_[0]{'size'} // 0
4228 258 0 $_[0]{'duration'} // 0
4229 4 0 $_[0]{'duration'} // 0
4230 2 0 $_[0]{'duration'} // 0
4248 5 0 $self->{'listeners'} // []
4256 6 0 $self->{'listeners'} // []

or 3 conditions

line l !l&&r !l&&!r condition
2149 10 400 0 delete $params->{'on_error'} // sub { warn @_; }
2188 0 0 408 delete $params->{'validate_events'} // (($ENV{'PAGI_ENV'} // "") eq "development" ? 1 : 0)
2191 92 3 313 delete $params->{'http2'} // $ENV{'_PAGI_SERVER_HTTP2'}
2594 0 1 0 $self->{'bound_port'} //= $spec->{'port'}
2708 0 233 0 $self->{'bound_port'} //= $bound
2865 0 0 0 $self->{'bound_port'} //= $spec->{'bound_port'}
2919 0 0 0 $self->{'bound_port'} //= $spec->{'bound_port'}
2935 0 15 0 $self->{'bound_port'} //= $spec->{'bound_port'}
2999 15 0 0 $s->{'bound_port'} // $s->{'port'}
3696 2 0 0 $stream->write_handle // $stream->read_handle
4157 0 0 13 $pos >= $len or substr($format, $pos, 1) ne "i"
4243 233 0 2 $self->{'bound_port'} // $self->{'port'}