Branch Coverage

blib/lib/Inline.pm
Criterion Covered Total %
branch 140 452 30.9


line true false branch
97 0 26 if ($class ne 'Inline')
98 0 0 if $class =~ /^Inline::/
104 0 26 unless @_
105 0 26 if $_[0] eq '_CONFIG_'
106 0 26 if $_[0] =~ /^(install|makedist|makeppd)$/i
110 2 24 if (uc $control eq 'WITH') { }
8 16 elsif (uc $control eq 'CONFIG') { }
0 16 elsif (exists $shortcuts{uc $control}) { }
16 0 elsif ($control =~ /^\S+$/ and not $control =~ /\n/) { }
127 5 5 if $next++ % 2
128 0 5 if /[\s\n]/
135 0 16 if ($option =~ /^(FILE|BELOW)$/i or not $option and defined $INC{'File::Spec::Unix'->catfile('Inline', 'Files.pm')} and Inline::Files::get_filename($pkg)) { }
5 11 elsif ($option eq 'DATA' or not $option) { }
3 8 elsif (uc $option eq 'CONFIG') { }
173 0 3 unless $class eq 'Inline'
177 0 3 unless my $language_id = shift()
178 0 3 unless $language_id =~ /^\S+$/ and not $language_id =~ /\n/
180 0 3 unless $code = shift()
185 0 0 if $next++ % 2
186 0 0 if /[\s\n]/
225 0 8 if @DATA_OBJS
226 0 8 if $version_requested and not $version_printed
233 0 0 if $version_printed++
248 14 2 unless $CONFIG{$pkg}{$language_id}
249 0 16 unless $o->{'CONFIG'}
255 0 16 if UNTAINT()
256 16 0 unless ($o->{'INLINE'}{'object_ready'})
260 0 13 unless $o->{'API'}{'code'}
263 0 13 if UNTAINT()
264 0 13 if UNTAINT()
265 0 13 if $version_requested
266 0 13 if $o->{'CONFIG'}{'REPORTBUG'}
267 13 0 if (not $o->{'INLINE'}{'object_ready'} or $o->{'CONFIG'}{'PRINT_INFO'}) { }
271 0 13 if $@
279 0 13 if $o->{'CONFIG'}{'PRINT_INFO'}
280 13 0 unless ($o->{'INLINE'}{'object_ready'} or not length $o->{'INLINE'}{'ILSM_suffix'})
283 13 0 unless $o->{'CONFIG'}{'_INSTALL_'}
285 0 13 if ($o->{'INLINE'}{'ILSM_suffix'} ne 'so' and $o->{'INLINE'}{'ILSM_suffix'} ne 'dll' and $o->{'INLINE'}{'ILSM_suffix'} ne 'bundle' and $o->{'INLINE'}{'ILSM_suffix'} ne 'sl' and ref $o eq 'Inline')
292 0 0 if $@
309 0 0 /^Parser?(Pegex|RegExp|RecDescent)$/ ? :
311 0 0 /::/ ? :
0 0 /^::/ ? :
317 0 0 if $@
320 0 0 if $@
323 0 0 if defined $o->{'OVERRIDDEN'}{$ilsm . "::$override"}
339 13 0 $] >= 5.006 ? :
358 3 2 unless ($DATA_read{$pkg}++)
365 3 0 unless (do { $DATA{$pkg} }->[0] || '') =~ /__\S+?__\n/
368 0 5 unless defined $marker
371 0 5 unless $marker_tag eq $language_id
383 352 5 if (defined $default_config->{$key}) { }
384 32 320 if ($key =~ /^(WITH|USING)$/)
385 0 32 if ref $value and ref $value ne 'ARRAY'
387 0 32 unless ref $value
391 240 80 unless $value
392 16 64 if ($key eq 'DIRECTORY') { }
0 64 elsif ($key eq 'NAME') { }
0 64 elsif ($key eq 'VERSION') { }
393 0 16 unless -d $value
397 0 0 unless $value =~ /^[a-zA-Z_](\w|::)*$/
401 0 0 unless version::is_lax($value)
444 0 16 $untaint ? :
16 0 $o->{'CONFIG'}{'SAFEMODE'} == -1 ? :
445 0 0 if (UNTAINT() and SAFEMODE() and not $o->{'CONFIG'}{'DIRECTORY'})
448 0 0 if $< == 0 or $> == 0
449 0 0 if $^W
451 16 0 if ($o->{'CONFIG'}{'AUTONAME'} == -1)
452 0 16 length $o->{'CONFIG'}{'NAME'} ? :
464 0 16 if ($o->{'API'}{'code'} =~ /^[A-Fa-f0-9]{32}$/) { }
467 1 15 if (utf8::is_utf8($encoded_code))
475 0 16 if $o->{'CONFIG'}{'_INSTALL_'}
476 16 0 unless $o->{'CONFIG'}{'VERSION'}
478 0 0 unless $o->{'CONFIG'}{'NAME'}
483 0 0 unless my $realpath = $INC{$realname_unix}
488 0 0 unless $dirparts[-1]
492 0 0 if $dirparts[-2] eq 'blib' and $dirparts[-1] eq 'lib'
494 0 0 unless 'File::Spec'->catfile(@endparts) eq $realname
509 0 0 unless -f $obj
530 0 0 if $o->{'CONFIG'}{'_INSTALL_'}
533 0 0 unless $o->{'INLINE'}{'ILSM_type'} eq 'compiled'
538 0 0 $o->{'CONFIG'}{'GLOBAL_LOAD'} ? :
552 0 0 if $@
563 0 0 unless open INLINE, "> $inline"
579 0 13 if $key =~ /[\s\n]/
580 2 11 if ($key =~ /^(ENABLE|DISABLE)$/)
581 0 2 $key eq 'ENABLE' ? :
584 0 13 unless defined $default_config->{$key}
593 18 1 unless shift()
597 0 5 if $key =~ /[\s\n]/
598 3 2 if ($key eq 'ENABLE') { }
0 2 elsif ($key eq 'DISABLE') { }
619 0 0 if ($OPTION eq 'SITE_INSTALL') { }
0 0 elsif ($shortcuts{$OPTION}) { }
637 0 2 unless @_
639 0 2 unless /^[\w:]+$/
641 0 2 if $@
651 0 19 if $o->{'CONFIG'}{'CLEAN_BUILD_AREA'}
661 0 11 unless defined $code and $code
663 0 11 if (ref $code eq 'CODE') { }
0 11 elsif (ref $code eq 'ARRAY') { }
1 10 elsif ($code =~ m[[/\\:]] and $code =~ m(^[/\\:\w.\-\ \$\[\]<>]+$)) { }
671 1 0 if (-f $code) { }
673 0 1 unless open CODE, "< $code"
692 0 0 unless $langfile =~ /^[A-Z]\w*$/
694 0 0 unless defined $INC{'File::Spec::Unix'->catfile('Inline', 'Files.pm')} and $Inline::Files::VERSION =~ /^\d\.\d\d$/ and $Inline::Files::VERSION ge '0.51'
697 0 0 unless $lang = Inline::Files::get_filename($pkg)
716 0 16 if $Inline::Config::VERSION
718 0 16 if $o->{'INLINE'}{'md5'} eq $o->{'API'}{'code'}
721 0 16 if ($o->{'CONFIG'}{'_INSTALL_'}) { }
723 0 0 if $o->{'CONFIG'}{'DIRECTORY'}
727 0 0 unless (-d $DIRECTORY)
728 0 0 unless _mkdir($DIRECTORY, 511)
737 1 15 if ($o->{'CONFIG'}{'REWRITE_CONFIG_FILE'})
738 1 0 if (-e 'File::Spec'->catfile($DIRECTORY, $configuration_file))
740 0 1 if (not $unlink) { }
741 1 0 if $o->{'CONFIG'}{'_TESTING'}
746 10 9 unless -e 'File::Spec'->catfile($DIRECTORY, $configuration_file)
749 0 19 unless open CONFIG, '< ' . 'File::Spec'->catfile($DIRECTORY, $configuration_file)
751 19 0 unless $^O =~ /^VMS|riscos|VOS$/
753 19 0 unless $^O =~ /^VMS|riscos|VOS$/
756 0 19 unless ($config =~ /^version :/)
761 0 19 if (UNTAINT())
763 0 0 unless $o->{'CONFIG'}{'NO_UNTAINT_WARN'}
771 3 13 unless (defined $config{'languages'}{$o->{'API'}{'language_id'}})
773 0 3 if (not $unlink) { }
774 1 2 if $o->{'CONFIG'}{'_TESTING'}
787 0 16 unless defined $config{'version'} and $config{'version'} =~ /TRIAL/ or $config{'version'} >= 0.4
791 3 13 unless defined $config{'languages'}{$o->{'API'}{'language_id'}}
793 1 12 if ($o->{'API'}{'language'} ne $o->{'API'}{'language_id'})
794 0 1 if (defined $$o{$o->{'API'}{'language_id'}})
815 10 0 defined $ENV{'PERL5LIB'} ? :
817 0 10 if ($^O eq 'MSWin32')
828 0 10 if UNTAINT()
841 10 0 if (defined $o)
842 0 10 if UNTAINT()
844 0 10 unless -f $perl
845 0 10 if UNTAINT()
846 0 10 if defined $ENV{'PERL5OPT'}
849 0 10 if system $perl, @_inc, '-MInline=_CONFIG_', '-e1', "$dir"
857 0 0 unless -d 'File::Spec'->catdir($lib, 'Inline')
858 0 0 unless opendir LIB, 'File::Spec'->catdir($lib, 'Inline')
861 0 0 unless $mod =~ /\.pm$/
863 0 0 if $checked{$mod}++
864 0 0 if ($mod eq 'Config')
868 0 0 if $mod =~ /^(MakeMaker|denter|messages)$/
872 0 0 if $@
874 0 0 if $@
876 0 0 unless my $language = $register->{'language'}
879 0 0 if defined $languages{$_}
891 0 0 unless open CONFIG, "> $file"
892 0 0 unless $^O =~ /^VMS|riscos|VOS$/
900 0 0 unless $^O =~ /^VMS|riscos|VOS$/
911 0 13 if $o->{'CONFIG'}{'_INSTALL_'}
913 0 13 if ($o->{'CONFIG'}{'NAME'}) { }
13 0 elsif ($o->{'API'}{'pkg'} eq 'main') { }
923 0 13 if $module =~ /^_*$/
924 13 0 if $module =~ /^\d/
935 13 0 if ($o->{'CONFIG'}{'AUTONAME'}) { }
958 13 0 unless -f $inl
961 0 0 unless open INL, $inl
964 0 0 unless $o->{'INLINE'}{'md5'} eq $inl{'md5'}
965 0 0 unless $inl{'inline_version'} ge '0.40'
966 0 0 unless $inl{'Config'}{'version'} eq $Config::Config{'version'}
967 0 0 unless $inl{'Config'}{'archname'} eq $Config::Config{'archname'}
968 0 0 unless (-f $o->{'API'}{'location'})
969 0 0 if $^W
975 0 0 unless $o->{'CONFIG'}{'FORCE_BUILD'}
990 0 0 unless uc($o->{'API'}{'language_id'}) =~ /^(C|CPP|Java|Python|Ruby|Lisp|Pdlpp)$/
992 0 0 if $o->{'API'}{'pkg'} eq 'main'
994 0 0 if $o->{'CONFIG'}{'AUTONAME'}
996 0 0 unless $o->{'CONFIG'}{'NAME'}
998 0 0 unless $o->{'CONFIG'}{'VERSION'}
1000 0 0 unless $o->{'CONFIG'}{'NAME'} eq $o->{'API'}{'pkg'}
1006 0 0 unless $mod_ver eq $ext_ver
1039 0 13 unless open INL, "> $inl"
1072 0 1 if $@
1073 0 1 unless $ref
1084 0 0 unless $o->{'CONFIG'}{'NO_UNTAINT_WARN'}
1095 0 0 if not /^\./
1098 0 0 $< == $> ? :
0 0 if m[^/] and -d $_
1099 0 0 $^O eq 'MSWin32' ? :
1105 0 0 if -x '/bin/sh'
1107 0 0 if $< != $>
1114 0 0 unless $o->{'CONFIG'}{'NO_UNTAINT_WARN'}
1136 0 0 unless opendir BUILD, $prefix
1141 0 0 if ($maybedir and -d $maybedir and $dir =~ /\w{36,}/)
1156 0 0 unless ref $_
1157 0 0 if (ref $_ eq 'CODE') { }
1173 0 0 if $o->{'INLINE'}{'reportbug_handled'}++
1213 0 0 unless open REPORTBUG, '> ' . 'File::Spec'->catfile($o->{'API'}{'build_dir'}, 'REPORTBUG')
1239 0 0 if $o->{'INLINE'}{'object_ready'}
1245 0 0 if $o->{'INLINE'}{'object_ready'} and $o->{'CONFIG'}{'FORCE_BUILD'}
1254 0 0 unless $o->{'INLINE'}{'object_ready'}
1266 0 0 if $@
1298 23 94 unless -d $path
1300 0 13 unless -d $mkpath
1311 0 0 $prefix ? :
1315 0 0 $prefix ? :
1316 0 0 if UNTAINT()
1317 0 0 unless rmdir $rmpath
1325 0 0 unless ref $roots
1328 0 0 if (-d $root) { }
1330 0 0 if (opendir MYDIR, $root) { }
1341 0 0 if $name eq $dot or $name eq $dotdot
1343 0 0 if $maybefile and -f $maybefile
1348 0 0 if UNTAINT()
1349 0 0 unless rmdir $root
1352 0 0 if UNTAINT()
1353 0 0 unless unlink $root
1363 0 0 if $TEMP_DIR
1368 0 0 $ENV{'HOME'} ? :
1370 0 0 if ($env and -d $env and -w $env) { }
0 0 elsif ($cwd = abs_path('.') and $cwd ne $home and -d 'File::Spec'->catdir($cwd, '.Inline') and -w 'File::Spec'->catdir($cwd, '.Inline')) { }
1383 0 0 if ($bin = $FindBin::Bin and -d 'File::Spec'->catdir($bin, '.Inline') and -w 'File::Spec'->catdir($bin, '.Inline')) { }
0 0 elsif ($home and -d 'File::Spec'->catdir($home, '.Inline') and -w 'File::Spec'->catdir($home, '.Inline')) { }
0 0 elsif (defined $cwd and $cwd and -d 'File::Spec'->catdir($cwd, $did) and -w 'File::Spec'->catdir($cwd, $did)) { }
0 0 elsif (defined $bin and $bin and -d 'File::Spec'->catdir($bin, $did) and -w 'File::Spec'->catdir($bin, $did)) { }
0 0 elsif (defined $cwd and $cwd and -d $cwd and -w $cwd and _mkdir('File::Spec'->catdir($cwd, $did), 511)) { }
0 0 elsif (defined $bin and $bin and -d $bin and -w $bin and _mkdir('File::Spec'->catdir($bin, $did), 511)) { }
1417 0 0 unless $temp_dir
1425 0 23 if UNTAINT()
1457 0 0 if defined $languages
1474 0 0 if defined $languages
1624 3 0 defined $languages ? :
1933 0 0 $terminate ? :