Condition Coverage

blib/lib/Inline/CPP.pm
Criterion Covered Total %
condition 90 118 76.2


and 3 conditions

line !l l&&!r l&&r condition
175 0 0 18 defined $value->{$cpp_class} and length $cpp_class != 0
0 1 17 defined $value->{$cpp_class} and length $cpp_class != 0 and $cpp_class =~ /[a-zA-Z]\w*/x
179 0 1 16 length $perl_class != 0 and $perl_class =~ /[a-zA-Z]\w*/x
244 0 0 0 $scope eq 'public' and $type eq 'method'
318 44 0 0 not defined $data->{'classes'} || defined $data->{'functions'} and $^W
388 59 137 1 $_->{'thing'} eq 'method' && $_->{'abstract'}
397 193 4 0 $abstract and $name eq $class || $name eq "~$class"
398 59 136 1 $type eq 'method' and $thing->{'abstract'}
400 12 0 131 $type eq 'method' and not $name =~ /operator/
423 188 0 9 $type eq 'inherits' and $scope eq 'public'
530 127 19 1 @args and $thing->{'arg_names'}[$args[-1]] eq '...'
535 72 68 7 $thing->{'return_type'} && $thing->{'return_type'} eq 'void'
618 140 0 7 $void and @CODE
620 130 7 10 @CODE and not $void
655 8 7 27 $class and not $ctor || $dtor
663 46 3 6 $const and $type =~ /[*&]/x
745 7 69 0 $t ne 'void' and not $o->typeconv('', '', $t, 'output_expr')
752 1 41 0 $_ ne '...' and not $o->typeconv('', '', $_, 'input_expr')

or 2 conditions

line l !l condition
65 38 49 $o->{'STRUCT'} ||= {'.macros', '', '.any', 0, '.xs', '', '.all', 0}
159 11 8 $value ||= 'main'
247 0 0 $thing->{'return_type'} || ''
424 5 4 $o->{'ILSM'}{'XS'}{'BOOT'} ||= ''
514 131 16 $class ||= ''

or 3 conditions

line l !l&&r !l&&!r condition
56 38 49 0 $o->{'ILSM'}{'MAKEFILE'}{'CC'} ||= $Inline::CPP::Config::compiler
57 38 49 0 $o->{'ILSM'}{'MAKEFILE'}{'LIBS'} ||= _make_arrayref($Inline::CPP::Config::libs)
101 38 49 0 $o->{'ILSM'}{'AUTO_INCLUDE'} ||= $auto_include
117 0 0 42 $key eq 'PRESERVE_ELLIPSIS' or $key eq 'STD_IOSTREAM'
130 0 0 0 $value == 0 or $value == 1
151 8 11 1 length $value == 0 or $value =~ / \A $ident (?:::$ident)* \z /x
168 3 11 1 $ref_value eq 'CODE' or $ref_value eq 'HASH'
318 38 6 0 defined $data->{'classes'} || defined $data->{'functions'}
397 1 0 3 $name eq $class || $name eq "~$class"
406 76 47 8 $ctor ||= $name eq $class
407 27 25 79 $dtor ||= $name eq "~$class"
413 47 1 1 $ctor or $abstract
415 25 1 23 $dtor or $abstract
541 6 1 140 scalar @opts || $ellipsis
550 7 1 139 $void or $ellipsis
555 1 0 133 $ellipsis or $thing->{'rconst'}
655 6 1 27 $ctor || $dtor
742 47 25 76 $ctor or $dtor