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 }