Branch Coverage

blib/lib/POSIX/Open3.pm
Criterion Covered Total %
branch 58 114 50.8


line true false branch
179 0 77 unless defined $pid
184 0 226 unless pipe $_[0], $_[1]
188 0 0 unless pipe $_[0], $_[1]
193 0 11 unless my $flags = fcntl($_[0], &Fcntl::F_GETFD, 0)
195 0 11 unless fcntl $_[0], &Fcntl::F_SETFD, $flags | &Fcntl::FD_CLOEXEC
203 0 1 unless open $_[0], $_[1]
207 0 151 $_[0] =~ /\A=?(\d+)\z/ ? :
215 0 9 if $_[0] =~ /\A=?(\d+)\z/
226 0 77 if (@cmd > 1 and $cmd[0] eq '-')
234 0 77 unless (eval { do { $dad_wtr = $_[1] = gensym unless defined $dad_wtr and length $dad_wtr; $dad_rdr = $_[2] = gensym unless defined $dad_rdr and length $dad_rdr; 1 } })
235 0 77 unless defined $dad_wtr and length $dad_wtr
236 0 77 unless defined $dad_rdr and length $dad_rdr
251 77 0 unless fh_is_fd($dad_wtr)
252 77 0 unless fh_is_fd($dad_rdr)
253 77 0 unless fh_is_fd($dad_err)
259 68 9 unless $dup_wtr
260 54 23 unless $dup_rdr
261 27 50 if not $dup_err and $dad_err ne $dad_rdr
268 11 66 if ($kidpid == 0) { }
274 0 11 if (under_windows)
284 1 4 if ($dad_rdr ne $dad_err and $dup_err and xfileno($dad_err) == fileno STDOUT)
291 1 10 if ($dup_wtr) { }
292 0 1 if (under_windows) { }
293 0 0 if fileno STDIN != xfileno($dad_wtr)
295 1 0 if 0 != xfileno($dad_wtr)
300 0 10 if (under_windows) { }
306 4 7 if ($dup_rdr) { }
307 0 4 if (under_windows) { }
308 0 0 if fileno STDOUT != xfileno($dad_rdr)
310 0 4 if 1 != xfileno($dad_rdr)
314 0 7 if (under_windows) { }
320 5 6 if ($dad_rdr ne $dad_err) { }
321 1 4 if ($dup_err) { }
325 0 1 if (under_windows) { }
326 0 0 if fileno STDERR != xfileno($dad_err)
329 1 0 if 2 != xfileno($dad_err)
334 0 4 if (under_windows) { }
341 6 0 if (fileno STDERR != fileno STDOUT)
342 0 6 if (under_windows) { }
349 0 11 if $cmd[0] eq '-'
350 0 0 unless (exec @cmd)
358 0 0 if $] >= 5.008
369 2 64 if ($bytes_read)
372 2 0 if ($err) { }
373 2 0 if $] >= 5.008
425 56 8 unless $dup_wtr
426 45 19 unless $dup_rdr
427 21 43 if not $dup_err and $dad_rdr ne $dad_err
430 8 56 if $dup_wtr
437 0 77 if (@_ < 4)
456 0 0 unless eval { do { $$fd{'handle'}->isa('IO::Handle') } }
462 0 0 unless (under_windows)
465 0 0 unless $saved{fileno $fd}
470 0 0 unless (@errs)
472 0 0 if not $pid or $pid < 0
477 0 0 unless $$fd{'tmp_copy'}->close
479 0 0 if @errs