Branch Coverage

blib/lib/Protocol/HTTP2/Stream.pm
Criterion Covered Total %
branch 89 128 69.5


line true false branch
13 0 19 if $self->goaway
16 19 0 $self->{'type'} == 1 ? :
2 17 if exists $self->{'streams'}{$self->{'type'} == 1 ? 1 : 2}
30 0 21 $stream_id < $self->{'last_peer_stream'} || $stream_id % 2 == ($self->{'type'} == 1) ? :
0 21 if ($stream_id < $self->{'last_peer_stream'} || $stream_id % 2 == ($self->{'type'} == 1) ? 1 : $self->goaway)
39 0 21 if ($self->dec_setting(3) <= $self->{'active_peer_streams'})
56 13 8 if exists $self->{'on_new_peer_stream'}
63 14 62 unless exists $self->{'streams'}{$stream_id}
73 0 67 unless exists $self->{'streams'}{$stream_id}
76 67 0 if (@_)
79 1 66 if ($pending) { }
84 0 66 if exists $self->{'on_change_state'}
89 28 38 if (exists $s->{'cb'} and exists $s->{'cb'}{$s->{'state'}})
96 28 38 if ($new_state == 5)
99 13 15 if $self->{'active_peer_streams'} and $stream_id % 2 ^ $self->{'type'} == 1
103 140 106 if grep {$key eq $_;} 'state', 'weight', 'stream_dep', 'fcw_recv', 'fcw_send'
119 0 136 unless exists $self->{'streams'}{$stream_id}
121 2 134 if (@_)
124 1 1 defined $s->{'pending_state'} ? :
132 0 134 unless exists $self->{'streams'}{$stream_id}
134 0 134 if @_
141 0 29 unless exists $self->{'streams'}{$stream_id}
149 0 10 unless exists $self->{'streams'}{$stream_id}
157 0 48 unless exists $self->{'streams'}{$stream_id}
160 23 25 if (@_)
163 5 18 if (exists $s->{'frame_cb'} and exists $s->{'frame_cb'}{&DATA}) { }
180 0 30 unless exists $self->{'streams'}{$stream_id}
183 30 0 if @_
191 0 28 unless exists $self->{'streams'}{$stream_id}
192 0 28 if @_
199 0 0 unless exists $self->{'streams'}{$stream_id}
207 0 6 unless exists $self->{'streams'}{$stream_id}
208 2 4 if @_
215 0 30 unless exists $self->{'streams'}{$stream_id}
224 0 30 unless defined $res
233 0 30 unless $self->validate_headers($eh, $stream_id, $is_response)
235 0 30 if ($s->{'promised_sid'}) { }
243 5 25 if (exists $s->{'frame_cb'} and exists $s->{'frame_cb'}{&HEADERS})
259 15 15 $is_response ? :
265 75 53 if ($h =~ /^\:/)
266 0 75 if (not $pseudo_flag) { }
0 75 elsif (not grep({$_ eq $h;} @h)) { }
0 75 elsif (exists $pseudo_hash{$h}) { }
287 25 28 if $pseudo_flag
289 0 53 if ($h eq 'connection') { }
0 53 elsif ($h eq 'te' and $v ne 'trailers') { }
2 51 elsif ($h eq 'content-length') { }
305 75 0 if exists $pseudo_hash{$h}
326 0 91 unless exists $self->{'streams'}{$stream_id}
329 60 31 if (@_)
356 0 27 unless my $s = $self->{'streams'}{$stream_id}
358 1 26 if @_
364 0 3 unless my $s = $self->{'streams'}{$stream_id}
366 1 2 if (length $s->{'blocked_data'} and $self->stream_fcw_send($stream_id) != 0)
375 0 2 unless exists $self->{'streams'}{$stream_id}
378 2 0 if defined $weight
384 0 36 unless exists $self->{'streams'}{$stream_id}
387 10 26 if defined $end_flag
393 0 7 unless exists $self->{'streams'}{$stream_id}
396 4 3 if ($s->{$stream_id}{'stream_dep'} != $stream_dep)
399 4 0 if ($stream_dep != 0)
402 4 1 unless $sid == $stream_id
415 1 6 if ($exclusive)
420 1 2 if $s->{$sid}{'stream_dep'} != $stream_dep or $sid == $stream_id