Branch Coverage

blib/lib/Archive/Zip/Archive.pm
Criterion Covered Total %
branch 209 390 53.5


line true false branch
67 0 69 ref $_[0] eq 'HASH' ? :
68 4 65 if ($fileName)
70 4 0 $status == 0 ? :
96 0 368 ref $_[0] eq 'HASH' ? :
98 240 9925 if $member->fileName eq $fileName
105 0 17 ref $_[0] eq 'HASH' ? :
116 4 550 if (@_)
118 0 4 ref $_[0] eq 'HASH' ? :
158 0 78 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 183 if (ref $_[0] eq 'HASH') { }
195 0 183 unless ref $oldMember
196 0 183 unless $oldMember
197 0 183 unless $newMember
199 183 11336 $_ == $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 190 ref $_[0] eq 'HASH' ? :
271 190 0 if $newMember
272 2 188 if ($newMember and $newMember->{'bitFlag'} & 2048 and not utf8::is_utf8($newMember->{'fileName'}))
283 0 98 if (ref $_[0] eq 'HASH') { }
291 0 0 if ($^O eq 'MSWin32' and $Archive::Zip::UNICODE)
297 0 98 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 75 ref $_[0] eq 'HASH' ? :
428 0 216 if ($member->_usesFileNamed($fileName))
435 0 75 unless $status
449 0 78 if (ref $_[0] eq 'HASH') { }
452 0 0 exists $_[0]{'seek'} ? :
455 75 3 @_ ? :
458 0 78 unless $fh
459 0 78 unless $fh->opened
463 75 3 $fhIsSeekable ? :
464 0 78 if $offset < 0
513 0 243 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 47 if ($membersZip64 or $eocdDataZip64 or $self->desiredZip64Mode == 1)
622 3 28 if $versionMadeBy == 0
623 3 28 if $versionNeededToExtract < 45
625 0 31 unless $self->_print($fh, "PK\cF\cF")
641 0 31 unless $self->_print($fh, $record)
644 0 31 unless $self->_print($fh, "PK\cF\a")
653 0 31 unless $self->_print($fh, $locator)
657 0 78 unless $self->_print($fh, "PK\cE\cF")
660 0 78 $numberOfCentralDirectoriesOnThisDisk > 65535 ? :
0 78 $numberOfCentralDirectories > 65535 ? :
0 78 $centralDirectorySize > 4294967295 ? :
0 78 $centralDirectoryOffsetWRTStartingDiskNumber > 4294967295 ? :
674 0 78 unless $self->_print($fh, $header)
676 0 78 if ($zipfileCommentLength)
677 0 0 unless $self->_print($fh, $self->zipfileComment)
694 0 78 if (ref $_[0] eq 'HASH') { }
701 0 78 if (defined $offset) { }
703 0 0 unless $fh->seek($offset, 0)
713 0 243 if $status != 0
724 0 48 ref $_[0] eq 'HASH' ? :
725 0 48 unless $fileName
727 0 48 unless $status
730 0 48 if $status != 0
741 0 48 if (ref $_[0] eq 'HASH') { }
748 0 48 unless defined $fileName
749 0 48 unless $fh
750 0 48 unless $fh->opened
756 0 48 unless _isSeekable($fh)
762 0 48 if $status != 0
766 0 48 if $status != 0
770 0 48 unless $fh->seek($eocdPosition - $self->centralDirectorySize, 0)
785 0 120 if $status != 0
786 98 22 if (not $zip64) { }
787 41 57 if $signature == 101010256
790 7 15 if $signature == 101075792
793 0 72 if $status != 0
795 0 72 if $status != 0
797 12 60 if ($newMember->isDirectory)
800 0 12 unless $newMember->_ISA('Archive::Zip::DirectoryMember')
804 8 64 if ($newMember->{'bitFlag'} & 2048 and not utf8::is_utf8($newMember->{'fileName'}))
857 0 48 if ($eocdPosition < 20)
862 0 48 unless $fh->seek(-20, 1)
875 0 48 if $status == 4
876 0 48 if ($status == 3)
877 0 0 unless $fh->seek($eocdPosition, 0)
885 0 48 if ($bytesRead != 16)
890 25 23 if ($zip64EOCDPosition > $zip64EOCDLocatorPosition - 52 - 4)
897 0 23 unless $fh->seek($zip64EOCDPosition, 0)
904 0 23 if $status == 4
905 0 23 if ($status == 3)
906 0 0 unless $fh->seek($eocdPosition, 0)
915 0 23 if ($bytesRead != 52)
923 16 7 if ($zip64EOCDPosition + 12 + $zip64EODCRecordSize != $zip64EOCDLocatorPosition)
924 0 16 unless $fh->seek($eocdPosition, 0)
944 0 7 unless $fh->seek($eocdPosition, 0)
949 0 48 unless $fh->seek(4, 1)
954 0 48 if ($bytesRead != 18)
959 41 7 if (not $self->{'zip64'}) { }
970 0 41 if ($self->{'diskNumber'} == 65535 or $self->{'diskNumberWithStartOfCentralDirectory'} == 65535 or $self->{'numberOfCentralDirectoriesOnThisDisk'} == 65535 or $self->{'numberOfCentralDirectories'} == 65535 or $self->{'centralDirectorySize'} == 4294967295 or $self->{'centralDirectoryOffsetWRTStartingDiskNumber'} == 4294967295)
996 0 48 if ($zipfileCommentLength)
999 0 0 if ($bytesRead != $zipfileCommentLength)
1005 41 7 if (not $self->{'zip64'}) { }
1008 41 0 wantarray ? :
1014 7 0 wantarray ? :
1026 0 48 unless $fh->seek(0, 2)
1030 0 48 if ($fileLength < 22)
1038 39 9 if $seekOffset > $fileLength
1039 0 48 unless $fh->seek(-$seekOffset, 2)
1042 0 48 if ($bytesRead != $seekOffset)
1047 0 0 if $pos >= 0 or $seekOffset == $fileLength or $seekOffset >= $Archive::Zip::ChunkSize
1052 48 0 if ($pos >= 0) { }
1053 0 48 unless $fh->seek($pos - $seekOffset, 1)
1075 0 5 if (ref $_[0] eq 'HASH') { }
1084 0 5 unless defined $root
1086 0 5 unless defined $dest
1088 2 3 unless defined $pred
1093 0 5 unless $startDir
1102 0 527 if ($^O eq 'MSWin32' and $Archive::Zip::UNICODE) { }
1103 0 0 if &$pred
1106 89 438 if &$pred
1111 0 0 if ($^O eq 'MSWin32' and $Archive::Zip::UNICODE)
1118 2 3 $rootZipName eq './' ? :
1124 0 89 if ($^O eq 'MSWin32' and $Archive::Zip::UNICODE) { }
1132 2 87 if ($archiveName eq $rootZipName) { }
1134 0 89 if $archiveName =~ m[^\.?/?$]
1135 2 87 $isDir ? :
1141 0 89 unless $member
1150 0 0 if (ref $_[0] eq 'HASH') { }
1160 0 0 unless defined $root
1162 0 0 unless defined $dest
1163 0 0 unless defined $pattern
1166 0 0 if /$pattern/
0 0 if /$pattern/
0 0 $pred ? :
1181 2 51 if (grep(('..' eq $_), @directories))
1190 5 189 if (-l $path)
1194 34 155 unless (-e $path)
1210 0 5 if (ref $_[0] eq 'HASH') { }
1218 4 1 unless defined $root
1219 2 3 if (defined $dest) { }
1220 2 0 unless ($dest =~ m[/$])
1235 3 7 if ((my $ret = _extractionNameIsSafe($fileName)) != 0)
1238 0 7 if $status != 0
1250 0 253 if (ref $_[0] eq 'HASH') { }
1257 0 253 unless (defined $fileName)
1263 0 253 unless (@newStat)
1272 0 253 if (ref $oldMember) { }
1280 0 9 unless (defined $oldMember and $oldMember->lastModTime == $newStat[9] and $oldMember->isDirectory == $isDir and $isDir || $oldMember->uncompressedSize == $newStat[7])
1286 8 236 $isDir ? :
1291 0 244 unless (defined $newMember)
1297 180 64 if (defined $oldMember) { }
1321 0 4 if (ref $_[0] eq 'HASH') { }
1331 0 4 unless defined $root
1333 4 0 unless defined $dest
1335 4 0 unless defined $pred
1339 0 4 $rootZipName eq './' ? :
1344 0 4 unless $startDir
1353 257 0 if &$pred
1369 4 253 if ($memberName eq $rootZipName) { }
1371 4 253 if $memberName =~ m[^\.?/?$]
1376 0 253 unless ref $changedMember
1382 1 3 if ($mirror)
1385 1 63 unless $done{$member->fileName}