Branch Coverage

blib/lib/CPAN/Shell.pm
Criterion Covered Total %
branch 31 612 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 (not '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
643 0 0 if ($@)
657 0 0 if (my $configpm = $INC{'CPAN/MyConfig.pm'}) { }
679 0 0 if $file eq 'N/A'
680 0 0 if $file =~ /^Contact Author/
682 0 0 if $dist->isa_perl
683 0 0 unless $module->xs_file
721 0 0 unless ($CPAN::META->has_inst($req))
727 0 0 unless (-f $indexfile)
733 0 0 if ($arg =~ s[^/(.+)/$][$1])
738 0 0 unless $tag eq 'a'
741 0 0 unless $href =~ s[^\.\./authors/id/./../][]
742 0 0 if ($arg) { }
743 0 0 if ($qrarg) { }
744 0 0 if ($href =~ /$qrarg/)
748 0 0 if ($href =~ /\Q$arg\E/)
767 0 0 if (@{$stems{$_};} > 1) { }
769 0 0 Sort::Versions::versioncmp($a, $b) > 0 ? :
782 0 0 if (exists $$contains{$dist}) { }
0 0 elsif (1 == keys %$contains) { }
788 0 0 if ($module) { }
806 0 0 unless ($CPAN::META->has_inst('CPAN::Reporter'))
818 0 0 if @some
824 0 0 unless (-f $yaml)
830 0 0 unless ($id)
835 0 0 unless ($do)
839 0 0 unless ($$do{'build_dir'})
843 0 0 unless ($$do{'build_dir'} eq $b)
850 0 0 unless @some
853 0 0 if $$_{'make_test'}
854 0 0 unless @some
863 0 0 $d->can('pretty_id') ? :
880 0 0 if $CPAN::DEBUG
881 0 0 unless $what and $what =~ /^[aru]$/
884 0 0 unless @args
891 0 0 if ($CPAN::DEBUG)
897 0 0 if ($] < 5.008) { }
903 0 0 unless $$b[0] <=> $$a[0]
914 0 0 if ($CPAN::DEBUG)
920 0 0 unless defined $file
924 0 0 if $CPAN::DEBUG
926 0 0 if $CPAN::Signal
929 0 0 if ($inst_file) { }
930 0 0 if ($what eq 'a') { }
0 0 elsif ($what eq 'r') { }
0 0 elsif ($what eq 'u') { }
935 0 0 if ($have eq 'undef') { }
0 0 elsif ('CPAN::Version'->vcmp($have, 0) == 0) { }
942 0 0 unless 'CPAN::Version'->vgt($latest, $have)
950 0 0 if ($what eq 'a') { }
0 0 elsif ($what eq 'r') { }
0 0 elsif ($what eq 'u') { }
959 0 0 if $next_MODULE
960 0 0 if ($@)
961 0 0 defined $have ? :
0 0 ref $have ? :
0 0 ref $latest ? :
976 0 0 if $CPAN::Signal
978 0 0 if ($what eq 'a') { }
0 0 elsif ($what eq 'r') { }
0 0 elsif ($what eq 'u') { }
982 0 0 if $seen{$file}++
985 0 0 if $seen{$file}++
986 0 0 if $file =~ /^Contact/
988 0 0 unless ($headerdone++)
1002 0 0 if ($CPAN::Shell::COLOR_REGISTERED and $CPAN::META->has_inst('Term::ANSIColor') and $module->description)
1021 0 0 unless (%need)
1022 0 0 if ($what eq 'u') { }
0 0 elsif ($what eq 'r') { }
1028 0 0 if ($what eq 'r')
1029 0 0 if ($version_zeroes)
1030 0 0 $version_zeroes > 1 ? :
1033 0 0 if ($$CPAN::Config{'show_zero_versions'}) { }
1043 0 0 if ($version_undefs)
1044 0 0 $version_undefs > 1 ? :
1047 0 0 if ($$CPAN::Config{'show_unparsable_versions'}) { }
1076 0 0 if ($only_id) { }
0 0 elsif ($CPAN::Index::HAVE_REANIMATED) { }
1085 0 0 if (@failed) { }
0 0 elsif (not $only_id && $silent) { }
1088 0 0 if ($debug) { }
1094 0 0 unless $$a[0] <=> $$b[0]
1121 0 0 unless exists $$d{$nosayer}
1122 0 0 unless defined $$d{$nosayer}
1124 0 0 UNIVERSAL::can($$d{$nosayer}, 'failed') ? :
0 0 unless UNIVERSAL::can($$d{$nosayer}, 'failed') ? $$d{$nosayer}->failed : $$d{$nosayer} =~ /^NO/
1128 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)
1138 0 0 unless $failed
1144 0 0 unless $$d{'mandatory'}
1147 0 0 UNIVERSAL::can($$d{$failed}, 'failed') ? :
1187 0 0 unless /VmSize:\s+(\d+)/
1199 0 0 unless substr($k, 0, 4) eq 'read'
1217 0 0 if ($$CPAN::META{'is_tested'}{$b}) { }
1230 0 0 unless $CPAN::Config_loaded++
1234 0 0 unless (-d $todir)
1248 0 0 unless my($fh) = 'FileHandle'->new(">$to")
1278 0 7 if $CPAN::DEBUG
1280 0 7 if ($s =~ m[(?:\w+/)*\w+\.pm$])
1285 0 7 if ($module_as_path) { }
0 7 elsif ($s =~ m[/] or substr($s, -1, 1) eq '.') { }
0 7 elsif ($s =~ /^Bundle::/) { }
1286 0 0 if ($module_as_path =~ /^Bundle::/) { }
1290 0 0 if $CPAN::META->exists('CPAN::Module', $module_as_path)
1304 0 7 if $CPAN::META->exists('CPAN::Module', $s)
1314 0 4 if $CPAN::DEBUG
1318 3 1 unless $class->can($meth)
1331 0 4 if ($arg =~ m[^/(.*)/$])
1339 0 0 defined $regex ? :
0 0 defined $command ? :
0 4 if $CPAN::DEBUG
1344 0 4 if (defined $regex) { }
0 4 elsif ($command) { }
1345 0 0 if (CPAN::_sqlite_running())
1352 0 0 unless ($obj and UNIVERSAL::can($obj, 'id') and $obj->id)
1355 0 0 if $CPAN::DEBUG
1364 0 0 if ($@) { }
0 0 elsif ($match) { }
1375 0 0 unless $CPAN::Shell::ADVANCED_QUERY
1388 0 0 unless my $lhs = $self->$method
1389 0 0 if ($matchcrit) { }
1390 0 0 if $lhs =~ /$matchcrit/
1392 0 0 if $lhs eq $criterion
1397 0 4 if ($class eq 'CPAN::Bundle') { }
1 3 elsif ($class eq 'CPAN::Distribution') { }
1404 4 0 if ($CPAN::META->exists($class, $xarg)) { }
0 0 elsif ($CPAN::META->exists($class, $arg)) { }
1415 0 4 if ($CPAN::DEBUG)
1422 0 4 wantarray ? :
1429 0 0 unless @args
1436 0 0 @result == 0 ? :
0 0 @result == 1 ? :
1448 0 0 if $installation_report_fh
1449 0 0 if ($CPAN::META->has_usable('File::Temp'))
1458 0 0 unless ($installation_report_fh)
1459 0 0 unless $previously_noticed++
1479 0 0 if ($colorize_output and $^O eq 'MSWin32' and not $CPAN::META->has_inst('Win32::Console::ANSI'))
1480 0 0 unless ($print_ornamented_have_warned++)
1487 0 165 if ($colorize_output and not $CPAN::META->has_inst('Term::ANSIColor'))
1488 0 0 unless ($print_ornamented_have_warned++)
1503 0 165 unless defined $what
1506 0 165 if ($CPAN::Be_Silent)
1512 0 165 if ($$CPAN::Config{'term_is_latin'})
1518 0 165 if ($self->colorize_output) { }
1519 0 0 if ($CPAN::DEBUG and $swhat =~ /^Debug\(/)
1524 0 0 if ($@)
1533 0 0 if $swhat =~ s/([\r\n]+)\z//
1560 0 0 unless $already_printed{$what}++
1566 2 5 unless $CPAN::Config_loaded++
1567 6 1 if (not $$CPAN::Config{$vname} or $$CPAN::Config{$vname} =~ /^v/)
1591 0 0 unless $already_warned{$what}++
1611 0 0 if ('CPAN::Shell'->colorize_output)
1617 0 0 if ('CPAN::Shell'->colorize_output)
1630 0 0 if length $l > $longest
1632 0 0 if $longest > 62
1634 0 0 if ($l =~ /^\s*$/)
1639 0 0 if (length $l < 66)
1650 0 0 if $ENV{'AUTOMATED_TESTING'} or not -t STDOUT
1652 0 0 if ('CPAN'->has_inst('Time::HiRes')) { }
1655 0 0 $sleep < 1 ? :
1661 0 0 if -t STDOUT
1679 0 0 unless $meth = shift @some
1684 0 0 if $CPAN::DEBUG
1708 0 0 if (ref $s) { }
0 0 elsif ($s =~ /[\$\@\%]/) { }
0 0 elsif ($s =~ m[^/]) { }
0 0 elsif ($meth eq 'ls') { }
1709 0 0 if $CPAN::DEBUG
1713 0 0 if (substr($s, -1, 1) eq '.') { }
1718 0 0 if (@obj = $self->expand($class, $s))
1722 0 0 if (@obj)
1723 0 0 if (1 == @obj) { }
1737 0 0 if $CPAN::DEBUG
1740 0 0 if (do { ref $obj }) { }
0 0 elsif ($CPAN::META->exists('CPAN::Author', uc $s)) { }
0 0 elsif ($s =~ /[\$\@\%]/ and $meth eq 'dump') { }
1742 0 0 if ($meth =~ /^($needs_recursion_protection)$/)
1745 0 0 if $CPAN::DEBUG
1747 0 0 if ($@)
1748 0 0 if (ref $@ and $@->isa('CPAN::Exception::RecursiveDependency')) { }
1764 0 0 if ($meth =~ /^(dump|ls|reports)$/) { }
1800 0 0 unless ($obj)
1812 0 0 if ($type eq 'CPAN::Distribution' or $type eq 'CPAN::Bundle') { }
0 0 elsif ($type eq 'CPAN::Module') { }
1817 0 0 if (my $d = $obj->distribution) { }
0 0 elsif ($optional) { }
1834 0 0 if $CPAN::DEBUG
1837 0 0 if ($$obj{'reqtype'}) { }
1838 0 0 if ($$obj{'reqtype'} eq 'b' and $reqtype =~ /^[rc]$/)
1840 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/)
1859 0 0 if ($pragma and $obj->can($pragma))
1865 0 0 if (UNIVERSAL::can($obj, 'called_for'))
1868 0 0 if $CPAN::DEBUG
1872 0 0 if ($meth =~ /^(report)$/) { }
0 0 elsif (not UNIVERSAL::can($obj, $meth)) { }
1877 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')) { }
1888 0 0 if $CPAN::DEBUG
1892 0 0 if ($meth eq 'make' and $$obj{'reqtype'} eq 'b')
1896 0 0 if ($obj->$upgraded_meth) { }
1898 0 0 if $CPAN::DEBUG
1900 0 0 if $CPAN::DEBUG
1907 0 0 if ($obj->can($unpragma))
1914 0 0 if ($$CPAN::Config{'halt_on_failure'} and $$obj{'mandatory'} and &CPAN::Distrostatus::something_has_just_failed() and $self->mandatory_dist_failed)
1925 0 0 if ($meth =~ /^($needs_recursion_protection)$/)
1935 0 0 if ($CPAN::META->has_inst('XML::LibXML')) { }
1938 0 0 unless ($CPAN::META->has_usable('LWP'))
1944 0 0 if ($@)
1948 0 0 unless ($resp->is_success)
1960 0 0 if ($url =~ /winnipeg/) { }
0 0 elsif ($url =~ /search.*uploads.rdf/) { }
1990 0 0 unless my $author = uc $1
1994 0 0 if ++$i >= 6
1995 0 0 if (my(@ret) = $self->globls("$distro*"))
1998 0 0 if (@ret)
2006 0 0 if $distro =~ /\*/
2009 0 0 if $finish_eitem
2024 0 0 if $distro =~ m[/Bundle-]
2032 0 0 if ($skip)