Branch Coverage

blib/lib/Ryu/Source.pm
Criterion Covered Total %
branch 175 310 56.4


line true false branch
248 0 0 ref $class ? :
249 0 0 if (my $from_class = &Scalar::Util::blessed($_[0])) { }
0 0 elsif (my $ref = ref $_[0]) { }
250 0 0 if ($from_class->isa('Future')) { }
253 0 0 if ($f->failure) { }
0 0 elsif (not $f->is_cancelled) { }
267 0 0 if ($ref eq 'ARRAY') { }
0 0 elsif ($ref eq 'GLOB') { }
274 0 0 if (my $fh = *{$_[0];}{'IO'}) { }
424 0 0 if ($args{'continuous'}) { }
426 0 0 if length $in < 16
437 0 0 if $args{'continuous'} and length $in < 16
519 4 3 !ref($code) ? :
3 7 &Scalar::Util::blessed($_) ? :
550 0 5 unless (XXX)
561 0 9 unless my $src = $weak_sauce
566 0 5 unless my $src = $weak_sauce
569 2 3 if ($f->is_failed)
572 2 0 unless $src->is_ready
577 2 1 unless %{$src->{'waiting'};}
584 0 7 unless my $src = $weak_sauce
587 3 4 if (XXX) { }
4 0 elsif (&Scalar::Util::blessed($item) and $item->isa('Ryu::Source')) { }
590 0 9 if $src->is_ready
596 1 1 if $item->is_ready
602 0 5 unless my $src = $weak_sauce
644 0 0 unless $size and $size > 0
668 0 1 unless $size and $size > 0
679 0 1 if @batch
771 0 0 unless $src->_completed->is_ready
797 2 1 @_ != 1 ? :
811 1 0 unless $src->_completed->is_ready or @pending
818 0 17 unless my $src = $weak_src
819 2 4 if (@pending >= $args{'high'} and $self and not $self->is_paused($src))
826 17 0 if ($self)
827 2 15 if @pending < $args{'low'} and $self->is_paused($src)
832 0 0 if $self->_completed->is_ready and not @pending and not $src->_completed->is_ready
845 0 1 if @pending
848 0 1 unless $src->is_ready
970 1 1 if $low and $self->size <= $low
977 0 6 unless my $src = $weak_sauce
978 1 5 unless (my $buf = $weak_buffer)
983 1 4 if $high and $buf->size >= $high
984 2 3 if $low and $buf->size <= $low
1003 0 1 if &Scalar::Util::blessed($sources[-1])
1007 1 0 if ref $self
1015 4 1 if @sources == keys %seen
1022 0 0 if $combined->_completed->is_ready
1053 0 0 if &Scalar::Util::blessed($sources[-1])
1062 0 0 if $combined->_completed->is_ready
1068 0 0 if keys %seen
1073 0 0 if $combined->is_ready
1093 4 0 if ref $self
1096 0 16 if $combined->_completed->is_ready
1128 0 5 if $self->_completed->is_ready
1197 1 5 if (not defined $v) { }
2 3 elsif ($k eq $data) { }
1205 0 3 &Scalar::Util::blessed($rslt) && $rslt->isa('Future') ? :
1250 1 4 unless %pending or $src_completed->is_ready
1257 2 1 if $_ and not $_->is_ready
1267 1 4 if $high and keys %pending >= $high and not $src->is_paused
1274 1 0 unless $src_completed->is_ready
1277 1 3 if $low and keys %pending <= $low and $src->is_paused
1279 6 6 if %pending
1280 2 4 if $all_finished and not $src_completed->is_ready
1324 17 5 if (defined $_) { }
1325 7 10 unless $seen{$_}++
1327 1 4 unless $undef++
1345 17 1 if ($active) { }
1346 10 7 if (defined $prev ^ defined $_) { }
5 2 elsif (defined $_) { }
1349 3 2 if $prev ne $_
1376 0 0 if $src->is_ready
1384 0 0 unless $f->is_done
1407 0 0 unless (shift())->is_done
1430 0 0 unless (shift())->is_done
1452 0 0 unless (shift())->is_done
1491 0 1 if $src->is_ready
1495 3 2 unless $count-- > 0
1512 0 1 if $src->is_ready
1518 3 2 if @pending > $count
1541 1 1 if (ref $condition eq 'CODE') { }
1 0 elsif (&Scalar::Util::blessed($condition) and $condition->isa('Future')) { }
1543 3 2 if $reached ||= &$condition($_)
1547 0 1 if $src->is_ready
1548 0 1 if $cond->is_failed
1549 0 1 if $cond->is_cancelled
1551 2 2 if $condition->is_done
1580 0 0 if (&Scalar::Util::blessed($condition) and $condition->isa('Ryu::Source')) { }
1583 0 0 if $src->is_ready
1588 0 0 unless $src->is_ready
1593 0 0 if (ref $condition eq 'CODE') { }
0 0 elsif (&Scalar::Util::blessed($condition) and $condition->isa('Future')) { }
1595 0 0 unless $reached ||= &$condition($_)
1599 0 0 if $src->is_ready
1600 0 0 if $cond->is_failed
1601 0 0 if $cond->is_cancelled
1603 0 0 unless $condition->is_done
1623 0 2 unless $count > 0
1629 3 2 if --$count
1671 1 0 if $sf->is_ready
1673 0 0 unless $f->is_done
1678 0 4 if $src->_completed->is_ready
1679 3 1 unless &$code($_)
1698 0 1 if $src->_completed->is_ready
1703 0 5 if $src->_completed->is_ready
1704 5 0 if &$code($_)
1724 0 2 unless (shift())->is_done
1744 0 1 unless (shift())->is_done
1780 6 2 if defined $max and $max > $_
1800 4 4 if defined $min and $min < $_
1842 0 9 if $_ < $min
1843 8 1 if $_ > $max
1882 37 14 if (my $ref = ref $args{$k}) { }
1883 15 22 if ($ref eq 'Regexp') { }
12 10 elsif ($ref eq 'ARRAY') { }
10 0 elsif ($ref eq 'CODE') { }
1884 8 7 unless defined $v and $v =~ /$args{$k}/
1886 7 5 unless defined $v and &List::Util::any(sub { $v eq $_; } , @{$args{$k};})
1893 1 13 unless defined $v
1900 15 36 if (&Scalar::Util::blessed($item)) { }
36 0 elsif (my $ref = ref $item) { }
1903 9 6 unless &$check($k, $v)
1906 36 0 if ($ref eq 'HASH') { }
1909 21 15 unless &$check($k, $v)
1919 10 2 @_ > 1 ? :
1921 2 0 if (my $ref = ref $code)
1922 0 2 if ($ref eq 'Regexp') { }
2 0 elsif ($ref eq 'CODE') { }
1933 3 1 if &$code($item)
1951 0 0 unless &Scalar::Util::blessed($item)
1952 0 0 if grep $item->isa($_), @isa
1965 7 412 unless $self->{'on_item'}
31 388 unless my(@handlers) = @{[] unless $self->{'on_item'};}
1967 0 420 if $completion->is_ready
2022 85 3 unless $self->{'cancel_on_ready'}
2023 39 49 if $self->parent
2031 39 0 if (&List::UtilsBy::extract_by(sub { $addr == &Scalar::Util::refaddr($_); } , \@{$$self{'children'};}))
2037 32 7 if $self->is_ready
2038 0 7 if @{$self->{'children'};}
2091 0 3 unless $self->{'on_item'}
2096 1 2 unless $f->is_ready
2107 32 3 unless $_[0]->_completed->is_ready
2137 0 0 if defined wantarray
2138 0 0 if (my $parent = $self->parent)
2169 0 197 if $self->{'on_get'}
2170 132 65 unless my $parent = $self->parent
2171 0 65 unless my $code = $parent->can('prepare_await')
2184 59 1 if (my $class = ref $self) { }
2213 4 24 if exists $args{'cleanup'}
2216 19 9 unless $src->is_ready
2239 0 0 if $src->is_ready
2249 0 88 if ${^GLOBAL_PHASE} eq 'DESTRUCT'
2251 5 83 unless $self->_completed->is_ready
2260 0 0 if (&Scalar::Util::blessed($sub) and $sub->isa('Ryu::Source')) { }