Branch Coverage

blib/lib/Image/ExifTool/PLIST.pm
Criterion Covered Total %
branch 102 166 61.4


line true false branch
149 0 37 unless @$props
154 0 37 if ($verbose > 1)
162 2 35 if ($prop eq 'data') { }
2 33 elsif ($prop eq 'date') { }
1 32 elsif ($prop eq 'true' or $prop eq 'false') { }
163 0 2 if ($val =~ /^[0-9a-f]+$/ and not length $val & 1) { }
178 17 15 if ($prop eq "key")
179 15 2 if (@$props <= 3) { }
191 2 18 unless @$keys
195 15 3 unless ($tagInfo)
196 0 15 if $verbose
204 2 13 if ($prop eq "date")
211 14 4 if ($et->{'LastPListTag'} and $et->{'LastPListTag'} ne $tagInfo)
216 0 18 if $plistType{$tag} and $et->{'FILE_TYPE'} eq "XMP"
219 0 1 if ($tagInfo->{'CompressedPLIST'} and ref $val eq "SCALAR" and not $$val =~ /^bplist00/)
220 0 0 if (eval { do { require IO::Uncompress::RawInflate } }) { }
222 0 0 if (IO::Uncompress::RawInflate::rawinflate($val, \$inflated)) { }
257 0 81 unless $raf->Read($buff, 1) == 1
260 1 80 if ($type == 0) { }
23 57 elsif ($type == 1 or $type == 2 or $type == 3) { }
0 57 elsif ($type == 8) { }
264 18 5 $type == 1 ? :
0 23 unless my $proc = $type == 1 ? $readProc{$size} : $readProc{$size + 256}
265 23 0 if $raf->Read($buff, $size) == $size
266 3 20 if ($type == 3 and defined $val)
273 0 0 unless $raf->Read($buff, $size) == $size
275 0 0 if ($proc) { }
0 0 elsif ($size == 16) { }
285 5 52 if ($size == 15)
288 0 5 unless defined $size and $size =~ /^\d+$/
290 2 55 if ($type == 4) { }
40 15 elsif ($type == 5) { }
1 14 elsif ($type == 6) { }
14 0 elsif ($type == 10 or $type == 12 or $type == 13) { }
291 2 0 if ($size < 1000000 or $et->Options('Binary')) { }
292 0 2 unless $raf->Read($buff, $size) == $size
298 0 40 unless $raf->Read($val, $size) == $size
301 0 1 unless $raf->Read($buff, $size) == $size
307 9 5 $type == 13 ? :
309 0 14 unless $raf->Read($buff, $len) == $len
314 0 68 if $ref >= @$table
317 9 5 if ($type == 13) { }
319 0 9 if (defined $parent and length $parent > 1000)
328 0 29 unless $raf->Seek($$table[$refs[$i]], 0)
330 0 29 unless defined $key and length $key
332 0 29 unless $raf->Seek($$table[$refs[$i + $size]], 0)
334 15 14 defined $parent ? :
337 0 29 unless defined $obj
338 0 29 unless ($tagTablePtr)
340 0 0 if (not defined $key && $key =~ /^[-_a-zA-Z0-9]+$/) { }
0 0 elsif (not $key =~ /^[_a-zA-Z]/) { }
345 0 0 if defined $obj
348 5 24 if ref $obj eq "HASH"
350 0 24 unless ($tagInfo)
351 0 0 if $verbose
355 0 0 if length $name < 2 or $name =~ /^[-0-9]/
357 0 0 if ($plistInfo->{'DateFormat'})
364 22 2 if ($et->{'LastPListTag'} and $et->{'LastPListTag'} ne $tagInfo)
373 0 10 unless $raf->Seek($table->[$ref], 0)
375 1 9 unless defined $val and ref $val ne "HASH"
395 7 1 unless $dirInfo->{'NoVerboseDir'}
398 7 1 if ($dataPt)
400 1 6 if ($start or $dirInfo->{'DirLen'} and $dirInfo->{'DirLen'} != length $$dataPt) { }
409 0 8 unless my $raf = $dirInfo->{'RAF'}
410 0 8 unless $raf->Seek(-32, 2) and $raf->Read($buff, 32) == 32
417 0 8 if $topObj >= $numObj
418 0 8 unless my $intProc = $readProc{$intSize}
419 0 8 unless my $refProc = $readProc{$refSize}
423 0 8 unless $raf->Seek($tableOff, 0) and $raf->Read($buff, $tableSize) == $tableSize
435 0 8 unless $raf->Seek($table[$topObj], 0)
437 8 0 defined $dirInfo->{'Value'} ? :
450 1 6 if ($dataPt)
452 1 0 unless $$dataPt =~ /\G
454 6 1 unless ($notXML)
459 2 4 if $result
463 4 1 if ($raf) { }
464 0 4 unless $raf->Seek(0, 0) and $raf->Read($buff, 64)
467 0 1 unless $dataPt
469 2 3 if ($$dataPt =~ /^bplist0/) { }
0 3 elsif ($$dataPt =~ /^\{"/) { }
0 3 elsif ($et->{'FILE_EXT'} and $et->{'FILE_EXT'} eq 'PLIST' and $$dataPt =~ /^\xfe\xff\x00/) { }
474 0 2 unless (&ProcessBinaryPLIST($et, $dirInfo, $tagTablePtr))
480 0 0 if $raf