}
my $import = sub {
- shift;
+ my $class = shift;
my @imports = &_handle_import_args;
- @imports = @EXPORT unless @imports;
+ if (@imports == grep /^!/, @imports) {
+ # All imports are negated, or @imports is empty
+ my %negated;
+ /^!(.*)/ and ++$negated{$1} for @imports;
+ push @imports, grep !$negated{$_}, @EXPORT;
+ }
+
my @test_more_imports;
for (@imports) {
if ($stubbed{$_}) {
my $pkg = caller;
no strict 'refs';
*{$pkg."::$_"} = $leaner_stash->{$_};
- } else {
+ } elsif (/^!/ or !exists $more_stash->{$_} or exists $leaner_stash->{$_}) {
push @test_more_imports, $_;
+ } else {
+ # Croak for symbols in Test::More but not in Test::Leaner
+ Exporter::import($class, $_);
}
}