package Test::SmallWarn;
use strict;
use warnings;
use Test::More;
sub import
{
my $caller = caller();
no strict 'refs';
*{ $caller . '::warning_like' } = \&warning_like;
*{ $caller . '::warnings_are' } = \&warnings_are;
}
sub warning_like (&$;$)
{
my ($code, $regex, $description) = @_;
my $warning = '' ;
local $SIG{__WARN__} = sub { $warning .= shift };
$code->();
like( $warning, $regex, $description );
}
sub warnings_are (&$;$)
{
my ($code, $expected, $description) = @_;
my @warnings;
local $SIG{__WARN__} = sub { push @warnings, shift };
$code->();
is( "@warnings", "@$expected", $description );
}
1;
syntax highlighted by Code2HTML, v. 0.9.1