Branch Coverage

blib/lib/Convert/ASN1.pm
Criterion Covered Total %
branch 56 86 65.1


line true false branch
16 23 0 if require bytes
115 0 38 unless ($self->{'options'}{'encoding'} =~ /^[BD]ER$/)
123 0 38 unless ($self->{'options'}{'tagdefault'} =~ /^(?:EXPLICIT|IMPLICIT)$/)
130 7 69 if (exists $opt{$type})
143 0 16 unless exists $self->{'tree'}{$what}
154 0 98 unless ref $self
156 0 98 if (ref $asn eq 'GLOB') { }
164 0 98 unless ($tree)
183 0 0 unless (open ASN, $asnp)
218 11 95 @_ == 1 ? :
222 3 103 unless (eval { do { _encode($self->{'options'}, $self->{'script'}, $stash, [], $buf) } })
231 0 3 $_[0] & 8388608 ? :
3 3 $_[0] & 32768 ? :
6 826 $_[0] >> 8 ? :
247 6 192 if ($_[0] >> 7)
272 0 169 unless my $child = $script->[0]
273 112 57 if (@$script > 1 or defined $child->[2])
277 13 44 if $child->[1] == 15 or $child->[3]
293 3 129 unless eval { do { my(%stash, $result); my $script = $self->{'script'}; my $stash = \$result; while ($script) { last unless my $child = $script->[0]; if (@$script > 1 or defined $child->[2]) { $result = $stash = \%stash; last; } ; last if $child->[1] == 15 or $child->[3]; $script = $child->[6]; } ; _decode($self->{'options'}, $self->{'script'}, $stash, 0, length $_[0], undef, {}, $_[0]); $ret = $result; 1 } }
300 0 9 unless length $_[0]
304 4 5 if ($len & 128)
305 0 4 unless $len &= 127
307 0 4 if $len >= length $_[0]
316 2 9 unless length $_[0]
321 4 5 if (($tag & 31) == 31)
324 0 6 if $n >= length $_[0]
334 0 0 unless length $_[0]
340 0 0 if ($num == 31)
344 0 0 if $len >= length $_[0]
360 4 2 $_[0] >> 24 ? :
6 4 $_[0] >> 16 ? :
10 56 $_[0] >> 8 ? :
375 6 6 if my $neg = $num < 0
384 6 6 if $neg
395 5 11 if my $neg = unpack("C", $os) >= 128
400 5 11 $neg ? :
413 0 96 if $class & '18446744073709551391'
416 90 6 unless ($value & '18446744073709551584' or $value == 31)
420 0 6 if $value & 4292870144
434 23 0 unless (defined &Convert::ASN1::_encode)
444 0 0 if $Convert::ASN1::AUTOLOAD =~ /dump/
445 0 0 if defined &{$Convert::ASN1::AUTOLOAD;}
448 0 0 if ($pkg and UNIVERSAL::isa($pkg, 'Convert::ASN1')) { }