Condition Coverage

blib/lib/IO/Async/Channel.pm
Criterion Covered Total %
condition 31 48 64.5


and 3 conditions

line !l l&&!r l&&r condition
166 0 0 2 $self->{'mode'} and $self->{'mode'} eq 'async'
383 20 2 0 defined $_ and $_->blocking(1)
436 140 140 0 exists $args{$_} and $self->{$_} = delete $args{$_}
440 140 140 0 defined $_ and $_->blocking(0)
486 2 2 100 $f and not $f->is_cancelled
490 1 0 3 $f and not $f->is_cancelled
505 6 4 0 $_ and $_->close

or 3 conditions

line l !l&&r !l&&!r condition
142 145 8 0 $DEFAULT_CODEC ||= do { my $HAVE_SEREAL = defined eval { do { require Sereal::Encoder; require Sereal::Decoder } }; $HAVE_SEREAL ? 'Sereal' : 'Storable' }
174 148 0 0 $self->can("_make_codec_$codec") || croak("Unrecognised codec name '${codec}'")
203 87 26 0 $encoder ||= 'Sereal::Encoder'->new
204 41 69 0 $decoder ||= 'Sereal::Decoder'->new
227 13 8 0 $SENDMETHODS{$mode} ||= $self->can("_send_$mode")
290 86 6 0 ref $self ? $self->{'encode'} : $default_encode ||= do { ($self->can('_make_codec_' . _default_codec())->())[0] }
343 105 10 0 $RECVMETHODS{$mode} ||= $self->can("_recv_$mode")
365 175 7 0 $CLOSEMETHODS{$mode} ||= $self->can("_close_$mode")
447 83 128 0 $self->{'stream'} ||= do { $self->{'on_result_queue'} = []; my $stream = 'IO::Async::Stream'->new('read_handle', $self->{'read_handle'}, 'write_handle', $self->{'write_handle'}, 'autoflush', 1, 'on_read', $self->_capture_weakself('_on_stream_read')); $self->add_child($stream); $stream }