Branch Coverage

blib/lib/Atomic/Pipe.pm
Criterion Covered Total %
branch 136 228 59.6


line true false branch
20 36 0 if 'Errno'->can('ERESTART')
27 36 0 if ('POSIX'->can('PIPE_BUF') and eval { do { 4096 } }) { }
34 36 0 if ('POSIX'->can('SSIZE_MAX') and eval { do { 9223372036854775807 } }) { }
53 0 0 if ($can_thread and $] == 5.01 and $Atomic::Pipe::Config{'ccname'} eq 'gcc' and $Atomic::Pipe::Config{'gccversion'})
55 0 0 if $parts[0] > 4 or $parts[0] == 4 and $parts[1] >= 8
60 36 0 if (not $can_thread) { }
0 0 elsif ($INC{'threads.pm'}) { }
67 0 0 $INC{'threads.pm'} ? :
70 0 36 if ($^O eq 'MSWin32') { }
72 0 0 unless eval { do { require Win32::API; 1 } }
73 0 0 unless eval { do { require Win32API::File; 1 } }
104 3 0 @_ ? :
110 0 0 if @_
117 0 19067 if $self->{'invalid_state'}
119 0 19067 unless my $rh = $self->{'rh'}
121 30 19037 if $self->{'eof'}
130 0 19037 unless $to_read
135 29 19008 unless (defined $got)
136 29 0 if $! == 11
137 0 0 if $RETRY_ERRNO{0 + $!}
141 18998 10 if ($got) { }
162 18984 781209 unless ($self->{'in_buffer_size'} and $self->{'in_buffer_size'} >= $size)
164 3 18981 unless ($self->{'in_buffer_size'} >= $size)
165 1 2 unless $params{'eof_invalid'} and $self->{'eof'}
172 800174 16 if ($params{'remove'}) { }
186 3 38 if $self->{'invalid_state'}
188 3 35 if $self->fill_buffer
189 14 21 unless $self->{'eof'}
190 0 21 if $self->{'in_buffer_size'}
192 21 0 if (my $buffer = $self->{'mixed_buffer'})
193 7 14 if $buffer->{'lines'} or length $buffer->{'lines'}
194 0 14 if $buffer->{'burst'} or length $buffer->{'burst'}
205 2 2 if $mode == 0
206 2 0 if $mode == 1
226 0 7 unless -p $fifo
228 0 7 unless open my $fh, '+<', $fifo
238 0 6 unless -p $fifo
240 0 6 unless open my $fh, '>', $fifo
251 0 5 unless -p $ifh
256 0 5 unless open my $fh, $mode, $ifh
267 0 4 unless open my $fh, $mode, $fd
269 0 4 unless -p $fh
280 0 1 unless pipe $rh, $wh
295 0 35 unless pipe $rh, $wh
303 14 21 if ($mixed)
314 0 28 if $self->{'invalid_state'}
316 14 14 if $self->{'rh'}
343 1 23 if $self->{'eof'} and keys %{$$self{'state'}{'buffers'};} || keys %{$$self{'state'}{'parts'};}
345 59 42 if ($buffer->{'lines'} or length $buffer->{'lines'})
350 14 45 if $term
351 7 0 if $self->{'eof'} and not $self->{'in_buffer_size'} and defined $line and length $line
356 10 70 if ($buffer->{'in_message'})
359 0 10 unless (defined $id)
360 0 0 unless $self->{'eof'} and not $self->{'in_buffer_size'}
366 3 7 if defined $message
369 10 67 if ($buffer->{'strip_term'})
372 0 10 unless $term eq $postfix
376 18 59 if ($buffer->{'in_burst'})
379 10 6 if ($peek eq $key)
391 4 2 if ($term) { }
401 0 2 if $self->{'eof'}
404 31 30 unless ($self->{'in_buffer_size'} or $self->fill_buffer)
405 14 17 unless $self->{'eof'}
408 7 10 if $buffer->{'eof'}++
417 30 0 if defined $linedata
419 16 14 if ($buffer->{'in_burst'}) { }
462 0 0 if $ret == 0
477 0 0 $state ? :
486 0 19 unless my $rh = $self->{'rh'}
488 19 0 if @_
499 0 5 unless my $wh = $self->{'wh'}
501 0 5 unless @_
511 0 5 unless fcntl $wh, &Fcntl::F_GETFL, $flags
512 1 4 if ($val) { }
514 0 5 unless fcntl $wh, &Fcntl::F_SETFL, $flags
523 5 5 if ($self->{'rh'} and not $self->{'wh'}) { }
5 0 elsif ($self->{'wh'} and not $self->{'rh'}) { }
533 0 0 if $r and $w
534 0 0 unless $r or $w
540 0 0 unless defined &Fcntl::F_GETPIPE_SZ
549 0 3 unless defined &Fcntl::F_SETPIPE_SZ
558 0 0 unless -e '/proc/sys/fs/pipe-max-size'
560 0 0 unless open my $max, '<', '/proc/sys/fs/pipe-max-size'
575 4 0 if $self->{'rh'} and not $self->{'wh'}
581 4 0 if $self->{'wh'} and not $self->{'rh'}
588 0 3 unless open my $fh, '>&:raw', $self->{'wh'}
595 0 0 unless open my $fh, '<&:raw', $self->{'rh'}
602 0 0 unless $self->{'wh'}
604 0 0 unless $self->{'rh'}
613 0 1 unless $self->{'rh'}
615 0 1 unless $self->{'wh'}
623 10 0 if $self->{'wh'}
624 0 10 if $self->{'rh'}
632 0 34 if defined $_[0]{'delimiter_size'}
641 1 3 unless $size <= 4096
660 0 94 if $self->{'out_buffer'} and @{$self->{'out_buffer'};}
674 614127 684637 unless $blocking or defined $got
675 284579 400058 unless defined $got
687 0 1298763 unless my $wh = $self->{'wh'}
692 5 1298758 if length $prefix or length $postfix
698 898705 400058 if $! == 11 or $! == 28 and 0
699 0 400058 if not $wrote or $RETRY_ERRNO{0 + $!}
700 400058 0 if $wrote == $size
711 0 32 if defined $self->{'adjusted_dsize'}
731 100029 0 if $dtotal % $adjusted_dsize
736 16 100013 if ($parts == 1) { }
741 0 16 $message_key ? :
767 100039 1 if defined $id
778 400078 0 unless ($state->{'key'})
779 1 400077 unless my $key_bytes = $self->_get_from_buffer($psize)
793 300034 100043 $state->{'buffers'}{$tag} ? :
797 300035 100042 unless ($id == 0)
798 7 300028 if $params{'one_part_only'}
805 100041 1 unless $params{'debug'}