Branch Coverage

blib/lib/Archive/Ar.pm
Criterion Covered Total %
branch 87 144 60.4


line true false branch
47 26 0 $> == 0 ? :
53 26 0 unless ref $opts
57 10 16 if ($file)
58 3 7 unless $self->read($file)
107 0 15 unless $self->_parse($data)
115 0 0 unless defined $filename
122 0 1 @_ ? :
123 0 2 unless $self->extract_file($filename)
134 0 2 unless $meta
135 0 2 unless open my $fh, '>', $target
137 0 2 unless syswrite $fh, $$meta{'data'}
138 0 2 unless close $fh
139 2 0 if ($$self{'opts'}{'chown'})
140 0 2 unless CORE::chown $$meta{'uid'}, $$meta{'gid'}, $filename
143 2 0 if ($$self{'opts'}{'chmod'})
145 0 2 unless ($$self{'opts'}{'same_perms'})
148 0 2 unless CORE::chmod $mode, $filename
150 0 2 unless utime $$meta{'date'}, $$meta{'date'}, $filename
160 2 0 if ($$self{'files'}{$filename})
164 2 3 if ($_ eq $filename)
177 0 0 unless $$self{'files'}{$filename}
178 0 0 $mode + 0 eq $mode ? :
189 0 0 unless $$self{'files'}{$filename}
190 0 0 if $uid >= 0
191 0 0 if defined $gid and $gid >= 0
197 1 1 ref $_[0] ? :
202 0 4 unless $file
203 4 0 if (exists $$self{'files'}{$file}) { }
218 8 9 wantarray ? :
223 0 2 ref $_[0] ? :
226 6 0 if (open my $fd, $path) { }
227 0 6 unless my(@st) = stat $fd
250 0 8 unless $path
254 0 8 unless $self->_add_data($filename, $content, $$params{'date'} || timelocal(localtime()), $$params{'uid'} || 0, $$params{'gid'} || 0, $$params{'mode'} || 33188)
266 7 0 unless shift()
273 3 4 if ($type eq 3)
277 3 0 if (my(@longs) = grep((length $_ > 15), @filenames))
285 2 1 if $ptr % 2
294 7 6 if ($type eq 3) { }
295 1 6 if defined $$opts{'symbols'} and $fn eq $$opts{'symbols'}
301 9 4 if (length $name <= 16 or $type eq 1) { }
3 1 elsif ($type eq 3) { }
1 0 elsif ($type eq 2) { }
319 4 9 if $size % 2
321 1 6 if ($filename) { }
338 0 20 unless ($filename)
343 2 18 unless (exists $$self{'files'}{$filename})
356 0 3 unless exists $$self{'files'}{$filename}
366 0 3 unless exists $$self{'files'}{$filename}
368 0 3 if ($has_io_string) { }
373 0 3 unless open $fh, '<', \$data
381 0 0 shift() ? :
391 1 0 unless defined $debug and int $debug == 0
398 0 15 unless (substr($data, 0, 8, '') eq "!\n")
406 0 41 unless ($magic eq "`\n")
409 8 33 if ($name =~ m[^/]) { }
1 32 elsif ($name =~ m[^#1/]) { }
411 3 5 if ($name eq '//') { }
2 3 elsif ($name eq '/') { }
418 1 1 unless (defined $name and $name)
435 3 29 if ($name =~ m[/$])
462 0 51 if (exists $$self{'files'}{$filename})
465 51 0 defined $date ? :
51 0 defined $uid ? :
51 0 defined $gid ? :
51 0 defined $mode ? :
43 8 defined $size ? :
483 2 6 if (ref $file) { }
484 2 0 if eval { do { *$file{'IO'} } } or $file->isa('IO::Handle')
488 0 6 unless open my $fh, $mode, $file
500 0 2 if ($$self{'opts'}{'warn'} > 1) { }
0 2 elsif ($$self{'opts'}{'warn'}) { }