Condition Coverage

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


and 2 conditions

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

and 3 conditions

line !l l&&!r l&&r condition
2729 4 150 0 $enc and $enc ne "UTF8"
2748 0 0 25 $ch >= 194 and $ch < 248
2753 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
2758 0 0 0 $ch == 240 and (ord $1 & 240) == 128
0 0 0 $ch == 244 and ord $1 > 143
2826 35575 2321 878 $structProps and @$structProps
37896 439 439 $structProps and @$structProps and $prop =~ /^rdf:li (\d+)$/
2839 237 0 55 ref $info eq "HASH" and $info->{'SubDirectory'}
2842 237 40 15 $table and $table->{$nm}
2887 22 6 0 $Image::ExifTool::XMP::nsURI{$ns} and $Image::ExifTool::XMP::nsURI{$ns} ne $nsRef->{$ns}
2916 0 0 0 ref $tagInfo eq "HASH" and $tagInfo->{'Struct'}
2950 4661 216 44 $fieldInfo->{'Struct'} and $noSubStruct
2992 4696 0 177 $fieldInfo->{'Groups'} and $fieldInfo->{'Groups'}{'2'}
4612 84 0 $strTable->{'GROUPS'} and $strTable->{'GROUPS'}{'2'}
3023 8 0 99 $tagInfo->{'Writable'} and $tagInfo->{'Writable'} eq "lang-alt"
3106 0 0 0 $alt{$mk} and $make =~ /$alt{$mk}/i
3129 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)
3145 0 0 0 $mk eq "Pentax" and $id =~ /^\d+$/
3180 231 0 73 not $unsure and $val =~ /^(\d{4})(-\d{2}){0,2}/
3245 4 0 0 $tag eq "id" and $props->[1] eq "svg:metadata"
3256 3429 4 203 not $ns and $grp0 ne "XMP"
3429 0 4 $grp0 eq "XML" and not $table
3306 0 0 45 ref $ti eq "HASH" and $ti->{'Struct'}
3346 0 0 22 ref $tg eq "HASH" and $tg->{'SubDirectory'}
3358 0 0 0 ref $ti3 eq "HASH" and $ti3->{'Struct'}
3387 72 46 78 $et->{'curURI'}{$ns} and $et->{'curURI'}{$ns} =~ m[^http://ns.exiftool.(?:ca|org)/(.*?)/(.*?)/]
3403 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)$/
3406 5 0 12 $lang and $1 eq "Alt"
3418 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"
3427 3432 0 1 $enc and $enc =~ /base64/
3432 3329 254 53 defined $lang and lc $lang ne "x-default"
3457 3400 0 236 $tagInfo->{'IsDefault'} && $et->{'OPTIONS'}{'XMPAutoConv'}
3460 1197 234 199 $new || $fmt eq 'rational' and &ConvertRational($val)
3465 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$/
3473 1394 236 0 $new and length $val > 65536
3480 2968 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'}
3486 207 109 3320 $ns and not $tagInfo->{'StaticGroup1'}
3510 3636 0 0 $tagInfo->{'SubDirectory'} and not $et->{'IsWriting'}
3514 0 0 0 $tagInfo->{'Encoding'} and $tagInfo->{'Encoding'} eq "Base64"
3625 7541 0 0 $et->{'EXCL_XMP_LOOKUP'} and not $isWriting
7541 0 0 $et->{'EXCL_XMP_LOOKUP'} and not $isWriting and $prop =~ /^(.+):(.*)/
3703 145 187 0 /(.*?):/ and $1 eq $ns
332 0 0 /(.*?):/ and $1 eq $ns and $1 ne $newNS
3791 1 15 0 @$propList > 1 and not $propList->[1] =~ /\b(metadata|desc|title)$/
3847 12 322 10 $stdNS and $stdNS eq 'x' || $stdNS eq 'iX'
3861 2026 326 469 ref $recognizedAttrs{$propName} and $shortVal
3864 238 0 231 defined $et->{'VALUE'}{$name} and $et->{'VALUE'}{$name} eq $tval
3913 3558 0 16 $prop eq "rdf:Description" and $val
3918 3509 63 2 $val eq "" and $attrs =~ /\brdf:(?:value|resource)=(['"])(.*?)\1/ || $attrs =~ /\brdf:about=(['"])(.*?)\1/
3930 3593 0 8 $lastProp eq "rdf:type" and $wasEmpty
3593 0 0 $lastProp =~ /^et:(desc|prt|val)$/ and $count || $1 eq 'desc'
3971 7439 276 4 $processBlankInfo and %{$blankInfo->{'Prop'};}
4016 292 2 9 $Image::ExifTool::MWG::strict || $et->{'OPTIONS'}{'Validate'} and not $et->{'XMP_CAPTURE'} || $et->{'DOC_NUM'}
294 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'
4021 1 6 0 $stdPath{$et->{'FILE_TYPE'}} && $path ne $stdPath{$et->{'FILE_TYPE'}}
4022 7 0 0 $nonStd and $Image::ExifTool::MWG::strict
4080 0 0 7 defined $fmt and not $fmt
0 6 1 defined $fmt and not $fmt and $buf2 =~ /^[^\n\r]*[\n\r]+<\?aid /s
4117 6 1 0 $isSVG and $et->{'XMP_CAPTURE'}
4137 0 2 0 $ext and $ext eq "MODD"
4142 53 0 3 $isXML and not $hasXMP
53 3 0 $isXML and not $hasXMP and not $isRDF
4147 0 0 0 $ext and $ext eq "COS"
4153 60 0 0 $fast and $fast == 3
4155 56 3 1 $type and $type eq "INX"
4222 235 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
4228 40 0 0 $blockExtract and $blockExtract > 1
4232 279 0 1 $et->Options("Verbose") and not $et->{'XMP_CAPTURE'}
4244 66 0 1 $$dataPt =~ / $dirStart
66 0 1 $$dataPt =~ / $dirStart and pos $$dataPt < $dirEnd
4284 272 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'}
4338 0 0 0 $dirInfo->{'DirName'} and $dirInfo->{'DirName'} eq "XMP"
4354 0 214 66 $rtnVal and $dirInfo->{'RAF'}

or 2 conditions

line l !l condition
2862 3570 224 $namespace || ''
2988 59 1615 $fieldInfo->{'List'} || 1
3181 118 1 $5 || ''
3337 22 0 $tagTablePtr->{'NAMESPACE'} || ''
3556 154 0 $et->{'XMPParseOpts'}{'FoundProc'} || \&Image::ExifTool::XMP::FoundXMP
4030 0 7 $et->{'DIR_COUNT'}{'XMP'} || 0
4034 125 95 $dirInfo->{'DirStart'} || 0
4227 2 38 $dirInfo->{'BlockInfo'} || 'XMP'

or 3 conditions

line l !l&&r !l&&!r condition
2688 0 0 0 $str =~ /[\0-\x1f]/ or &Image::ExifTool::IsUTF8(\$str) < 0
2753 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
2758 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
2821 38774 0 27644 $ignoreNamespace{$ns} or $ignoreProp{$prop}
2836 0 70 222 $Image::ExifTool::XMP::stdXlatNS{$ns} || $ns
2953 636 4241 0 $fieldInfo->{'FlatName'} || $fieldName
2968 1 32 226 $_ eq "PropertyPath" or defined $flatInfo->{$_}
2988 59 1615 1007 $fieldInfo->{'List'} or $tagInfo->{'List'}
3000 2722 2151 0 $tagInfo->{'RootTagInfo'} || $tagInfo
3054 0 0 0 defined $buff or $raf->Read($buff, 65536)
3106 0 0 0 $make =~ /$mk/i or $alt{$mk} and $make =~ /$alt{$mk}/i
3108 0 0 0 {'Sigma', 'SigmaRaw', 'Leica', 'Panasonic'}->{$mk} || $mk
3113 0 0 0 {'Nikon', 'nikonLensIDs'}->{$mk} || lc($mk) . 'LensTypes'
3129 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)
3166 0 0 0 $printConv->{$id} || "Unknown ($id)"
3273 157 0 0 $ns =~ /^[A-Z_a-z\x80-\xff][-.0-9A-Z_a-z\x80-\xff]*$/ or $ns eq ""
3295 207 11 3418 not $tagInfo or $tagInfo->{'Flat'}
3327 1 0 22 $strTable->{'NAMESPACE'} or not exists $strTable->{'NAMESPACE'}
3334 4 18 0 $xmpNS{$n} || $n
3349 0 0 22 not $sti or $sti->{'Flat'}
3426 1 0 3432 $attrs->{'rdf:datatype'} || $attrs->{'et:encoding'}
3429 1 0 0 length $$val > 100 or $$val =~ /[\0-\x08\x0b\0x0c\x0e-\x1f]/
3458 1394 236 2006 $fmt or $new
3460 236 197 1197 $new || $fmt eq 'rational'
3463 234 166 1031 $new or $fmt eq "date"
3480 151 178 339 @structProps > 1 || defined $structProps[0][1]
3507 1 0 0 $rawVal || $val
3521 0 0 0 $subdir->{'DirName'} || $tagInfo->{'Name'}
3527 0 0 0 &GetTagTable($subdir->{'TagTable'}) || $tagTablePtr
3581 1 2982 8263 not $$dataPt =~ m[<([?/]?)([-\w:.\x80-\xff]+|!--)([^>]*)>]gs or pos $$dataPt > $end
3588 158 0 0 $attrs =~ /--$/ or $$dataPt =~ /-->/gs
3604 0 0 7742 not $$dataPt =~ m[<(/?)$prop([-\w:.\x80-\xff]*)(.*?(/?))>]gs or pos $$dataPt > $end
3626 0 0 0 $Image::ExifTool::XMP::stdXlatNS{$1} || $1
3627 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"}
3683 2 0 44 $curURI->{$ns} or $Image::ExifTool::XMP::nsURI{$ns}
3749 560 71 785 $nItems or grep /^rdf:li /, @$propList
3790 0 0 16 $et->{'OPTIONS'}{'Unknown'} > 1 or $et->{'OPTIONS'}{'Verbose'}
3796 1 1 14 $prop eq "svg" or $prop eq "metadata"
3847 56 10 266 $stdNS eq 'x' || $stdNS eq 'iX'
3858 2821 0 802 $ignoreNamespace{$ns} or $ignoreProp{$prop}
3885 626 0 18 not $shorthand or $valEnd != $valStart
3905 102 6189 22 $valStart == $valEnd or not &ParseXMPElement($et, $tagTablePtr, $dataPt, $valStart, $valEnd, $propList, $blankInfo)
3918 15 2 48 $attrs =~ /\brdf:(?:value|resource)=(['"])(.*?)\1/ || $attrs =~ /\brdf:about=(['"])(.*?)\1/
3927 3575 39 13 length $val or not $shorthand
3930 0 0 0 $count || $1 eq 'desc'
3950 0 0 0 $et->{'definedNS'}{$_} or $_ eq "xml"
4016 11 0 292 $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'
4035 192 28 0 $dirInfo->{'DirLen'} || length($$dataPt) - $dirStart
4036 193 27 0 $dirInfo->{'DataLen'} || length $$dataPt
4222 27 0 235 $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
4244 7 0 273 $isXML or $isRDF
4292 33 0 1 $dirStart or $dirEnd != length $$dataPt
4335 5 0 275 $dirInfo->{'BlockInfo'} or $dirInfo->{'NoStruct'}