Branch Coverage

blib/lib/CPAN/Shell.pm
Criterion Covered Total %
branch 31 614 5.0


line true false branch
113 0 10 if ($CPAN::Signal)
118 0 10 if ($CPAN::Shell::autoload_recursion > 1)
124 0 10 if ($l =~ /^w/) { }
126 0 0 if ($CPAN::META->has_inst('CPAN::WAIT')) { }
149 0 0 if (defined $about) { }
151 0 0 if (exists $CPAN::Shell::Help->{$about}) { }
152 0 0 if (ref $CPAN::Shell::Help->{$about})
200 0 0 unless /=/
212 0 0 if ($s =~ m[[\*\?/]]) { }
213 0 0 if ($CPAN::META->has_inst('Text::Glob')) { }
214 0 0 if (my($au, $pathglob) = $s =~ m[(.*?)/(.*)]) { }
216 0 0 if $CPAN::DEBUG
234 0 0 unless (m[^[A-Z0-9\-]+(/|$)]i)
245 0 0 if ($a =~ m[(.*?)/(.*)]) { }
248 0 0 unless $author = 'CPAN::Shell'->expand_by_method('CPAN::Author', ['id'], $a2)
253 0 0 unless $author = 'CPAN::Shell'->expand_by_method('CPAN::Author', ['id'], $a)
258 0 0 if ($silent)
261 0 0 if ($alpha eq $last_alpha) { }
270 0 0 if ($author->can($pragma))
274 0 0 if $CPAN::DEBUG
280 0 0 if ($author->can($unpragma))
296 0 0 if $CPAN::DEBUG
297 0 0 if ($dh = 'DirHandle'->new($bdir))
300 0 0 if $entry =~ /^\./
301 0 0 unless $entry =~ /^\w+(\.pm)?(?!\n)\Z/
302 0 0 if (-d 'File::Spec'->catdir($bdir, $entry)) { }
305 0 0 unless $entry =~ s/\.pm(?!\n)\Z//
317 0 0 if $CPAN::DEBUG
330 0 0 if (m[(?:\w+/)*\w+\.pm$])
342 0 0 unless @args
355 0 0 @result == 0 ? :
0 0 @result == 1 ? :
371 0 0 if ($o_type eq 'conf') { }
0 0 elsif ($o_type eq 'debug') { }
373 0 0 if @o_what
374 0 0 if (not @o_what or $cfilter) { }
377 0 0 if ($@)
384 0 0 unless $k =~ /$qrfilter/
390 0 0 unless $k =~ /$qrfilter/
395 0 0 if ('CPAN::HandleConfig'->edit(@o_what)) { }
403 0 0 if defined $o_what[0] and $o_what[0] =~ /help/i
404 0 0 if (@o_what) { }
407 0 0 if ($what =~ s/^-// and exists $CPAN::DEBUG{$what})
411 0 0 if (exists $CPAN::DEBUG{$what}) { }
0 0 elsif ($what =~ /^\d/) { }
0 0 elsif (lc $what eq 'all') { }
424 0 0 unless lc $_ eq lc $what
428 0 0 unless $known
441 0 0 if ($CPAN::DEBUG) { }
446 0 0 if $v & $CPAN::DEBUG
465 0 0 if ($_[0] =~ /[Ss]ubroutine ([\w:]+) redefined/)
471 0 0 if ($subr =~ /\bshell\b/i)
493 0 0 unless my $attempts = $last->{'attempts'}
495 0 0 if (@$attempts) { }
497 0 0 if ($#$attempts > 0)
499 0 0 unless my $url = $attempts->[$i]{'url'}
506 0 0 unless $last->{'thesiteurl'}
511 0 0 ref $last->{'thesiteurl'} ? :
521 0 0 if $S{'ok'}{$url}{'dltime'} == 0
533 0 0 if ($S{'start'} and $S{'end'})
534 0 0 $S{'start'} ? :
535 0 0 $S{'end'} ? :
537 0 0 if ($res->{'ok'} and @{$res->{'ok'};})
543 0 0 if --$i <= 0
546 0 0 if ($res->{'no'} and @{$res->{'no'};})
551 0 0 if --$i <= 0
562 0 0 if $CPAN::DEBUG
563 0 0 if ($command =~ /^cpan$/i) { }
0 0 elsif ($command =~ /^index$/i) { }
565 0 0 if $CPAN::iCwd
568 0 0 unless exists $INC{$f}
574 0 0 unless $self->_reload_this($f)
579 0 0 if ($failed)
580 0 0 $failed == 1 ? :
596 0 0 if $CPAN::DEBUG
597 0 0 unless $INC{$f}
600 0 0 if $CPAN::DEBUG
604 0 0 if -f $file
607 0 0 if $CPAN::DEBUG
609 0 0 unless ($file and -f $file)
612 0 0 if ('CPAN'->has_inst('File::Basename')) { }
619 0 0 if $CPAN::DEBUG
620 0 0 unless (-f $file)
629 0 0 if ($must_reload) { }
630 0 0 unless my $fh = 'FileHandle'->new($file)
638 0 0 if $CPAN::DEBUG
641 0 0 if ($includefile = $INC{$f} and -e $includefile)
647 0 0 if ($@)
661 0 0 if (my $configpm = $INC{'CPAN/MyConfig.pm'}) { }
683 0 0 if $file eq 'N/A'
684 0 0 if $file =~ /^Contact Author/
686 0 0 if $dist->isa_perl
687 0 0 unless $module->xs_file
725 0 0 unless ($CPAN::META->has_inst($req))
731 0 0 unless (-f $indexfile)
737 0 0 if ($arg =~ s[^/(.+)/$][$1])
742 0 0 unless $tag eq 'a'
745 0 0 unless $href =~ s[^\.\./authors/id/./../][]
746 0 0 if ($arg) { }
747 0 0 if ($qrarg) { }
748 0 0 if ($href =~ /$qrarg/)
752 0 0 if ($href =~ /\Q$arg\E/)
771 0 0 if (@{$stems{$_};} > 1) { }
773 0 0 Sort::Versions::versioncmp($a, $b) > 0 ? :
786 0 0 if (exists $contains->{$dist}) { }
0 0 elsif (1 == keys %$contains) { }
792 0 0 if ($module) { }
810 0 0 unless ($CPAN::META->has_inst('CPAN::Reporter'))
822 0 0 if @some
828 0 0 unless (-f $yaml)
834 0 0 unless ($id)
839 0 0 unless ($do)
843 0 0 unless ($do->{'build_dir'})
847 0 0 unless ($do->{'build_dir'} eq $b)
854 0 0 unless @some
857 0 0 if $_->{'make_test'}
858 0 0 unless @some
867 0 0 $d->can('pretty_id') ? :
884 0 0 if $CPAN::DEBUG
885 0 0 unless $what and $what =~ /^[aru]$/
888 0 0 unless @args
895 0 0 if ($CPAN::DEBUG)
901 0 0 if ($] < 5.008) { }
912 0 0 unless $CPAN::Shell::b->[0] <=> $CPAN::Shell::a->[0]
918 0 0 if ($CPAN::DEBUG)
924 0 0 unless defined $file
928 0 0 if $CPAN::DEBUG
930 0 0 if $CPAN::Signal
933 0 0 if ($inst_file) { }
934 0 0 if ($what eq 'a') { }
0 0 elsif ($what eq 'r') { }
0 0 elsif ($what eq 'u') { }
939 0 0 if ($have eq 'undef') { }
0 0 elsif ('CPAN::Version'->vcmp($have, 0) == 0) { }
946 0 0 unless 'CPAN::Version'->vgt($latest, $have)
954 0 0 if ($what eq 'a') { }
0 0 elsif ($what eq 'r') { }
0 0 elsif ($what eq 'u') { }
963 0 0 if $next_MODULE
964 0 0 if ($@)
965 0 0 defined $have ? :
0 0 ref $have ? :
0 0 ref $latest ? :
980 0 0 if $CPAN::Signal
982 0 0 if ($what eq 'a') { }
0 0 elsif ($what eq 'r') { }
0 0 elsif ($what eq 'u') { }
986 0 0 if $seen{$file}++
989 0 0 if $seen{$file}++
990 0 0 if $file =~ /^Contact/
992 0 0 unless ($headerdone++)
1006 0 0 if ($CPAN::Shell::COLOR_REGISTERED and $CPAN::META->has_inst('Term::ANSIColor') and $module->description)
1025 0 0 unless (%need)
1026 0 0 if ($what eq 'u') { }
0 0 elsif ($what eq 'r') { }
1032 0 0 if ($what eq 'r')
1033 0 0 if ($version_zeroes)
1034 0 0 $version_zeroes > 1 ? :
1037 0 0 if ($CPAN::Config->{'show_zero_versions'}) { }
1047 0 0 if ($version_undefs)
1048 0 0 $version_undefs > 1 ? :
1051 0 0 if ($CPAN::Config->{'show_unparsable_versions'}) { }
1080 0 0 if ($only_id) { }
0 0 elsif ($CPAN::Index::HAVE_REANIMATED) { }
1089 0 0 if (@failed) { }
0 0 elsif (not $only_id && $silent) { }
1092 0 0 if ($debug) { }
1100 0 0 unless $CPAN::Shell::a->[0] <=> $CPAN::Shell::b->[0]
1125 0 0 unless exists $d->{$nosayer}
1126 0 0 unless defined $d->{$nosayer}
1130 0 0 UNIVERSAL::can($d->{$nosayer}, 'failed') ? :
0 0 unless UNIVERSAL::can($d->{$nosayer}, 'failed') ? $d->{$nosayer}->failed : $d->{$nosayer} =~ /^NO/
1135 0 0 UNIVERSAL::can($d->{$nosayer}, 'commandid') ? :
0 0 if $only_id and $only_id != (UNIVERSAL::can($d->{$nosayer}, 'commandid') ? $d->{$nosayer}->commandid : $CPAN::CurrentCommandId)
1142 0 0 unless $failed
1148 0 0 unless $d->{'mandatory'}
1169 0 0 UNIVERSAL::can($d->{$failed}, 'failed') ? :
1191 0 0 unless /VmSize:\s+(\d+)/
1203 0 0 unless substr($k, 0, 4) eq 'read'
1221 0 0 if ($CPAN::META->{'is_tested'}{$b}) { }
1234 0 0 unless $CPAN::Config_loaded++
1238 0 0 unless (-d $todir)
1252 0 0 unless my($fh) = 'FileHandle'->new(">$to")
1282 0 7 if $CPAN::DEBUG
1284 0 7 if ($s =~ m[(?:\w+/)*\w+\.pm$])
1289 0 7 if ($module_as_path) { }
0 7 elsif ($s =~ m[/] or substr($s, -1, 1) eq '.') { }
0 7 elsif ($s =~ /^Bundle::/) { }
1290 0 0 if ($module_as_path =~ /^Bundle::/) { }
1294 0 0 if $CPAN::META->exists('CPAN::Module', $module_as_path)
1308 0 7 if $CPAN::META->exists('CPAN::Module', $s)
1318 0 4 if $CPAN::DEBUG
1322 3 1 unless $class->can($meth)
1335 0 4 if ($arg =~ m[^/(.*)/$])
1343 0 0 defined $regex ? :
0 0 defined $command ? :
0 4 if $CPAN::DEBUG
1348 0 4 if (defined $regex) { }
0 4 elsif ($command) { }
1349 0 0 if (CPAN::_sqlite_running())
1356 0 0 unless ($obj and UNIVERSAL::can($obj, 'id') and $obj->id)
1359 0 0 if $CPAN::DEBUG
1368 0 0 if ($@) { }
0 0 elsif ($match) { }
1379 0 0 unless $CPAN::Shell::ADVANCED_QUERY
1392 0 0 unless my $lhs = $self->$method
1393 0 0 if ($matchcrit) { }
1394 0 0 if $lhs =~ /$matchcrit/
1396 0 0 if $lhs eq $criterion
1401 0 4 if ($class eq 'CPAN::Bundle') { }
1 3 elsif ($class eq 'CPAN::Distribution') { }
1408 4 0 if ($CPAN::META->exists($class, $xarg)) { }
0 0 elsif ($CPAN::META->exists($class, $arg)) { }
1419 0 4 if ($CPAN::DEBUG)
1426 0 4 wantarray ? :
1433 0 0 unless @args
1440 0 0 @result == 0 ? :
0 0 @result == 1 ? :
1452 0 0 if $installation_report_fh
1453 0 0 if ($CPAN::META->has_usable('File::Temp'))
1462 0 0 unless ($installation_report_fh)
1463 0 0 unless $previously_noticed++
1483 0 0 if ($colorize_output and $^O eq 'MSWin32' and not $CPAN::META->has_inst('Win32::Console::ANSI'))
1484 0 0 unless ($print_ornamented_have_warned++)
1491 0 241 if ($colorize_output and not $CPAN::META->has_inst('Term::ANSIColor'))
1492 0 0 unless ($print_ornamented_have_warned++)
1507 0 241 unless defined $what
1510 0 241 if ($CPAN::Be_Silent)
1516 0 241 if ($CPAN::Config->{'term_is_latin'})
1522 0 241 if ($self->colorize_output) { }
1523 0 0 if ($CPAN::DEBUG and $swhat =~ /^Debug\(/)
1528 0 0 if ($@)
1537 0 0 if $swhat =~ s/([\r\n]+)\z//
1564 0 0 unless $already_printed{$what}++
1570 2 4 unless $CPAN::Config_loaded++
1571 5 1 if (not $CPAN::Config->{$vname} or $CPAN::Config->{$vname} =~ /^v/)
1595 0 0 unless $already_warned{$what}++
1615 0 0 if ('CPAN::Shell'->colorize_output)
1621 0 0 if ('CPAN::Shell'->colorize_output)
1634 0 0 if length $l > $longest
1636 0 0 if $longest > 62
1638 0 0 if ($l =~ /^\s*$/)
1643 0 0 if (length $l < 66)
1654 0 0 if $ENV{'AUTOMATED_TESTING'} or not -t STDOUT
1656 0 0 if ('CPAN'->has_inst('Time::HiRes')) { }
1659 0 0 $sleep < 1 ? :
1665 0 0 if -t STDOUT
1683 0 0 unless $meth = shift @some
1688 0 0 if $CPAN::DEBUG
1712 0 0 if (ref $s) { }
0 0 elsif ($s =~ /[\$\@\%]/) { }
0 0 elsif ($s =~ m[^/]) { }
0 0 elsif ($meth eq 'ls') { }
1713 0 0 if $CPAN::DEBUG
1717 0 0 if (substr($s, -1, 1) eq '.') { }
1722 0 0 if (@obj = $self->expand($class, $s))
1726 0 0 if (@obj)
1727 0 0 if (1 == @obj) { }
1741 0 0 if $CPAN::DEBUG
1744 0 0 if (do { ref $obj }) { }
0 0 elsif ($CPAN::META->exists('CPAN::Author', uc $s)) { }
0 0 elsif ($s =~ /[\$\@\%]/ and $meth eq 'dump') { }
1746 0 0 if ($meth =~ /^($needs_recursion_protection)$/)
1749 0 0 if $CPAN::DEBUG
1751 0 0 if ($@)
1752 0 0 if (ref $@ and $@->isa('CPAN::Exception::RecursiveDependency')) { }
1768 0 0 if ($meth =~ /^(dump|ls|reports)$/) { }
1804 0 0 unless ($obj)
1816 0 0 if ($type eq 'CPAN::Distribution' or $type eq 'CPAN::Bundle') { }
0 0 elsif ($type eq 'CPAN::Module') { }
1821 0 0 if (my $d = $obj->distribution) { }
0 0 elsif ($optional) { }
1838 0 0 if $CPAN::DEBUG
1841 0 0 if ($obj->{'reqtype'}) { }
1842 0 0 if ($obj->{'reqtype'} eq 'b' and $reqtype =~ /^[rc]$/)
1844 0 0 UNIVERSAL::can($obj->{'install'}, 'failed') ? :
0 0 if (exists $obj->{'install'} and UNIVERSAL::can($obj->{'install'}, 'failed') ? $obj->{'install'}->failed : $obj->{'install'} =~ /^NO/)
1863 0 0 if ($pragma and $obj->can($pragma))
1869 0 0 if (UNIVERSAL::can($obj, 'called_for'))
1872 0 0 if $CPAN::DEBUG
1876 0 0 if ($meth =~ /^(report)$/) { }
0 0 elsif (not UNIVERSAL::can($obj, $meth)) { }
1881 0 0 if (do { $CPAN::META->has_inst('YAML::Syck') }) { }
0 0 elsif ($CPAN::META->has_inst('YAML')) { }
0 0 elsif ($CPAN::META->has_inst('Data::Dumper')) { }
1892 0 0 if $CPAN::DEBUG
1896 0 0 if ($meth eq 'make' and $obj->{'reqtype'} eq 'b')
1900 0 0 if ($obj->$upgraded_meth) { }
1902 0 0 if $CPAN::DEBUG
1904 0 0 if $CPAN::DEBUG
1911 0 0 if ($obj->can($unpragma))
1918 0 0 if ($CPAN::Config->{'halt_on_failure'} and $obj->{'mandatory'} and &CPAN::Distrostatus::something_has_just_failed() and $self->mandatory_dist_failed)
1929 0 0 if ($meth =~ /^($needs_recursion_protection)$/)
1939 0 0 if ($CPAN::META->has_inst('XML::LibXML')) { }
1942 0 0 unless ($CPAN::META->has_usable('LWP'))
1948 0 0 if ($@)
1952 0 0 unless ($resp->is_success)
1964 0 0 if ($url =~ /winnipeg/) { }
0 0 elsif ($url =~ /search.*uploads.rdf/) { }
1994 0 0 unless my $author = uc $1
1998 0 0 if ++$i >= 6
1999 0 0 if (my(@ret) = $self->globls("$distro*"))
2002 0 0 if (@ret)
2010 0 0 if $distro =~ /\*/
2013 0 0 if $finish_eitem
2028 0 0 if $distro =~ m[/Bundle-]
2036 0 0 if ($skip)