Branch Coverage

blib/lib/Archive/Zip/Archive.pm
Criterion Covered Total %
branch 204 384 53.1


line true false branch
67 0 68 ref $_[0] eq 'HASH' ? :
68 4 64 if ($fileName)
70 4 0 $status == 0 ? :
96 0 358 ref $_[0] eq 'HASH' ? :
98 234 9306 if $member->fileName eq $fileName
105 0 17 ref $_[0] eq 'HASH' ? :
116 4 547 if (@_)
118 0 4 ref $_[0] eq 'HASH' ? :
158 0 77 if (@_)
159 0 0 ref $_[0] eq 'HASH' ? :
176 0 10 ref $_[0] eq 'HASH' ? :
177 0 10 unless ref $member
178 0 10 unless $member
188 0 165 if (ref $_[0] eq 'HASH') { }
195 0 165 unless ref $oldMember
196 0 165 unless $oldMember
197 0 165 unless $newMember
199 165 9881 $_ == $oldMember ? :
208 0 55 if (ref $_[0] eq 'HASH') { }
215 23 32 unless ref $member
216 0 55 unless $member
219 13 42 if (defined $name) { }
224 3 39 if ((my $ret = _extractionNameIsSafe($name)) != 0)
230 6 46 if ($dirName and not -d $dirName)
232 0 6 unless -d $dirName
245 0 2 if (ref $_[0] eq 'HASH') { }
252 0 2 unless ref $member
253 0 2 unless $member
255 0 2 if $member->isDirectory
256 1 1 unless ($name)
259 1 0 if ((my $ret = _extractionNameIsSafe($name)) != 0)
270 0 182 ref $_[0] eq 'HASH' ? :
271 182 0 if $newMember
272 2 180 if ($newMember and $newMember->{'bitFlag'} & 2048 and not utf8::is_utf8($newMember->{'fileName'}))
283 0 92 if (ref $_[0] eq 'HASH') { }
291 0 0 if ($^O eq 'MSWin32' and $Archive::Zip::UNICODE)
297 0 92 if ($self->{'storeSymbolicLink'} and -l $fileName) { }
315 0 13 if (ref $_[0] eq 'HASH') { }
333 0 9 if (ref $_[0] eq 'HASH') { }
340 0 0 if ($^O eq 'MSWin32' and $Archive::Zip::UNICODE)
345 0 9 if ($self->{'storeSymbolicLink'} and -l $name) { }
347 0 0 if $newName
366 0 2 if (ref $_[0] eq 'HASH') { }
374 0 0 if ($^O eq 'MSWin32' and $Archive::Zip::UNICODE)
379 2 0 if ($newName) { }
384 1 1 if (-f $name) { }
1 0 elsif (-d $name) { }
397 0 3 if (ref $_[0] eq 'HASH') { }
405 3 0 if ($status == 0)
406 0 3 unless defined $member
408 0 3 if ($status == 0 and not ref $member)
411 0 0 unless defined $member
413 3 0 if ($status == 0)
419 0 3 wantarray ? :
426 0 74 ref $_[0] eq 'HASH' ? :
428 0 215 if ($member->_usesFileNamed($fileName))
435 0 74 unless $status
449 0 77 if (ref $_[0] eq 'HASH') { }
452 0 0 exists $_[0]{'seek'} ? :
455 74 3 @_ ? :
458 0 77 unless $fh
459 0 77 unless $fh->opened
463 74 3 $fhIsSeekable ? :
464 0 77 if $offset < 0
513 0 242 if $status != 0
539 0 0 ref $_[0] eq 'HASH' ? :
540 0 0 unless defined $zipName
543 0 0 unless $fh
551 0 0 if ($status != 0)
560 0 0 if (-f $zipName and not rename($zipName, $backupName))
567 0 0 unless (File::Copy::move($tempName, $zipName) or File::Copy::copy($tempName, $zipName))
576 0 0 if (-f $backupName and not unlink($backupName))
616 16 46 if ($membersZip64 or $eocdDataZip64 or $self->desiredZip64Mode == 1)
623 0 31 unless $self->_print($fh, "PK\cF\cF")
639 0 31 unless $self->_print($fh, $record)
642 0 31 unless $self->_print($fh, "PK\cF\a")
651 0 31 unless $self->_print($fh, $locator)
655 0 77 unless $self->_print($fh, "PK\cE\cF")
658 0 77 $numberOfCentralDirectoriesOnThisDisk > 65535 ? :
0 77 $numberOfCentralDirectories > 65535 ? :
0 77 $centralDirectorySize > 4294967295 ? :
0 77 $centralDirectoryOffsetWRTStartingDiskNumber > 4294967295 ? :
672 0 77 unless $self->_print($fh, $header)
674 0 77 if ($zipfileCommentLength)
675 0 0 unless $self->_print($fh, $self->zipfileComment)
692 0 77 if (ref $_[0] eq 'HASH') { }
699 0 77 if (defined $offset) { }
701 0 0 unless $fh->seek($offset, 0)
711 0 242 if $status != 0
722 0 47 ref $_[0] eq 'HASH' ? :
723 0 47 unless $fileName
725 0 47 unless $status
728 0 47 if $status != 0
739 0 47 if (ref $_[0] eq 'HASH') { }
746 0 47 unless defined $fileName
747 0 47 unless $fh
748 0 47 unless $fh->opened
754 0 47 unless _isSeekable($fh)
760 0 47 if $status != 0
764 0 47 if $status != 0
768 0 47 unless $fh->seek($eocdPosition - $self->centralDirectorySize, 0)
783 0 118 if $status != 0
784 96 22 if (not $zip64) { }
785 40 56 if $signature == 101010256
788 7 15 if $signature == 101075792
791 0 71 if $status != 0
793 0 71 if $status != 0
795 12 59 if ($newMember->isDirectory)
798 0 12 unless $newMember->_ISA('Archive::Zip::DirectoryMember')
802 8 63 if ($newMember->{'bitFlag'} & 2048 and not utf8::is_utf8($newMember->{'fileName'}))
849 0 47 if ($eocdPosition < 20)
854 0 47 unless $fh->seek(-20, 1)
867 0 47 if $status == 4
868 0 47 if ($status == 3)
869 0 0 unless $fh->seek($eocdPosition, 0)
877 0 47 if ($bytesRead != 16)
882 24 23 if ($zip64EOCDPosition > $zip64EOCDLocatorPosition - 52 - 4)
889 0 23 unless $fh->seek($zip64EOCDPosition, 0)
896 0 23 if $status == 4
897 0 23 if ($status == 3)
898 0 0 unless $fh->seek($eocdPosition, 0)
907 0 23 if ($bytesRead != 52)
915 16 7 if ($zip64EOCDPosition + 12 + $zip64EODCRecordSize != $zip64EOCDLocatorPosition)
916 0 16 unless $fh->seek($eocdPosition, 0)
936 0 7 unless $fh->seek($eocdPosition, 0)
941 0 47 unless $fh->seek(4, 1)
946 0 47 if ($bytesRead != 18)
951 40 7 if (not $self->{'zip64'}) { }
974 0 47 if ($zipfileCommentLength)
977 0 0 if ($bytesRead != $zipfileCommentLength)
983 40 7 if (not $self->{'zip64'}) { }
986 40 0 wantarray ? :
992 7 0 wantarray ? :
1004 0 47 unless $fh->seek(0, 2)
1008 0 47 if ($fileLength < 22)
1016 39 8 if $seekOffset > $fileLength
1017 0 47 unless $fh->seek(-$seekOffset, 2)
1020 0 47 if ($bytesRead != $seekOffset)
1025 0 0 if $pos >= 0 or $seekOffset == $fileLength or $seekOffset >= $Archive::Zip::ChunkSize
1030 47 0 if ($pos >= 0) { }
1031 0 47 unless $fh->seek($pos - $seekOffset, 1)
1053 0 5 if (ref $_[0] eq 'HASH') { }
1062 0 5 unless defined $root
1064 0 5 unless defined $dest
1066 2 3 unless defined $pred
1071 0 5 unless $startDir
1080 0 521 if ($^O eq 'MSWin32' and $Archive::Zip::UNICODE) { }
1081 0 0 if &$pred
1084 83 438 if &$pred
1089 0 0 if ($^O eq 'MSWin32' and $Archive::Zip::UNICODE)
1096 2 3 $rootZipName eq './' ? :
1102 0 83 if ($^O eq 'MSWin32' and $Archive::Zip::UNICODE) { }
1110 2 81 if ($archiveName eq $rootZipName) { }
1112 0 83 if $archiveName =~ m[^\.?/?$]
1113 2 81 $isDir ? :
1119 0 83 unless $member
1128 0 0 if (ref $_[0] eq 'HASH') { }
1138 0 0 unless defined $root
1140 0 0 unless defined $dest
1141 0 0 unless defined $pattern
1144 0 0 if /$pattern/
0 0 if /$pattern/
0 0 $pred ? :
1159 2 51 if (grep(('..' eq $_), @directories))
1168 5 189 if (-l $path)
1172 34 155 unless (-e $path)
1188 0 5 if (ref $_[0] eq 'HASH') { }
1196 4 1 unless defined $root
1197 2 3 if (defined $dest) { }
1198 2 0 unless ($dest =~ m[/$])
1213 3 7 if ((my $ret = _extractionNameIsSafe($fileName)) != 0)
1216 0 7 if $status != 0
1228 0 245 if (ref $_[0] eq 'HASH') { }
1235 0 245 unless (defined $fileName)
1241 0 245 unless (@newStat)
1250 0 245 if (ref $oldMember) { }
1258 0 21 unless (defined $oldMember and $oldMember->lastModTime == $newStat[9] and $oldMember->isDirectory == $isDir and $isDir || $oldMember->uncompressedSize == $newStat[7])
1264 2 222 $isDir ? :
1269 0 224 unless (defined $newMember)
1275 162 62 if (defined $oldMember) { }
1299 0 4 if (ref $_[0] eq 'HASH') { }
1309 0 4 unless defined $root
1311 4 0 unless defined $dest
1313 4 0 unless defined $pred
1317 0 4 $rootZipName eq './' ? :
1322 0 4 unless $startDir
1331 249 0 if &$pred
1347 4 245 if ($memberName eq $rootZipName) { }
1349 4 245 if $memberName =~ m[^\.?/?$]
1354 0 245 unless ref $changedMember
1360 1 3 if ($mirror)
1363 1 61 unless $done{$member->fileName}