use strict;
use warnings;
use base 'Exporter';
+use Carp;
BEGIN {
our %dependencies = (
# ^^^^^ CODE TAKEN FROM MRO::COMPAT ^^^^^
},
# VVVVV CODE TAKEN FROM TEST::EXCEPTION VVVVV
- 'Test::Exception' => do {
+ 'Test::Exception 0.27' => do {
- my $Tester = Test::Builder->new;
+ my $Tester;
my $is_exception = sub {
my $exception = shift;
unless defined $description;
my $exception = $try_as_caller->($coderef);
+ $Tester ||= Test::Builder->new;
+
my $regex = $Tester->maybe_regex( $expecting );
my $ok = $regex
? ( $exception =~ m/$regex/ )
'lives_ok' => sub (&;$) {
my ( $coderef, $description ) = @_;
my $exception = $try_as_caller->( $coderef );
+
+ $Tester ||= Test::Builder->new;
+
my $ok = $Tester->ok( ! $is_exception->( $exception ), $description );
$Tester->diag( $exception_as_string->( "died:", $exception ) ) unless $ok;
$@ = $exception;
test => [qw/throws_ok lives_ok/],
);
- for my $module_name (keys %dependencies) {
+ for my $module (keys %dependencies) {
+ my ($module_name, $version) = split ' ', $module;
+
my $loaded = do {
local $SIG{__DIE__} = 'DEFAULT';
- eval "require $module_name; 1";
+ eval "use $module (); 1";
};
$loaded{$module_name} = $loaded;
- for my $method_name (keys %{ $dependencies{ $module_name } }) {
- my $producer = $dependencies{$module_name}{$method_name};
+ for my $method_name (keys %{ $dependencies{ $module } }) {
+ my $producer = $dependencies{$module}{$method_name};
my $implementation;
if (ref($producer) eq 'HASH') {