Condition Coverage

blib/lib/PAGI/WebSocket.pm
Criterion Covered Total %
condition 58 69 84.0


and 3 conditions

line !l l&&!r l&&r condition
16 1 1 145 $scope and ref $scope eq "HASH"
18 1 1 143 $receive and ref $receive eq "CODE"
20 1 1 141 $send and ref $send eq "CODE"
235 4 1 11 builtin::blessed($r) and $r->isa("Future")
289 6 0 2 builtin::blessed($r) and $r->isa("Future")
595 4 0 1 builtin::blessed($r) and $r->isa("Future")

or 2 conditions

line l !l condition
23 141 0 $scope->{'type'} // ""
53 18 1 +(shift())->{'scope'}{'query_string'} // ""
54 1 1 +(shift())->{'scope'}{'scheme'} // "ws"
55 2 1 +(shift())->{'scope'}{'http_version'} // "1.1"
56 2 1 +(shift())->{'scope'}{'subprotocols'} // []
64 4 2 $self->{'scope'}{'state'} // {}
71 1 1 $self->{'scope'}{'path_params'} // {}
76 5 1 $self->{'scope'}{'path_params'} // {}
102 1 31 delete $opts{'strict'} // 0
103 6 26 delete $opts{'raw'} // 0
115 29 0 $key //= ""
116 28 1 $val //= ""
156 4 0 $self->{'scope'}{'headers'} // []
170 2 0 $self->{'scope'}{'headers'} // []
209 50 1 $code // 1005
210 50 1 $reason // ""
327 3 13 $code //= 1000
328 3 13 $reason //= ""
475 22 8 $event->{'code'} // 1005
476 7 23 $event->{'reason'} // ""
613 6 0 $interval //= 0

or 3 conditions

line l !l&&r !l&&!r condition
52 1 0 1 $s->{'scope'}{'raw_path'} // $s->{'scope'}{'path'}
473 0 30 78 not defined $event or $event->{'type'} eq "websocket.disconnect"
589 7 0 0 $event->{'text'} // $event->{'bytes'}