Branch Coverage

blib/lib/Atomic/Pipe.pm
Criterion Covered Total %
branch 147 238 61.7


line true false branch
20 37 0 if 'Errno'->can('ERESTART')
27 37 0 if ('POSIX'->can('PIPE_BUF') and eval { do { 4096 } }) { }
34 37 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 37 0 if (not $can_thread) { }
0 0 elsif ($INC{'threads.pm'}) { }
67 0 0 $INC{'threads.pm'} ? :
70 0 37 if ($^O eq 'MSWin32') { }
72 0 0 unless eval { do { require Win32::API; 1 } }
73 0 0 unless eval { do { require Win32API::File; 1 } }
105 3 0 @_ ? :
111 0 0 if @_
118 0 19149 if $self->{'invalid_state'}
120 0 19149 unless my $rh = $self->{'rh'}
122 30 19119 if $self->{'eof'}
131 0 19119 unless $to_read
136 29 19090 unless (defined $got)
137 29 0 if $! == 11
138 0 0 if $RETRY_ERRNO{0 + $!}
142 19080 10 if ($got) { }
163 19066 781127 unless ($self->{'in_buffer_size'} and $self->{'in_buffer_size'} >= $size)
165 3 19063 unless ($self->{'in_buffer_size'} >= $size)
166 1 2 unless $params{'eof_invalid'} and $self->{'eof'}
173 800174 16 if ($params{'remove'}) { }
187 3 38 if $self->{'invalid_state'}
189 3 35 if $self->fill_buffer
190 14 21 unless $self->{'eof'}
191 0 21 if $self->{'in_buffer_size'}
193 21 0 if (my $buffer = $self->{'mixed_buffer'})
194 7 14 if $buffer->{'lines'} or length $buffer->{'lines'}
195 0 14 if $buffer->{'burst'} or length $buffer->{'burst'}
206 2 2 if $mode == 0
207 2 0 if $mode == 1
227 0 7 unless -p $fifo
229 0 7 unless open my $fh, '+<', $fifo
239 0 6 unless -p $fifo
241 0 6 unless open my $fh, '>', $fifo
252 0 5 unless -p $ifh
257 0 5 unless open my $fh, $mode, $ifh
268 0 4 unless open my $fh, $mode, $fd
270 0 4 unless -p $fh
281 0 1 unless pipe $rh, $wh
296 0 36 unless pipe $rh, $wh
304 14 22 if ($mixed)
315 0 28 if $self->{'invalid_state'}
317 14 14 if $self->{'rh'}
344 1 23 if $self->{'eof'} and keys %{$$self{'state'}{'buffers'};} || keys %{$$self{'state'}{'parts'};}
346 59 42 if ($buffer->{'lines'} or length $buffer->{'lines'})
351 14 45 if $term
352 7 0 if $self->{'eof'} and not $self->{'in_buffer_size'} and defined $line and length $line
357 10 70 if ($buffer->{'in_message'})
360 0 10 unless (defined $id)
361 0 0 unless $self->{'eof'} and not $self->{'in_buffer_size'}
367 3 7 if defined $message
370 10 67 if ($buffer->{'strip_term'})
373 0 10 unless $term eq $postfix
377 18 59 if ($buffer->{'in_burst'})
380 10 6 if ($peek eq $key)
392 4 2 if ($term) { }
402 0 2 if $self->{'eof'}
405 31 30 unless ($self->{'in_buffer_size'} or $self->fill_buffer)
406 14 17 unless $self->{'eof'}
409 7 10 if $buffer->{'eof'}++
418 30 0 if defined $linedata
420 16 14 if ($buffer->{'in_burst'}) { }
463 0 0 if $ret == 0
478 0 0 $state ? :
487 0 19 unless my $rh = $self->{'rh'}
489 19 0 if @_
500 0 5 unless my $wh = $self->{'wh'}
502 0 5 unless @_
512 0 5 unless fcntl $wh, &Fcntl::F_GETFL, $flags
513 1 4 if ($val) { }
515 0 5 unless fcntl $wh, &Fcntl::F_SETFL, $flags
524 5 5 if ($self->{'rh'} and not $self->{'wh'}) { }
5 0 elsif ($self->{'wh'} and not $self->{'rh'}) { }
534 0 0 if $r and $w
535 0 0 unless $r or $w
541 0 0 unless defined &Fcntl::F_GETPIPE_SZ
550 0 3 unless defined &Fcntl::F_SETPIPE_SZ
559 0 0 unless -e '/proc/sys/fs/pipe-max-size'
561 0 0 unless open my $max, '<', '/proc/sys/fs/pipe-max-size'
576 4 0 if $self->{'rh'} and not $self->{'wh'}
582 4 0 if $self->{'wh'} and not $self->{'rh'}
589 0 3 unless open my $fh, '>&:raw', $self->{'wh'}
596 0 0 unless open my $fh, '<&:raw', $self->{'rh'}
603 0 0 unless $self->{'wh'}
605 0 0 unless $self->{'rh'}
614 0 1 unless $self->{'rh'}
616 0 1 unless $self->{'wh'}
624 10 1 if $self->{'wh'}
625 1 10 if $self->{'rh'}
633 0 35 if defined $_[0]{'delimiter_size'}
642 1 7 unless $size <= 4096
661 0 95 if $self->{'hit_epipe'}
662 0 95 if $self->pending_output
667 65 32 unless my $buffer = $self->{'out_buffer'}
668 31 1 unless @$buffer
683 584223 638729 unless $blocking or defined $got
684 238671 400058 unless defined $got
696 0 1222953 unless my $wh = $self->{'wh'}
698 1 1222952 if $self->{'hit_epipe'}
703 5 1222947 if length $prefix or length $postfix
709 1 1222951 if ($! == 32 or 0)
714 822893 400058 if $! == 11 or 0
715 0 400058 if not $wrote or $RETRY_ERRNO{0 + $!}
716 400058 0 if $wrote == $size
727 0 32 if defined $self->{'adjusted_dsize'}
747 100029 0 if $dtotal % $adjusted_dsize
752 16 100013 if ($parts == 1) { }
757 0 16 $message_key ? :
783 100039 1 if defined $id
794 400078 0 unless ($state->{'key'})
795 1 400077 unless my $key_bytes = $self->_get_from_buffer($psize)
809 300034 100043 $state->{'buffers'}{$tag} ? :
813 300035 100042 unless ($id == 0)
814 7 300028 if $params{'one_part_only'}
821 100041 1 unless $params{'debug'}