X-Git-Url: http://git.vpit.fr/?a=blobdiff_plain;f=t%2Flib%2FScope%2FUpper%2FTestGenerator.pm;h=b4f6e1b6762d26e8aa179c468adbf54da8e70b6f;hb=eefb9e3f4b67e0aa0e8c3e705d7f7010a49f0540;hp=8415632cc349a3a6859d53572f2f0ba3fe7f9d27;hpb=95dcbf868547141c0b022c55cf8e79498edf12d9;p=perl%2Fmodules%2FScope-Upper.git diff --git a/t/lib/Scope/Upper/TestGenerator.pm b/t/lib/Scope/Upper/TestGenerator.pm index 8415632..b4f6e1b 100644 --- a/t/lib/Scope/Upper/TestGenerator.pm +++ b/t/lib/Scope/Upper/TestGenerator.pm @@ -32,16 +32,48 @@ my @blocks = ( [ 'eval q[', '];' ], ); +push @blocks, [ 'given (1) {', '}' ] if "$]" >= 5.010_001; + +my %exports = ( + verbose_is => \&verbose_is, +); + sub import { + if ("$]" >= 5.017_011) { + require warnings; + warnings->unimport('experimental::smartmatch'); + } + if ("$]" >= 5.010_001) { - push @blocks, [ 'given (1) {', '}' ]; require feature; feature->import('switch'); } + + my $pkg = caller; + while (my ($name, $code) = each %exports) { + no strict 'refs'; + *{$pkg.'::'.$name} = $code; + } } @blocks = map [ map "$_\n", @$_ ], @blocks; +sub verbose_is ($$;$) { + my ($a, $b, $desc) = @_; + + if (defined $::testcase + and (defined $b) ? (not defined $a or $a ne $b) : defined $a) { + Test::Leaner::diag(<