X-Git-Url: http://git.vpit.fr/?p=perl%2Fmodules%2FVPIT-TestHelpers.git;a=blobdiff_plain;f=lib%2FVPIT%2FTestHelpers.pm;h=8e056293f5ab422177c0b0fe65a4a4c9bf423a44;hp=abee64079108f825b1be4d9d0138f6dccc5c9a03;hb=ad3fa9ca5eefe61d54be06d88b6f8281779f88ac;hpb=682b551acf9fe02f67ad76a2c1825a71c92bf762 diff --git a/lib/VPIT/TestHelpers.pm b/lib/VPIT/TestHelpers.pm index abee640..8e05629 100644 --- a/lib/VPIT/TestHelpers.pm +++ b/lib/VPIT/TestHelpers.pm @@ -10,6 +10,7 @@ my %exports = ( sub import { my $pkg = caller; + while (my ($name, $code) = each %exports) { no strict 'refs'; *{$pkg.'::'.$name} = $code; @@ -18,6 +19,7 @@ sub import { my $test_sub = sub { my $sub = shift; + my $stash; if ($INC{'Test/Leaner.pm'}) { $stash = \%Test::Leaner::; @@ -25,7 +27,9 @@ my $test_sub = sub { require Test::More; $stash = \%Test::More::; } - return $stash->{$sub}; + + my $glob = $stash->{$sub}; + return $glob ? *$glob{CODE} : undef; }; sub skip_all { $test_sub->('plan')->(skip_all => $_[0]) } @@ -45,6 +49,7 @@ sub load_or_skip { if (eval "use $spec (); 1") { $ver = do { no strict 'refs'; ${"${pkg}::VERSION"} }; $ver = 'undef' unless defined $ver; + if ($imports) { my @imports = @$imports; my $caller = (caller 0)[0];