Branch Coverage

lib/Mojo/IOLoop/ReadWriteProcess.pm
Criterion Covered Total %
branch 190 230 82.6


line true false branch
67 202 174 if ref $_[1] eq "CODE"
6 40 if ref $_[1] eq "CODE"
73 3 23 unless $self->read_stream
17 29 unless $self->read_stream
79 0 1 unless $$ == $me
19 27 unless $$ == $me
80 0 1 unless defined $self->_status
24 21 unless defined $self->_status
101 3 0 if $self->verbose
16 0 if $self->verbose
107 0 23 unless $self
16 0 unless $self
109 23 0 unless defined $self->_status
0 0 unless defined $self->_status
127 21 20 $self->separate_err ? :
129 7 33 unless defined $pid
134 2 31 unless $self->set_pipes
138 19 12 $self->separate_err ? :
145 8 451 if $_[0]->pidfile
155 2 60 unless defined $self->_status
156 1 10 if $self->execute
157 4 6 if $self->code
166 1 226 unless $self
173 226 0 unless defined $self->_status
177 168 58 if ($self->_internal_return)
178 0 173 $self->_internal_return->isa('IO::Pipe::End') ? :
182 0 173 unless "IO::Select"->new($return_reader)->can_read(10)
188 149 23 $rt ? :
2 171 $self->serialize ? :
192 169 57 if ($self->_internal_err)
193 6 168 $self->_internal_err->isa('IO::Pipe::End') ? :
197 1 173 unless "IO::Select"->new($internal_err_reader)->can_read(10)
202 58 115 if @result_error
215 7 206 unless ref $code eq "CODE"
224 172 51 if ($self->set_pipes)
225 2 172 unless $input_pipe = "IO::Pipe"->new
227 19 155 unless $output_pipe = "IO::Pipe"->new
229 2 170 unless $output_err_pipe = "IO::Pipe"->new
231 157 15 if ($self->channels)
232 2 170 unless $channel_in = "IO::Pipe"->new
234 6 166 unless $channel_out = "IO::Pipe"->new
238 206 15 if ($self->internal_pipes)
239 2 217 unless my $internal_err = "IO::Pipe"->new
241 2 217 unless my $internal_return = "IO::Pipe"->new
256 15 208 unless defined $pid
258 20 186 if ($pid == 0)
265 20 0 if ($self->internal_pipes)
266 19 1 if ($self->_internal_err)
267 0 19 $self->_internal_err->isa('IO::Pipe::End') ? :
274 19 1 if ($self->_internal_return) { }
275 0 19 $self->_internal_return->isa('IO::Pipe::End') ? :
287 19 1 if ($self->set_pipes)
292 18 1 if $output_pipe
293 17 1 $output_err_pipe ? :
1 18 !$self->separate_err ? :
297 18 1 if $input_pipe
298 0 18 unless open STDERR, ">&", $stderr or not !$internal_err->write($!)
301 0 18 unless open STDOUT, ">&", $stdout or not !$internal_err->write($!)
304 0 18 unless open STDIN, ">&", $stdin or not !$internal_err->write($!)
311 18 0 if ($self->channels)
313 18 0 if $channel_in
314 18 0 if $channel_out
327 0 0 if ($internal_err)
328 0 0 if $@
329 0 0 if not $@ and $!
331 0 0 if not $self->serialize and ref $rt eq "ARRAY" and scalar @$rt == 1
333 0 0 if $self->serialize and $return
335 0 0 if $return
340 48 138 unless $self->set_pipes
342 137 1 if $output_pipe
343 131 1 $output_err_pipe ? :
6 132 !$self->separate_err ? :
346 137 1 if $input_pipe
348 138 0 if ($self->set_pipes)
349 138 0 if ($self->channels)
350 137 1 if $channel_in
351 137 1 if $channel_out
385 8 19 !!@{(shift())->error;} ? :
388 2 20 $st & 128 ? :
391 33 16 defined $_[0]->_status ? :
3 49 defined $_[0]->_status && $_[0]->quirkiness ? :
397 17 28 $_[0]->is_running ? :
403 1192 273 $self->process_id ? :
408 43 233 if $pidfile
409 18 224 unless $self->pid
410 219 19 unless $self->pidfile
419 1 54 unless $stream
424 22 108 unless "IO::Select"->new($_[0])->can_read(10)
429 28 25 unless "IO::Select"->new($_[0])->can_read(10)
430 2 4 wantarray ? :
455 1 7 unless $_[0]->separate_err
461 0 15 unless $_[0]->separate_err
467 0 266 if $self->is_running
468 3 218 if not $self->execute and not $self->code
473 6 46 ref $self->args eq 'ARRAY' ? :
52 206 defined $self->args ? :
477 45 213 if $self->subreaper
486 246 1 if $old_emit_from_sigchld
489 218 40 if ($self->code) { }
40 0 elsif ($self->execute) { }
507 28 223 unless $self->kill_whole_group or $self->is_running
517 3 232 unless defined $pid
518 179 52 unless $self->is_running
527 6 54 if $self->kill_whole_group
538 222 14 if ($send_signal)
543 38 198 if $ret == $pid or $ret == -1
545 231 5 if ($sleep_time)
550 33 22 if defined $self->_status
552 22 0 if $self->kill_sleeptime
554 16 6 if ($self->blocking_stop) { }
561 15 1 if $ret == $pid or $ret == -1
573 0 225 unless $self->pid
581 63 162 if $wait and not defined $self->_status
583 71 146 unless defined $self->_status
585 82 132 if $self->error and $self->error->size > 0