Branch Coverage

blib/lib/Devel/MAT/Tool/Future.pm
Criterion Covered Total %
branch 65 108 60.1


line true false branch
39 2 0 if eval { do { $pmat->find_symbol("%Future::") } }
53 2 0 if (my $isaav = $self->pmat->find_symbol("\@Future::ISA"))
56 0 2 if ($superclass eq 'Future::XS') { }
2 0 elsif ($superclass eq 'Future::PP') { }
66 0 2 unless (defined $future_is_xs)
78 222 221971 if $count % 1000 == 0
81 221374 819 unless $sv->type eq "STASH"
92 222 221971 if $count % 1000 == 0
95 221776 417 unless my $pkg = $sv->blessed
97 9 408 if $classes{$pkg->stashname}
111 0 4 unless $sv->is_future
124 0 1 unless @result
125 1 0 if @result
126 1 0 if @result > 1
133 1 3 if ($(Syntax::Keyword::Match/topic) eq 'done') { }
1 2 elsif ($(Syntax::Keyword::Match/topic) eq 'failed') { }
136 0 1 unless @failure
137 1 0 if (@failure)
138 1 0 defined $failure[0]->pv ? :
141 0 1 if @failure > 1
189 380 822 unless ref $pkg
199 0 817 if $pkg->stashname eq "Future"
201 444 373 unless my $isagv = $pkg->value("ISA")
202 0 373 unless my $isaav = $isagv->array
205 1 378 if $self->class_is_future($superclass->pv)
244 0 0 unless $sv->basetype eq "SV"
246 0 0 unless my $ref = $sv->maybe_outref_named("the FutureXS structure")
264 0 24 unless $sv->is_future
266 0 24 if ($sv->_future_is_xs) { }
269 0 0 if ($struct->field_named('cancelled')) { }
0 0 elsif ($struct->maybe_field_named('the failure AV')) { }
0 0 elsif ($struct->field_named('ready')) { }
283 0 24 unless $sv->type eq "HASH"
287 6 18 if ($tmp = $sv->value('cancelled') and $tmp->uv) { }
6 12 elsif ($tmp = $sv->value('failure')) { }
6 6 elsif ($tmp = $sv->value('ready') and $tmp->uv) { }
314 0 2 unless $sv->is_future
316 0 2 if ($sv->_future_is_xs) { }
322 0 2 unless $sv->type eq "HASH"
341 0 2 unless $sv->is_future
343 0 2 if ($sv->_future_is_xs) { }
349 0 2 unless $sv->type eq "HASH"
361 0 0 unless $self->is_future($sv)
435 444528 16 unless $sv->is_future
439 12 4 if %only and not $only{$state}
449 0 1 unless @result
450 1 0 if @result
451 1 0 if @result > 1
453 1 3 if ($(Syntax::Keyword::Match/topic) eq 'done') { }
1 2 elsif ($(Syntax::Keyword::Match/topic) eq 'failed') { }
455 0 1 unless @failure
456 1 0 if (@failure)
457 1 0 defined $failure[0]->pv ? :
460 0 1 if @failure > 1