Condition Coverage

blib/lib/Image/ExifTool/XMP.pm
Criterion Covered Total %
condition 241 452 53.3


and 2 conditions

line l !l condition
3157 0 0 $_ eq "undef" and $_ = undef
3341 0 22 $tagInfo = $tagTablePtr->{$tagID} and last NoLoop

and 3 conditions

line !l l&&!r l&&r condition
2761 4 150 0 $enc and $enc ne "UTF8"
2780 0 0 25 $ch >= 194 and $ch < 248
2785 0 0 0 $ch == 224 and (ord $1 & 224) == 128
0 0 0 $ch == 237 and (ord $1 & 224) == 160
0 0 0 $ch == 239 and ord $1 == 191
0 0 0 $ch == 239 and ord $1 == 191 and (ord substr($1, 1) & 254) == 190
2790 0 0 0 $ch == 240 and (ord $1 & 240) == 128
0 0 0 $ch == 244 and ord $1 > 143
2858 35605 2321 878 $structProps and @$structProps
37926 439 439 $structProps and @$structProps and $prop =~ /^rdf:li (\d+)$/
2871 237 0 55 ref $info eq "HASH" and $info->{'SubDirectory'}
2874 237 40 15 $table and $table->{$nm}
2919 22 6 0 $Image::ExifTool::XMP::nsURI{$ns} and $Image::ExifTool::XMP::nsURI{$ns} ne $nsRef->{$ns}
2948 0 0 0 ref $tagInfo eq "HASH" and $tagInfo->{'Struct'}
2982 4661 216 44 $fieldInfo->{'Struct'} and $noSubStruct
3024 4696 0 177 $fieldInfo->{'Groups'} and $fieldInfo->{'Groups'}{'2'}
4612 84 0 $strTable->{'GROUPS'} and $strTable->{'GROUPS'}{'2'}
3055 8 0 99 $tagInfo->{'Writable'} and $tagInfo->{'Writable'} eq "lang-alt"
3138 0 0 0 $alt{$mk} and $make =~ /$alt{$mk}/i
3161 0 0 0 $mk eq "Sony" and $focalLength && ($sf && $focalLength < $sf - 0.5 || $lf && $focalLength > $lf + 0.5) || $maxAv && ($sa && $maxAv < $sa - 0.15 || $la && $maxAv > $la + 0.15)
3177 0 0 0 $mk eq "Pentax" and $id =~ /^\d+$/
3212 231 0 73 not $unsure and $val =~ /^(\d{4})(-\d{2}){0,2}/
3277 4 0 0 $tag eq "id" and $props->[1] eq "svg:metadata"
3288 3435 4 203 not $ns and $grp0 ne "XMP"
3435 0 4 $grp0 eq "XML" and not $table
3338 0 0 45 ref $ti eq "HASH" and $ti->{'Struct'}
3378 0 0 22 ref $tg eq "HASH" and $tg->{'SubDirectory'}
3390 0 0 0 ref $ti3 eq "HASH" and $ti3->{'Struct'}
3419 72 46 78 $et->{'curURI'}{$ns} and $et->{'curURI'}{$ns} =~ m[^http://ns.exiftool.(?:ca|org)/(.*?)/(.*?)/]
3435 8 171 17 @$props > 2 and $props->[-1] =~ /^rdf:li \d+$/
179 0 17 @$props > 2 and $props->[-1] =~ /^rdf:li \d+$/ and $props->[-2] =~ /^rdf:(Bag|Seq|Alt)$/
3438 5 0 12 $lang and $1 eq "Alt"
3450 189 7 0 not length $val and $attrs->{'rdf:parseType'}
7 0 0 not length $val and $attrs->{'rdf:parseType'} and $attrs->{'rdf:parseType'} eq "Resource"
3459 3438 0 1 $enc and $enc =~ /base64/
3464 3335 254 53 defined $lang and lc $lang ne "x-default"
3489 3406 0 236 $tagInfo->{'IsDefault'} && $et->{'OPTIONS'}{'XMPAutoConv'}
3492 1197 234 199 $new || $fmt eq 'rational' and &ConvertRational($val)
3497 1630 0 0 $et->{'XmpValidate'} and $fmt
1630 0 0 $et->{'XmpValidate'} and $fmt and $fmt eq "boolean"
0 0 0 $et->{'XmpValidate'} and $fmt and $fmt eq "boolean" and not $val =~ /^True|False$/
3505 1394 236 0 $new and length $val > 65536
3512 2974 339 329 @structProps and @structProps > 1 || defined $structProps[0][1]
339 0 329 @structProps and @structProps > 1 || defined $structProps[0][1] and not $et->{'NO_STRUCT'}
3518 207 109 3326 $ns and not $tagInfo->{'StaticGroup1'}
3542 3642 0 0 $tagInfo->{'SubDirectory'} and not $et->{'IsWriting'}
3546 0 0 0 $tagInfo->{'Encoding'} and $tagInfo->{'Encoding'} eq "Base64"
3658 7556 0 0 $et->{'EXCL_XMP_LOOKUP'} and not $isWriting
7556 0 0 $et->{'EXCL_XMP_LOOKUP'} and not $isWriting and $prop =~ /^(.+):(.*)/
3736 145 187 0 /(.*?):/ and $1 eq $ns
332 0 0 /(.*?):/ and $1 eq $ns and $1 ne $newNS
3824 1 15 0 @$propList > 1 and not $propList->[1] =~ /\b(metadata|desc|title)$/
3880 12 322 10 $stdNS and $stdNS eq 'x' || $stdNS eq 'iX'
3894 2029 327 470 ref $recognizedAttrs{$propName} and $shortVal
3897 239 0 231 defined $et->{'VALUE'}{$name} and $et->{'VALUE'}{$name} eq $tval
3946 3564 0 16 $prop eq "rdf:Description" and $val
3951 3515 63 2 $val eq "" and $attrs =~ /\brdf:(?:value|resource)=(['"])(.*?)\1/ || $attrs =~ /\brdf:about=(['"])(.*?)\1/
3963 3599 0 8 $lastProp eq "rdf:type" and $wasEmpty
3599 0 0 $lastProp =~ /^et:(desc|prt|val)$/ and $count || $1 eq 'desc'
4004 7454 277 4 $processBlankInfo and %{$blankInfo->{'Prop'};}
4049 293 2 9 $Image::ExifTool::MWG::strict || $et->{'OPTIONS'}{'Validate'} and not $et->{'XMP_CAPTURE'} || $et->{'DOC_NUM'}
295 7 2 $Image::ExifTool::MWG::strict || $et->{'OPTIONS'}{'Validate'} and not $et->{'XMP_CAPTURE'} || $et->{'DOC_NUM'} and ($dirInfo->{'DirName'} || '') eq 'XMP' || $et->{'FILE_TYPE'} eq 'XMP'
4054 1 6 0 $stdPath{$et->{'FILE_TYPE'}} && $path ne $stdPath{$et->{'FILE_TYPE'}}
4055 7 0 0 $nonStd and $Image::ExifTool::MWG::strict
4113 0 0 7 defined $fmt and not $fmt
0 6 1 defined $fmt and not $fmt and $buf2 =~ /^[^\n\r]*[\n\r]+<\?aid /s
4150 6 1 0 $isSVG and $et->{'XMP_CAPTURE'}
4170 0 2 0 $ext and $ext eq "MODD"
4175 53 0 3 $isXML and not $hasXMP
53 3 0 $isXML and not $hasXMP and not $isRDF
4180 0 0 0 $ext and $ext eq "COS"
4186 60 0 0 $fast and $fast == 3
4188 56 3 1 $type and $type eq "INX"
4255 236 7 38 $et->{'REQ_TAG_LOOKUP'}{lc $blockName} || $et->{'TAGS_FROM_FILE'} && !$et->{'EXCL_TAG_LOOKUP'}{lc $blockName} || $blockExtract and $et->{'FileType'} eq 'XMP' && $blockName eq 'XMP' || $dirInfo->{'DirName'} && $dirInfo->{'DirName'} eq $blockName
4261 40 0 0 $blockExtract and $blockExtract > 1
4265 280 0 1 $et->Options("Verbose") and not $et->{'XMP_CAPTURE'}
4277 66 0 1 $$dataPt =~ / $dirStart
66 0 1 $$dataPt =~ / $dirStart and pos $$dataPt < $dirEnd
4317 273 8 0 $et->{'XMP_NO_XPACKET'} and $et->{'OPTIONS'}{'Validate'}
8 0 0 $et->{'XMP_NO_XPACKET'} and $et->{'OPTIONS'}{'Validate'} and $stdPath{$et->{'FILE_TYPE'}}
8 0 0 $et->{'XMP_NO_XPACKET'} and $et->{'OPTIONS'}{'Validate'} and $stdPath{$et->{'FILE_TYPE'}} and $path eq $stdPath{$et->{'FILE_TYPE'}}
0 0 0 $et->{'XMP_NO_XPACKET'} and $et->{'OPTIONS'}{'Validate'} and $stdPath{$et->{'FILE_TYPE'}} and $path eq $stdPath{$et->{'FILE_TYPE'}} and not $dirInfo->{'IsExtended'}
0 0 0 $et->{'XMP_NO_XPACKET'} and $et->{'OPTIONS'}{'Validate'} and $stdPath{$et->{'FILE_TYPE'}} and $path eq $stdPath{$et->{'FILE_TYPE'}} and not $dirInfo->{'IsExtended'} and not $et->{'DOC_NUM'}
4371 0 0 0 $dirInfo->{'DirName'} and $dirInfo->{'DirName'} eq "XMP"
4387 0 215 66 $rtnVal and $dirInfo->{'RAF'}

or 2 conditions

line l !l condition
2894 3576 224 $namespace || ''
3020 59 1615 $fieldInfo->{'List'} || 1
3213 118 1 $5 || ''
3369 22 0 $tagTablePtr->{'NAMESPACE'} || ''
3589 154 0 $et->{'XMPParseOpts'}{'FoundProc'} || \&Image::ExifTool::XMP::FoundXMP
4063 0 7 $et->{'DIR_COUNT'}{'XMP'} || 0
4067 126 95 $dirInfo->{'DirStart'} || 0
4260 2 38 $dirInfo->{'BlockInfo'} || 'XMP'

or 3 conditions

line l !l&&r !l&&!r condition
2720 0 0 0 $str =~ /[\0-\x1f]/ or &Image::ExifTool::IsUTF8(\$str) < 0
2785 0 0 0 $ch == 224 and (ord $1 & 224) == 128 or $ch == 237 and (ord $1 & 224) == 160
0 0 0 $ch == 224 and (ord $1 & 224) == 128 or $ch == 237 and (ord $1 & 224) == 160 or $ch == 239 and ord $1 == 191 and (ord substr($1, 1) & 254) == 190
2790 0 0 0 $ch == 240 and (ord $1 & 240) == 128 or $ch == 244 and ord $1 > 143
0 0 0 $ch == 240 and (ord $1 & 240) == 128 or $ch == 244 and ord $1 > 143 or $ch > 244
2853 38804 0 27650 $ignoreNamespace{$ns} or $ignoreProp{$prop}
2868 0 70 222 $Image::ExifTool::XMP::stdXlatNS{$ns} || $ns
2985 636 4241 0 $fieldInfo->{'FlatName'} || $fieldName
3000 1 32 226 $_ eq "PropertyPath" or defined $flatInfo->{$_}
3020 59 1615 1007 $fieldInfo->{'List'} or $tagInfo->{'List'}
3032 2722 2151 0 $tagInfo->{'RootTagInfo'} || $tagInfo
3086 0 0 0 defined $buff or $raf->Read($buff, 65536)
3138 0 0 0 $make =~ /$mk/i or $alt{$mk} and $make =~ /$alt{$mk}/i
3140 0 0 0 {'Sigma', 'SigmaRaw', 'Leica', 'Panasonic'}->{$mk} || $mk
3145 0 0 0 {'Nikon', 'nikonLensIDs'}->{$mk} || lc($mk) . 'LensTypes'
3161 0 0 0 $focalLength && ($sf && $focalLength < $sf - 0.5 || $lf && $focalLength > $lf + 0.5) || $maxAv && ($sa && $maxAv < $sa - 0.15 || $la && $maxAv > $la + 0.15)
3198 0 0 0 $printConv->{$id} || "Unknown ($id)"
3305 157 0 0 $ns =~ /^[A-Z_a-z\x80-\xff][-.0-9A-Z_a-z\x80-\xff]*$/ or $ns eq ""
3327 207 11 3424 not $tagInfo or $tagInfo->{'Flat'}
3359 1 0 22 $strTable->{'NAMESPACE'} or not exists $strTable->{'NAMESPACE'}
3366 4 18 0 $xmpNS{$n} || $n
3381 0 0 22 not $sti or $sti->{'Flat'}
3458 1 0 3438 $attrs->{'rdf:datatype'} || $attrs->{'et:encoding'}
3461 1 0 0 length $$val > 100 or $$val =~ /[\0-\x08\x0b\0x0c\x0e-\x1f]/
3490 1394 236 2012 $fmt or $new
3492 236 197 1197 $new || $fmt eq 'rational'
3495 234 166 1031 $new or $fmt eq "date"
3512 151 178 339 @structProps > 1 || defined $structProps[0][1]
3539 1 0 0 $rawVal || $val
3553 0 0 0 $subdir->{'DirName'} || $tagInfo->{'Name'}
3560 0 0 0 &GetTagTable($subdir->{'TagTable'}) || $tagTablePtr
3614 1 2988 8280 not $$dataPt =~ m[<([?/]?)([-\w:.\x80-\xff]+|!--)([^>]*)>]gs or pos $$dataPt > $end
3621 158 0 0 $attrs =~ /--$/ or $$dataPt =~ /-->/gs
3637 0 0 7757 not $$dataPt =~ m[<(/?)$prop([-\w:.\x80-\xff]*)(.*?(/?))>]gs or pos $$dataPt > $end
3659 0 0 0 $Image::ExifTool::XMP::stdXlatNS{$1} || $1
3660 0 0 0 $et->{'EXCL_XMP_LOOKUP'}{"xmp-${ns}:all"} or $et->{'EXCL_XMP_LOOKUP'}{"xmp-${ns}:$nm"}
0 0 0 $et->{'EXCL_XMP_LOOKUP'}{"xmp-${ns}:all"} or $et->{'EXCL_XMP_LOOKUP'}{"xmp-${ns}:$nm"} or $et->{'EXCL_XMP_LOOKUP'}{"xmp-all:$nm"}
3716 2 0 44 $curURI->{$ns} or $Image::ExifTool::XMP::nsURI{$ns}
3782 563 71 788 $nItems or grep /^rdf:li /, @$propList
3823 0 0 16 $et->{'OPTIONS'}{'Unknown'} > 1 or $et->{'OPTIONS'}{'Verbose'}
3829 1 1 14 $prop eq "svg" or $prop eq "metadata"
3880 56 10 266 $stdNS eq 'x' || $stdNS eq 'iX'
3891 2826 0 802 $ignoreNamespace{$ns} or $ignoreProp{$prop}
3918 626 0 18 not $shorthand or $valEnd != $valStart
3938 102 6204 22 $valStart == $valEnd or not &ParseXMPElement($et, $tagTablePtr, $dataPt, $valStart, $valEnd, $propList, $blankInfo)
3951 15 2 48 $attrs =~ /\brdf:(?:value|resource)=(['"])(.*?)\1/ || $attrs =~ /\brdf:about=(['"])(.*?)\1/
3960 3581 39 13 length $val or not $shorthand
3963 0 0 0 $count || $1 eq 'desc'
3983 0 0 0 $et->{'definedNS'}{$_} or $_ eq "xml"
4049 11 0 293 $Image::ExifTool::MWG::strict || $et->{'OPTIONS'}{'Validate'}
2 0 9 $et->{'XMP_CAPTURE'} || $et->{'DOC_NUM'}
6 1 2 ($dirInfo->{'DirName'} || '') eq 'XMP' || $et->{'FILE_TYPE'} eq 'XMP'
4068 193 28 0 $dirInfo->{'DirLen'} || length($$dataPt) - $dirStart
4069 194 27 0 $dirInfo->{'DataLen'} || length $$dataPt
4255 27 0 236 $et->{'REQ_TAG_LOOKUP'}{lc $blockName} || $et->{'TAGS_FROM_FILE'} && !$et->{'EXCL_TAG_LOOKUP'}{lc $blockName} || $blockExtract
6 34 5 $et->{'FileType'} eq 'XMP' && $blockName eq 'XMP' || $dirInfo->{'DirName'} && $dirInfo->{'DirName'} eq $blockName
4277 7 0 274 $isXML or $isRDF
4325 33 0 1 $dirStart or $dirEnd != length $$dataPt
4368 5 0 276 $dirInfo->{'BlockInfo'} or $dirInfo->{'NoStruct'}