Branch Coverage

blib/lib/Test2/Util/Importer.pm
Criterion Covered Total %
branch 82 174 47.1


line true false branch
28 153 164 if @_ and $NUMERIC{substr $_[0], 0, 1}
31 0 164 unless $INC{$file}
33 2 162 if optimal_import($from, $caller[0], \@caller, @_)
62 0 482 if @_ and $NUMERIC{substr $_[0], 0, 1}
64 155 327 unless @_
69 155 172 unless $INC{$file}
71 0 327 if optimal_import($from, $caller[0], \@caller, @args)
99 0 356 if (ref $into) { }
0 356 elsif ($into =~ /^\d+$/) { }
112 0 356 unless $INC{$file}
114 330 26 if optimal_import($from, $into, \@caller, @args)
129 0 0 if ($from =~ /^\d+$/) { }
157 0 515 unless $params{'from'}
174 0 0 ref $proto ? :
188 0 0 ref $proto ? :
202 0 0 ref $proto ? :
223 0 515 if @$versions
225 0 515 unless @$import
227 0 515 if $self->menu($into)->{'fail'}
235 0 0 unless my $imported = $IMPORTED{$from}
239 0 0 @_ ? :
246 0 0 unless $allowed{$name}
252 0 0 unless defined *{$glob;}{$type}
273 0 0 if $INC{$from_file}
282 687 0 if $self->{'caller'}
286 0 0 if @caller and not $caller[0]->isa("Test2::Util::Importer")
287 0 0 unless @caller
316 0 2086 unless $into
320 0 2086 if $for and $for ne $into
328 0 515 unless $into
333 172 343 if (my $menu_sub = *{"${from}::IMPORTER_MENU";}{'CODE'}) { }
347 0 0 if $got{'export_gen'} and $got{'generate'}
393 0 0 if not $sig or $sig eq "&"
395 0 0 unless $do
398 162 353 if $export_gen and keys %$export_gen
407 2118 0 if $sig eq "&"
409 162 1956 if $$export_gen{"$sig$name"}
410 0 1956 if $sig eq "&" and $export_gen->{$name}
411 0 1956 if $got->{'generate'} and &$generate("$sig$name")
434 0 0 unless $new_style or keys %$exports or $from->isa("Exporter") or $INC{'Exporter.pm'} and $f_import and $f_import == \&Exporter::import
447 0 515 @$export_fail ? :
449 0 0 $sig eq '&' ? :
493 0 1749 if ref $arg eq "CODE"
494 0 1749 if $NUMERIC{substr $arg, 0, 1}
498 0 541 if @sets > 1
502 4 511 unless $is_tag or @$args or @versions
512 4 1594 if ($lead eq '!') { }
515 0 4 if ($arg eq '!') { }
526 2 0 unless @import or keys %exclude or @versions
534 157 1437 ref $args->[0] eq 'HASH' ? :
537 26 1572 if ($lead eq ":")
539 0 26 unless my $tag = $menu->{'tags'}{$arg}
543 0 26 if @$cvers
546 0 26 if $cset
552 0 26 if ($exc) { }
0 26 elsif ($spec and keys %$spec) { }
553 0 0 if not ref $_
557 0 0 if $spec->{'-as'} and @$cimp > 1
565 0 0 if $spec->{'-prefix'} and $cspec->{'-prefix'}
566 0 0 if $spec->{'-postfix'} and $cspec->{'-postfix'}
584 0 1572 if (ref $arg eq 'Regexp') { }
0 1572 elsif ($lead eq '/' and $arg =~ m[^/(.*)/$]) { }
596 198 1374 /^\W/ ? :
598 4 1568 if ($exc) { }
603 0 1568 if $spec->{'-as'} and @list > 1
620 0 0 unless my(@fail) = map({my $x = $_->[0]; $x =~ s/^&//; $x;} grep($menu->{'fail'}{$_->[0]}, @$import))
622 0 0 $from->can('export_fail') ? :
624 0 0 if (@real_fail)
643 376 0 if defined $caller->[9]
317 1 if defined $caller->[9]
655 0 1568 unless my($sig, $name) = $symbol =~ /^(\W)(.*)$/
659 162 1406 if $menu->{'generate'}
664 0 1568 unless $ref or $menu->{'lookup'}{"$sig$name"}
665 0 1568 unless $ref
668 0 1568 if $type eq "REF"
670 0 1568 if $ref and $type ne $SIG_TO_SLOT{$sig}
675 4 1564 if $$exclude{"$sig$name"} and not $spec->{'-as'}
683 0 1564 if $custom_set
686 1564 0 if $sig eq "&"
690 1564 0 if $sig eq "&"
691 0 1564 if $magic
704 0 0 unless eval qq[#line $caller->[2] "$caller->[1]"\n\$mod->VERSION(\$_) for \@versions;\n1;\n]
721 0 155 unless eval qq[#line $caller->[2] "$caller->[1]"\nrequire \$file;\n]
742 330 177 unless @args
746 0 29814 substr($_, 0, 1) eq '&' ? :
757 28874 175 !ref($_) && ($allowed{$_} || substr($_, 0, 1, '') eq '&' && $allowed{$_}) ? :
761 0 332 unless eval qq[# If the caller has redefine warnings enabled then we want to warn them if\n# their import redefines things.\nBEGIN { \${^WARNING_BITS} = \$caller->[9] if defined \$caller->[9] };\n#line $caller->[2] "$caller->[1]"\n(*{"$into\\::\$_"} = \$final{\$_}, push \@{\$Test2::Util::Importer::IMPORTED{\$into}} => \$_) for keys %final;\n1;\n]