Branch Coverage

blib/lib/Make.pm
Criterion Covered Total %
branch 154 178 86.5


line true false branch
37 5 5 unless $cmd =~ /\bcd\s+([^\s;&]+)\s*(?:;|&&)\s*make\s*(.*)/
52 0 11 unless eval { do { require "$pkg.pm"; 1 } }
71 131 110 unless (exists $self->{'Depend'}{$target})
73 33 98 if ($target =~ /%/) { }
61 37 elsif ($target =~ /^\./) { }
85 0 43 unless defined $target
101 32 85 if $pat eq '%'
104 2 83 unless exists $pattern_cache{$pat}
107 27 58 if ($target =~ /^$pat$/)
115 5 109 if defined $file and $fsmap->{'is_abs'}->($file)
116 75 34 defined $dir ? :
132 6 15 unless defined(my $Pat = patmatch($key, $file))
135 3 12 if &$readable(in_dir($fsmap, $self->{'InDir'}, $maybe_file))
149 418 44 unless my $r = delete $$Dot{$f . $t}
154 0 44 if @{$thisrule->prereqs;}
168 48 19 unless (exists $date{$name})
183 52 44 unless defined(my $Pat = patmatch($key, $target))
189 0 44 unless @dep
193 3 41 if $self->date($this_dep) or $self->has_target($this_dep)
195 3 38 if (defined $maybe)
202 38 6 if @failed
213 2 61 unless length $key
214 51 10 if ($key =~ /^([\w._]+|\S)(?::(.*))?$/) { }
9 1 elsif ($key =~ /([\w._]+)\s+(.*)$/) { }
1 0 elsif ($key =~ /^\S*\$/) { }
217 50 20 if defined($value = $hash->{$var})
219 1 50 unless defined $value
220 1 50 if (defined $subst)
222 0 1 if @parts != 2
230 9 0 if $code = $package->can($func)
232 0 9 unless defined $code
248 0 268 unless defined $remaining
252 266 65 unless $remaining =~ s/(.*?)\$//
255 1 64 if ($char eq '$') { }
49 15 elsif ($char =~ /[\{\(]/) { }
262 2 47 unless defined $found
270 0 62 unless (defined $value)
295 22 92 unless defined $line
302 0 4 unless defined $line
341 0 99 if $type eq 'comment'
342 6 93 if ($type eq 'include') { }
15 78 elsif ($type eq 'var') { }
3 75 elsif ($type eq 'vpath') { }
75 0 elsif ($type eq 'rule') { }
346 3 3 if $opt ne '-'
358 15 0 defined $args[1] ? :
368 13 62 unless $targets->[0] =~ /%|^\./
370 60 15 unless (@$targets == 1 and $targets->[0] =~ /^\.[A-Z]/)
389 22 61 unless defined $_
391 3 58 unless length $_
392 6 52 if (/^(-?)include\s+(.*)$/) { }
1 51 elsif (s/^#+\s*//) { }
17 34 elsif (/^\s*([\w._]+)\s*:?=\s*(.*)$/) { }
4 30 elsif (/^vpath\s+(\S+)\s+([^#]*)/) { }
30 0 elsif (/^ \s* ([^:\#]*?) \s* (::?) \s* ((?:[^;\#]*\#.*|.*?)) (?:\s*;\s*(.*))? $/sx) { }
419 5 25 defined $maybe_cmd ? :
423 1 41 if /^\s*#/
424 8 33 if /^\s*$/
425 14 19 unless /^\t/
426 0 19 if /^\s*$/
449 15 29 if (defined $t)
465 10 2 if @dirs
468 1 11 if defined $file
470 2 9 if $self->{'GNU'}
475 11 9 if $fsmap->{'file_readable'}->($_)
483 3 8 if (ref $file eq 'SCALAR') { }
518 10 3 if $prefix =~ /\@/
519 2 11 if $prefix =~ /-/
553 0 8 unless $parsed->{'silent'}
555 0 8 if ($code and not $parsed->{'can_fail'})
572 1 5 if (/^(\w+)=(.*)$/) { }
591 5 5 if @rec_vars = &$rf($cmd)
593 5 5 unless @rec_vars
617 4 4 $no_rules ? :
629 11 11 $no_rules ? :
638 6 6 if ($no_rules) { }
648 2 10 $no_rules && !@$prereqs ? :
650 10 8 $no_rules ? :
652 10 8 if ($no_rules) { }
660 4 8 unless $recursive_make
663 2 2 $no_rules ? :
665 0 4 unless $indir_makefile and &$fr($indir_makefile)
669 4 0 unless ($seen{$cache_key}++)
673 4 0 unless @$targets
677 8 11 if $no_rules
684 2 2 if ($no_rules) { }
706 1 4 unless @$targets
709 0 5 if @bad_targets
717 0 0 $^O eq 'MSWin32' ? :