Branch Coverage

blib/lib/XS/Install/ParseXS.pm
Criterion Covered Total %
branch 53 142 37.3


line true false branch
44 8 0 if $lines->[$i] =~ /^(PP)?CODE\s*:/
53 2 28 if $lines->[$idx] =~ /^[a-zA-Z0-9]+\s*:/
86 1 0 if ($new_parsexs)
102 7 0 unless $_[0] =~ /^MODE\s*:\s*(\w+)\s*$/
113 3 7 unless @$lines
115 0 7 if (get_mode($lines->[0]) eq "INLINE")
121 0 7 if ($self->{'xsi'}{'inline_mode'})
125 0 0 if (get_mode($line) eq "XS")
131 0 0 unless @$lines
135 0 7 if (@$lines == 2)
141 1 6 if ($lines->[0] and $lines->[0] =~ /^([A-Z]+)\s*\{/)
143 1 0 if ($lines->[-1] =~ /^\}/)
148 4 3 if ($lines->[0] and $lines->[0] =~ /^(.+?)\s+([^\s()]+\s*(\((?:[^()]|(?3))*\)))\s*(.*)/)
154 4 0 if ((my $idx = index($rest, '{')) >= 0) { }
0 0 elsif ($lines->[0] and $lines->[0] =~ s/^\s*\{//) { }
158 0 4 if ($content =~ /\S/)
164 0 0 unless ($lines->[0] =~ /\S/)
170 4 0 if ($remove_closing)
172 4 0 unless ($lines->[-1] =~ /\S/)
174 0 4 unless ($lines->[0] and $lines->[0] =~ /\S/)
180 4 0 if (length $lines->[0])
181 2 2 $type =~ /^void(\s|$)/ ? :
185 0 4 if ($rest =~ /:(.+)/)
192 0 0 if ($attr eq 'ALIAS' and my @alias = split(/\s*,\s*/, $val, 0)) { }
0 0 elsif ($attr eq 'CONST') { }
0 0 elsif (defined $val) { }
213 1 6 if ($lines->[0] =~ /^BOOT\s*:/)
225 0 7 unless my $out_type = $lines->[0]
227 3 4 if not $out_type or $out_type =~ /^#/ or $out_type =~ /^[_A-Z]+\s*:([^:]|$)/
231 0 4 unless $sig =~ /^([^(]+)\((.*)\)\s*$/
239 0 8 if $str =~ s/\s*=\s*(.+)$//
240 4 4 if $str =~ s/([a-zA-Z0-9_\$]+)\s*$//
243 2 6 if ($str eq '...') { }
0 6 elsif (not $info{'type'} || $info{'name'}) { }
2 4 elsif (not $info{'type'} && $info{'name'}) { }
252 0 2 unless $info{'type'}
254 2 0 $new_parsexs ? :
261 0 4 if ($func =~ s/^(.+):://)
262 0 0 $func eq 'new' ? :
267 0 4 if exists $attrs{'const'} or exists $attrs{'CONST'}
272 0 4 unless ($para =~ /^(PP)?CODE\s*:/m)
274 0 0 $void ? :
276 0 0 if ($func ne "new" and $func ne 'DESTROY' || !$is_method)
279 0 0 if ($is_method)
284 0 0 unless $void
291 2 2 if ($para =~ /^CODE\s*:/m and not $para =~ /^OUTPUT\s*:/m)
306 0 6 defined $_->{'default'} ? :
307 2 2 if $variadic
313 0 4 if (is_empty($lines))
314 0 0 if ($func eq 'DESTROY' and $is_method) { }
0 0 elsif ($func eq 'new') { }
329 2 6 if $self->{'var'} =~ /^_____unused/
340 0 0 unless ($new_type)
346 0 0 unless $ret_type =~ /\*$/
358 14 0 if $ret
379 0 1 if -e "typemap"
427 0 0 if /^\s*NOT_IMPLEMENTED_YET/
428 0 0 unless /\S/
434 0 0 unless /[=;+].*\S/
437 0 0 if (s/^([^=]*)\blength\(\s*(\w+)\s*\)\s*$/$1 XSauto_length_of_$2=NO_INIT/x)
445 0 0 if s/\s*([=;+].*)$//s
452 0 0 unless my($var_type, $var_name) = /^(.*?[^\s])\s*\b(\w+)$/s
458 0 0 if $self->{'arg_list'}{$var_name}++ or defined $self->{'argtype_seen'}{$var_name} and not $self->{'processing_arg_with_types'}
467 0 0 if ($var_type =~ / \( \s* \* \s* \) /x) { }
478 0 0 if ($self->{'var_num'})
480 0 0 unless $typemap or $is_overridden_typemap
484 0 0 if $var_addr
485 0 0 if ($var_init =~ /^[=;]\s*NO_INIT\s*;?\s*$/ or $self->{'in_out'}{$var_name} and $self->{'in_out'}{$var_name} =~ /^OUT/ and not $var_init =~ /\S/) { }
0 0 elsif ($var_init =~ /\S/) { }
0 0 elsif ($self->{'var_num'}) { }
488 0 0 if ($printed_name) { }