BEGIN { $^W = 1 }
my
$module
=
'Regexp::Exhaustive'
;
require_ok(
$module
);
use_ok(
$module
,
'exhaustive'
);
$SIG
{__WARN__} =
sub
{ ok(0,
'Unexpected warning'
) };
{
my
@warnings
;
local
$SIG
{__WARN__} =
sub
{
push
@warnings
, /(.*) at /
for
@_
;
die
};
eval
{ exhaustive(
undef
) };
is_deeply(\
@warnings
, [
"Use of uninitialized value in &$module\::exhaustive"
]);
}
{
eval
{ exhaustive(
''
,
''
) };
my
$facit
=
"The second argument to &$module\::exhaustive must be a Regexp object (qr//)"
;
is(
substr
($@, 0,
length
$facit
),
$facit
);
}
{
eval
{ exhaustive(
''
,
qr//
,
undef
) };
my
$facit
=
"Uninitialized value passed to &$module\::exhaustive as variable name"
;
is(
substr
($@, 0,
length
$facit
),
$facit
);
}
{
eval
{ exhaustive(
''
,
qr//
,
'$1'
,
'$$1'
) };
my
$facit
=
"Bad variable name to &$module\::exhaustive: \"\$\$1\""
;
is(
substr
($@, 0,
length
$facit
),
$facit
);
}
{
eval
{ exhaustive(
''
,
qr//
,
'$$1'
,
'$$1'
) };
my
$facit
=
"Bad variable names to &$module\::exhaustive: \"\$\$1\", \"\$\$1\""
;
is(
substr
($@, 0,
length
$facit
),
$facit
);
}