X-Git-Url: http://git.vpit.fr/?a=blobdiff_plain;f=t%2Flib%2FVariable%2FMagic%2FTestWatcher.pm;h=a8499226e06232d82de7b5ca2d67492b4149e143;hb=20cffa3667611284cad478382155c3582754240b;hp=f9ba0ea1a91df2e4ddfad993b731ee04ec0330d8;hpb=3bc98bdbdb230943e7fb3135e325f10013acac2d;p=perl%2Fmodules%2FVariable-Magic.git diff --git a/t/lib/Variable/Magic/TestWatcher.pm b/t/lib/Variable/Magic/TestWatcher.pm index f9ba0ea..a849922 100644 --- a/t/lib/Variable/Magic/TestWatcher.pm +++ b/t/lib/Variable/Magic/TestWatcher.pm @@ -28,6 +28,7 @@ sub init_watcher ($;$) { croak 'can\'t initialize twice' if defined $wiz; my $types = _types shift; $prefix = (defined) ? "$_: " : '' for shift; + local $@; %mg = (); $wiz = eval 'wizard ' . join(', ', map { "$_ => sub { \$mg{$_}++;" . ($_ eq 'len' ? '$_[2]' : '0') . '}' @@ -45,7 +46,10 @@ sub watch (&;$$) { my @ret; local %mg = (); local $Test::Builder::Level = ($Test::Builder::Level || 0) + 1; - if (defined $want and not $want) { # scalar context + local $@; + if (not defined $want) { # void context + eval { $code->() }; + } elsif (not $want) { # scalar context $ret[0] = eval { $code->() }; } else { @ret = eval { $code->() };