|
Packit |
6427f8 |
#!/usr/bin/perl -w
|
|
Packit |
6427f8 |
use strict;
|
|
Packit |
6427f8 |
use warnings;
|
|
Packit |
6427f8 |
use Test::More 'no_plan';
|
|
Packit |
6427f8 |
|
|
Packit |
6427f8 |
use FindBin;
|
|
Packit |
6427f8 |
use lib "$FindBin::Bin/lib";
|
|
Packit |
6427f8 |
|
|
Packit |
6427f8 |
use Some::Module qw(some_sub);
|
|
Packit |
6427f8 |
use my::autodie qw(! some_sub);
|
|
Packit |
6427f8 |
|
|
Packit |
6427f8 |
eval { some_sub() };
|
|
Packit |
6427f8 |
|
|
Packit |
6427f8 |
isnt("$@", "", "some_sub should die in void/scalar context");
|
|
Packit |
6427f8 |
|
|
Packit |
6427f8 |
isa_ok($@, 'autodie::exception');
|
|
Packit |
6427f8 |
is($@->context, 'scalar');
|
|
Packit |
6427f8 |
is($@->function, 'Some::Module::some_sub');
|
|
Packit |
6427f8 |
like("$@", qr/can't be called in scalar context/);
|
|
Packit |
6427f8 |
|
|
Packit |
6427f8 |
my @returns = eval { some_sub(0); };
|
|
Packit |
6427f8 |
is($@, "", "Good call to some_sub");
|
|
Packit |
6427f8 |
is_deeply(\@returns, [1,2,3], "Returns unmolested");
|
|
Packit |
6427f8 |
|
|
Packit |
6427f8 |
@returns = eval { some_sub(1) };
|
|
Packit |
6427f8 |
|
|
Packit |
6427f8 |
isnt("$@","");
|
|
Packit |
6427f8 |
is($@->return->[0], undef);
|
|
Packit |
6427f8 |
is($@->return->[1], 'Insufficient credit');
|
|
Packit |
6427f8 |
like("$@", qr/Insufficient credit/);
|