Plate
view release on metacpan or search on metacpan
t/04-disk.t view on Meta::CPAN
require Devel::Cover;
import Devel::Cover -db => 'cover_db', -coverage => qw(branch condition statement subroutine), -silent => 1, '+ignore' => qr'^t/';
}
}
my $warned;
$SIG{__WARN__} = sub {
$warned = 1;
goto &diag;
};
sub warnings_are(&$;$) {
my($sub, $exp, $out) = @_;
my @got;
local $SIG{__WARN__} = sub {
push @got, join '', @_;
};
$sub->();
my $ok = @got == @$exp;
$ok &&= $got[$_] =~ $$exp[$_] for 0..$#got;
ok $ok, $out
or do {
t/06-line-num.t view on Meta::CPAN
}
}
use Plate;
my $warned;
$SIG{__WARN__} = sub {
$warned = 1;
goto &diag;
};
sub warnings_are(&$;$) {
my($sub, $exp, $out) = @_;
my @got;
local $SIG{__WARN__} = sub {
push @got, join '', @_;
};
my $ok = defined eval { $sub->() };
$ok &&= @got == @$exp;
$ok &&= $got[$_] =~ $$exp[$_] for 0..$#got;
ok $ok, $out
or do {
if ($@) {
diag $@;
} else {
diag "found warning: $_" for @got;
diag "found no warnings" unless @got;
diag "expected warning: $_" for @$exp;
diag "expected no warnings" unless @$exp;
}
};
}
sub warning_lines_are(&$;$) {
$_ = qr/^L$_ at .*? line $_\.$/ for @{$_[1]};
&warnings_are;
}
my $plate = Plate->new(cache_code => undef);
warning_lines_are { $plate->serve(\<<'') } [4], 'Precompiled multi-line statements';
%% my $zero
%% = 0
%% ;
( run in 0.742 second using v1.01-cache-2.11-cpan-49f99fa48dc )