Branch Coverage

blib/lib/Data/Plist/BinaryReader.pm
Criterion Covered Total %
branch 62 76 81.5


line true false branch
50 4 3 if ($type == 0) { }
1 2 elsif ($type == 8) { }
1 1 elsif ($type == 9) { }
1 0 elsif ($type == 15) { }
80 268 53 if ($size == 0) { }
48 5 elsif ($size == 1) { }
3 2 elsif ($size == 2) { }
2 0 elsif ($size == 3) { }
90 1 1 if ($val->bcmp('Math::BigInt'->new(2)->bpow(63)) > 0)
117 0 3 if ($size == 2) { }
3 0 elsif ($size == 3) { }
141 0 1 if $size > 3 or $size < 2
166 1 4 if ($buf =~ /^bplist00/)
228 35 1 $$self{'refsize'} == 1 ? :
270 0 20 unless $$key[0] eq 'string'
313 393 8 if (defined $objNum)
315 0 393 unless $objNum < @{$$self{'offsets'};}
321 0 401 unless read $$self{'fh'}, $buf, 1
326 8 393 if $objType != 0 and $size == 15
342 0 401 unless $types{$objType}
344 0 401 unless $self->can($method)
363 2 50 unless length $str >= 8 and substr($str, 0, 8) eq 'bplist00'
365 4 46 unless length $str >= 40
367 1 45 unless length $str > 40
386 1 48 unless ref $self
394 1 48 unless ($buf eq 'bplist00')
399 0 48 unless eval { do { seek $$self{'fh'}, -32, 2 } }
403 0 48 unless $end >= 8
406 0 48 unless (read($$self{'fh'}, $buf, 32) == 32)
416 2 46 if ($OffsetSize < 1 or $OffsetSize > 4) { }
2 44 elsif ($$self{'refsize'} < 1 or $$self{'refsize'} > 2) { }
1 43 elsif (2 ** (8 * $$self{'refsize'}) < $NumObjects) { }
1 42 elsif ($TopObject >= $NumObjects) { }
2 40 elsif ($OffsetTableOffset < 8 or $OffsetTableOffset > $end or $OffsetTableOffset + $NumObjects * $OffsetSize > $end) { }
438 0 40 if ($readSize != $NumObjects * $OffsetSize)
445 2 38 if ($OffsetSize == 3)
450 394 3 unless $_ < 8 or $_ >= $end
5 35 if (grep {$_ >= $OffsetTableOffset and $_ < $OffsetTableOffset + $NumObjects * $OffsetSize unless $_ < 8 or $_ >= $end;} @Offsets)