Branch Coverage

blib/lib/IO/Async/Process.pm
Criterion Covered Total %
branch 121 152 79.6


line true false branch
294 354 196 if exists $params{$_}
301 742 1191 if exists $params{$_}
304 0 275 if ($self->is_running)
305 0 0 if keys %setup_params
309 207 68 exists $setup_params{'code'} ? :
147 128 exists $setup_params{'command'} ? :
0 275 unless defined(exists $setup_params{'code'} ? $setup_params{'code'} : $self->{'code'}) + defined(exists $setup_params{'command'} ? $setup_params{'command'} : $self->{'command'}) <= 1
313 508 317 if exists $setup_params{$_}
316 32 243 if $setup_params{'stdin'}
317 132 143 if $setup_params{'stdout'}
318 53 222 if $setup_params{'stderr'}
320 9 266 if $setup_params{'stdio'}
324 0 8 unless my($fd) = /^fd(\d+)$/
349 0 234 if $self->is_running
351 9 225 if ($fd eq 'io') { }
172 53 elsif ($fd == 0 or $fd == 1) { }
355 0 172 if exists $self->{'fd_opts'}{'io'}
363 32 202 if (my $via_name = delete $args{'via'})
364 0 32 if defined $via
367 0 32 unless $via = $via_names{$via_name}
371 10 224 if (my $on_read = delete $args{'on_read'}) { }
171 53 elsif (my $into = delete $args{'into'}) { }
379 146 90 if $eof
386 23 211 if (defined(my $from = delete $args{'from'}))
392 4 230 if (defined $via and $via == 4)
396 0 234 if keys %args
398 202 32 if (not defined $via) { }
10 22 elsif ($via == 1) { }
15 7 elsif ($via == 2) { }
7 0 elsif ($via == 3 or $via == 4) { }
399 179 23 if $wants_read and not $wants_write
400 21 181 if not $wants_read and $wants_write
401 2 200 if $wants_read and $wants_write
404 0 10 if $wants_write
407 0 15 if $wants_read
416 0 234 if $via == 3 and $fd ne "io"
419 234 0 if defined $via
440 9 225 $fd eq 'io' ? :
443 189 45 if ($via == 1) { }
36 9 elsif ($via == 2) { }
5 4 elsif ($via == 3) { }
4 0 elsif ($via == 4) { }
444 0 189 unless my($myfd, $childfd) = "IO::Async::OS"->pipepair
453 0 36 unless my($childfd, $myfd) = "IO::Async::OS"->pipepair
463 0 5 unless $key eq "stdio"
466 0 5 unless my($myread, $childwrite) = "IO::Async::OS"->pipepair
467 0 5 unless my($childread, $mywrite) = "IO::Async::OS"->pipepair
477 0 4 unless my($myfd, $childfd) = "IO::Async::OS"->socketpair($opts->{'family'}, $opts->{'socktype'})
480 1 3 if $opts->{'prefork'}
484 4 0 if ($key eq 'stdio') { }
498 198 36 unless ($write_only)
512 0 115 unless $self->{'code'} or $self->{'command'}
514 1 274 unless $self->can_event("on_finish")
518 77 197 if $self->{'setup'}
536 190 47 if $self
537 190 47 unless $exit_future->is_cancelled
552 0 190 unless my $self = shift()
554 95 95 $dollarbang ? :
12 178 $dollarat ? :
564 103 87 $is_code ? :
177 13 if ($is_code ? $dollarat eq '' : $dollarbang == 0) { }
568 4 9 unless $self->maybe_invoke_event("on_exception", $dollarat, $dollarbang, $exitcode)
583 233 1 if $self->{'_finish_future'}
589 0 12 if (length(my $name = $self->SUPER::notifier_name))
593 4 8 unless my $pid = $self->pid
594 4 4 unless $self->is_running
648 0 4 unless CORE::kill $signal, $self->pid
677 102 0 defined $self->{'exitcode'} ? :
692 102 0 defined $self->{'exitcode'} ? :
765 0 234 unless my $opts = $self->{'fd_opts'}{$fd}
769 1 233 if (defined $opts->{'socktype'} and 'IO::Async::OS'->getsocktypebyname($opts->{'socktype'}) != 1) { }
783 9 0 $fd eq 'io' ? :
53 9 $fd eq '2' ? :
136 62 $fd eq '1' ? :
36 198 $fd eq '0' ? :
786 23 211 if (defined $opts->{'from'})