Branch Coverage

blib/lib/FFI/C/StructDef.pm
Criterion Covered Total %
branch 93 114 81.5


line true false branch
28 12 70 unless defined $kind
38 2 44 delete $args{'trim_string'} ? :
43 6 40 unless delete $args{'members'}
39 7 if (my(@members) = @{[] unless delete $args{'members'};})
45 0 39 if scalar(@members) % 2
52 0 80 if ($name ne ":" and $self->{'members'}{$name})
57 0 80 if ($name eq ':') { }
0 80 elsif (not $name =~ /^[A-Za-z_][A-Za-z_0-9]*$/) { }
0 80 elsif ($name eq 'new') { }
70 4 76 if (my $def = $self->ffi->def('FFI::C::Def', $spec)) { }
4 72 elsif ($def = $self->ffi->def('FFI::C::EnumDef', $spec)) { }
79 14 66 if (XXX) { }
56 10 elsif ($self->_is_kind($spec, 'scalar')) { }
4 6 elsif ($self->_is_kind($spec, 'array')) { }
6 0 elsif ($self->_is_kind("$spec*", 'record')) { }
81 10 4 if ($spec->isa('FFI::C::Def')) { }
4 0 elsif ($spec->isa('FFI::C::EnumDef')) { }
83 1 9 if &refaddr($spec) == &refaddr($self)
111 0 4 unless $member{'count'} > 0
117 2 4 if $self->{'trim_string'}
121 0 6 if $@
128 59 20 if $member{'align'} > $self->{'align'}
130 18 61 if ($self->_is_union) { }
132 17 1 if $member{'size'} > $self->{'size'}
146 36 9 unless $self->_is_union
150 17 28 if ($self->class)
157 0 42 if $name =~ /^:/
161 0 42 if $member->{'nest'} and not $member->{'nest'}{'class'}
173 5 37 if ($self->{'members'}{$name}{'nest'}) { }
180 14 49 if @_
192 4 33 if ($self->{'members'}{$name}{'rec'}) { }
2 31 elsif (my $count = $self->{'members'}{$name}{'count'}) { }
2 29 elsif (my $enum = $self->{'members'}{$name}{'enum'}) { }
194 1 3 if ($self->{'trim_string'})
196 1 0 unless ("FFI::C::StructDef"->can("_cast_string"))
206 14 16 if (@_)
209 14 0 $size > $length ? :
222 42 14 if (defined $_[0])
224 2 40 if (XXX) { }
40 0 elsif (not XXX) { }
227 0 2 if @$array > $count
233 1 1 unless defined wantarray
238 2 38 if $index < 0
239 2 36 if $index >= $count
243 6 30 @_ ? :
259 1 1 if ($enum->rev eq 'str') { }
264 0 5 if @_ and XXX
269 1 0 exists $$int_lookup{$_[0]} ? :
1 1 exists $$str_lookup{$_[0]} ? :
274 2 3 @_ ? :
276 5 0 $int_lookup->{$ret} ? :
285 0 5 if @_ and XXX
290 1 0 exists $$int_lookup{$_[0]} ? :
1 1 exists $$str_lookup{$_[0]} ? :
295 2 3 @_ ? :
304 0 160 if @_ and XXX
307 52 108 @_ ? :