Branch Coverage

blib/lib/Test/Which.pm
Criterion Covered Total %
branch 90 170 52.9


line true false branch
330 3 12 if (@missing or @bad)
340 0 12 if ($ENV{'TEST_WHICH_VERBOSE'} or $ENV{'TEST_VERBOSE'} or $ENV{'HARNESS_IS_VERBOSE'})
346 0 0 if (defined $version) { }
355 0 12 unless $res->{'checked'}
363 0 15 unless defined $path
367 8 7 if (defined $custom_flags)
368 1 7 if (ref $custom_flags eq 'ARRAY') { }
7 0 elsif (not ref $custom_flags) { }
374 2 13 if exists $VERSION_CACHE{$cache_key}
378 6 7 if (not defined $custom_flags) { }
1 6 elsif (ref $custom_flags eq 'ARRAY') { }
6 0 elsif (not ref $custom_flags) { }
380 0 6 if $^O eq "MSWin32"
395 13 0 defined $TIMEOUT ? :
397 0 13 $^O eq 'MSWin32' ? :
398 0 13 $path =~ /\.(bat|cmd)$/i ? :
405 0 17 if ($is_win and $is_bat) { }
408 0 0 $path =~ /\s/ ? :
410 0 0 if defined $flag and length $flag
415 16 1 if defined $flag and length $flag
422 17 0 if (eval { do { require IPC::Run3; 1 } })
429 0 17 if ($@)
430 0 0 if $@ =~ /TIMEOUT/
437 6 11 unless ($ok)
439 0 6 if ($is_win and $is_bat) { }
0 6 elsif ($is_win) { }
441 0 0 $path =~ /\s/ ? :
443 0 0 if defined $flag and length $flag
448 0 0 defined $flag && length $flag ? :
455 6 0 if (defined $flag and length $flag) { }
471 0 6 if $@
475 6 11 unless $ok
481 0 11 if $is_win
497 2 12 unless defined $output
501 6 6 if ($output =~ /version[:\s]+v?(\d+(?:\.\d+)+)/i)
507 4 2 if ($first_line =~ /\b(\d+\.\d+(?:\.\d+)*)\b/)
512 2 0 if ($output =~ /\b(\d+\.\d+(?:\.\d+)*)\b/)
517 0 0 if ($output =~ /version[:\s]+v?(\d+)\b/i)
522 0 0 if ($output =~ /\b(\d+)\b/)
533 0 8 unless defined $found
540 7 1 @found_parts > @req_parts ? :
549 0 8 if ($@)
555 0 8 if ($@)
562 8 0 if ($op eq '>=') { }
0 0 elsif ($op eq '>') { }
0 0 elsif ($op eq '<=') { }
0 0 elsif ($op eq '<') { }
0 0 elsif ($op eq '==') { }
0 0 elsif ($op eq '!=') { }
570 8 0 $result ? :
577 0 9 unless defined $spec
579 9 0 if ($spec =~ /^\s*(>=|<=|==|!=|>|<)\s*([0-9][\w\.\-]*)\s*$/)
583 0 0 if ($spec =~ /^\s*(\d+(?:\.\d+)*)\s*$/)
605 0 15 unless (defined $name)
611 0 15 if (ref $name)
621 14 1 if ($i < @args)
624 14 0 if (defined $next)
626 3 11 if (not ref $next) { }
11 0 elsif (ref $next eq 'HASH') { }
627 3 0 if ($next =~ /^(?:>=|<=|==|!=|>|<)/ or $next =~ /^\d+(?:\.\d+)*$/)
653 15 0 unless ($name =~ m[^/] or $name =~ m[^[A-Za-z]:[\\/]])
656 1 14 unless ($path)
663 0 14 unless (-x $path)
672 1 13 unless (defined $want)
681 10 3 if (ref $want eq 'HASH') { }
3 0 elsif (not ref $want) { }
685 6 4 if exists $want->{'version_flag'}
687 5 5 if ($version_flag)
691 1 9 if (exists $want->{'timeout'})
695 10 0 if (exists $want->{'version'}) { }
698 0 10 if (exists $want->{'extractor'}) { }
700 0 0 if (ref $extractor eq "CODE")
709 1 9 unless (defined $found)
718 3 6 if (ref $version_spec eq 'Regexp') { }
6 0 elsif (not ref $version_spec) { }
719 0 3 unless ($found =~ /$version_spec/)
729 0 6 unless (defined $op)
736 0 6 unless (_version_satisfies($found, $op, $ver))
762 0 3 unless (defined $op)
773 1 2 unless (defined $found)
781 0 2 unless (_version_satisfies($found, $op, $ver))
816 12 0 unless @reqs
822 0 0 if (@missing or @bad)
831 0 0 if ($ENV{'TEST_WHICH_VERBOSE'} or $ENV{'TEST_VERBOSE'} or $ENV{'HARNESS_IS_VERBOSE'})
837 0 0 if (defined $version) { }