File: SmallWarn.pm

package info (click to toggle)
libuniversal-can-perl 1.20140328-3
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, forky, sid, trixie
  • size: 152 kB
  • sloc: perl: 326; makefile: 2
file content (39 lines) | stat: -rw-r--r-- 643 bytes parent folder | download | duplicates (6)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
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;