Condition Coverage

blib/lib/IO/Async/Channel.pm
Criterion Covered Total %
condition 33 51 64.7


and 3 conditions

line !l l&&!r l&&r condition
166 0 0 2 $self->{'mode'} and $self->{'mode'} eq "async"
383 28 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 98 $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 147 10 0 $DEFAULT_CODEC ||= do { my $HAVE_SEREAL = defined eval { do { require Sereal::Encoder; require Sereal::Decoder } }; $HAVE_SEREAL ? "Sereal" : "Storable" }
154 2 150 0 $params->{'codec'} //= _default_codec()
174 152 0 0 $self->can("_make_codec_$codec") || croak("Unrecognised codec name '${codec}'")
203 85 28 0 $encoder ||= "Sereal::Encoder"->new
204 40 71 0 $decoder ||= "Sereal::Decoder"->new
227 13 10 0 $SENDMETHODS{$mode} ||= $self->can("_send_$mode")
290 84 6 0 ref $self ? $self->{'encode'} : $default_encode ||= do { ($self->can('_make_codec_' . _default_codec())->())[0] }
343 106 12 0 $RECVMETHODS{$mode} ||= $self->can("_recv_$mode")
365 177 9 0 $CLOSEMETHODS{$mode} ||= $self->can("_close_$mode")
447 79 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 }