X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FMouse%2FUtil.pm;h=a27600b13bf07d26a5bad8bcb429885b498417cb;hb=d72006cab7c20b610701f1e460e5b81a05fc7fca;hp=d30abf3b6ad77a7dfcb6a96ec89def6818a97014;hpb=42d7df00cd4c4b4cd1fe20ffb1a74c7161ba3862;p=gitmo%2FMouse.git diff --git a/lib/Mouse/Util.pm b/lib/Mouse/Util.pm index d30abf3..a27600b 100644 --- a/lib/Mouse/Util.pm +++ b/lib/Mouse/Util.pm @@ -3,6 +3,7 @@ package Mouse::Util; use strict; use warnings; use base 'Exporter'; +use Carp; BEGIN { our %dependencies = ( @@ -123,7 +124,7 @@ BEGIN { # VVVVV CODE TAKEN FROM TEST::EXCEPTION VVVVV 'Test::Exception' => do { - my $Tester = Test::Builder->new; + my $Tester; my $is_exception = sub { my $exception = shift; @@ -154,6 +155,8 @@ BEGIN { 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/ ) @@ -171,6 +174,9 @@ BEGIN { '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;