| line |
true |
false |
branch |
|
30
|
0 |
0 |
if $> == $uid |
|
41
|
0 |
0 |
if $) == $gid |
|
67
|
0 |
0 |
unless keys %gotgroups |
|
78
|
0 |
41 |
unless my $loop = delete $params{'loop'} |
|
99
|
4 |
334 |
if (%params) |
|
103
|
4 |
330 |
if defined $command and defined $code |
|
106
|
4 |
326 |
unless defined $command or defined $code |
|
109
|
303 |
23 |
defined $setup ? : |
|
120
|
0 |
324 |
unless ($readpipe, $writepipe) = "IO::Async::OS"->pipepair |
|
124
|
123 |
201 |
if (defined $command) |
|
125
|
114 |
9 |
ref $command ? : |
|
152
|
1 |
302 |
unless ref $setup eq "ARRAY" |
|
154
|
53 |
249 |
unless @$setup |
|
164
|
14 |
417 |
if $key eq "stdin" |
|
165
|
22 |
409 |
if $key eq "stdout" |
|
166
|
3 |
428 |
if $key eq "stderr" |
|
169
|
127 |
304 |
if ref $key and eval {
do {
$key->fileno;
1
}
} |
|
171
|
419 |
12 |
if ($key =~ /^fd(\d+)$/u) { } |
|
|
3 |
9 |
elsif ($key eq 'env') { } |
|
|
1 |
8 |
elsif ($key eq 'nice') { } |
|
|
1 |
7 |
elsif ($key eq 'chdir') { } |
|
|
2 |
5 |
elsif ($key eq 'setuid') { } |
|
|
2 |
3 |
elsif ($key eq 'setgid') { } |
|
|
2 |
1 |
elsif ($key eq 'setgroups') { } |
|
175
|
128 |
291 |
if (not $ref) { } |
|
|
253 |
38 |
elsif ($ref eq 'ARRAY') { } |
|
|
38 |
0 |
elsif ($ref eq 'GLOB' or eval {
do {
$value->isa('IO::Handle')
}
}) { } |
|
189
|
0 |
419 |
unless grep {$_ eq $operation;} "open", "close", "dup", "keep" |
|
193
|
0 |
3 |
unless ref $value eq "HASH" |
|
196
|
0 |
1 |
unless $value =~ /^\d+$/u |
|
202
|
0 |
1 |
unless -d $value |
|
205
|
0 |
2 |
unless $value =~ /^\d+$/u |
|
208
|
0 |
2 |
unless $value =~ /^\d+$/u |
|
209
|
0 |
2 |
if $has_setgroups |
|
212
|
0 |
2 |
unless ref $value eq "ARRAY" |
|
250
|
288 |
382 |
if (not defined $dollarbang) { } |
|
|
191 |
191 |
elsif (not defined $dollarat) { } |
|
251
|
194 |
94 |
if (length $$buffref >= 8) |
|
258
|
191 |
0 |
if (length $$buffref >= $length_dollarat) |
|
264
|
285 |
0 |
if ($eof) |
|
265
|
94 |
191 |
unless defined $dollarbang |
|
266
|
94 |
191 |
unless (defined $length_dollarat) |
|
273
|
91 |
194 |
if (defined $exitcode) |
|
286
|
192 |
94 |
if ($pipeclosed) |
|
313
|
22 |
7 |
if (@$setup) |
|
318
|
0 |
41 |
unless $key =~ /^fd(\d+)$/u |
|
321
|
27 |
14 |
if $fd > $max_fd |
|
322
|
0 |
41 |
if $fd == fileno $writepipe |
|
326
|
0 |
41 |
if ($operation eq "close") |
|
331
|
39 |
2 |
if ($operation eq "dup") |
|
342
|
2 |
39 |
if ($operation eq "keep") |
|
349
|
128 |
309 |
if $fds_refcount{$_} |
|
350
|
29 |
280 |
if $_ == fileno $writepipe |
|
354
|
22 |
7 |
if (@$setup) |
|
355
|
0 |
22 |
if ($writepipe_clashes) |
|
358
|
0 |
0 |
unless dup2(fileno $writepipe, $max_fd) |
|
360
|
0 |
0 |
unless open $writepipe, ">&=$max_fd" |
|
366
|
41 |
0 |
if ($key =~ /^fd(\d+)$/u) { } |
|
|
0 |
0 |
elsif ($key eq 'env') { } |
|
|
0 |
0 |
elsif ($key eq 'nice') { } |
|
|
0 |
0 |
elsif ($key eq 'chdir') { } |
|
|
0 |
0 |
elsif ($key eq 'setuid') { } |
|
|
0 |
0 |
elsif ($key eq 'setgid') { } |
|
|
0 |
0 |
elsif ($key eq 'setgroups') { } |
|
370
|
39 |
2 |
if ($operation eq "dup") |
|
373
|
39 |
0 |
if ($from != $fd) |
|
374
|
0 |
39 |
if (exists $dup_from{$fd}) |
|
375
|
0 |
0 |
unless defined($dup_from{$fd} = dup($fd)) |
|
381
|
0 |
39 |
unless dup2($real_from, $fd) |
|
385
|
39 |
0 |
unless ($fds_refcount{$from} or $fd_in_use{$from}) |
|
391
|
0 |
41 |
if ($operation eq "open") |
|
393
|
0 |
0 |
unless open my $fh, $mode, $filename |
|
396
|
0 |
0 |
unless dup2($from, $fd) |
|
405
|
0 |
0 |
unless nice($value) |
|
408
|
0 |
0 |
unless chdir $value |
|
411
|
0 |
0 |
unless setuid($value) |
|
414
|
0 |
0 |
unless setgid($value) |
|
417
|
0 |
0 |
unless setgroups(@$value) |