xref: /openbsd-src/gnu/usr.bin/perl/cpan/autodie/t/blog_hints.t (revision b39c515898423c8d899e35282f4b395f7cad3298)
1*b39c5158Smillert#!/usr/bin/perl -w
2*b39c5158Smillertuse strict;
3*b39c5158Smillertuse warnings;
4*b39c5158Smillertuse Test::More 'no_plan';
5*b39c5158Smillert
6*b39c5158Smillertuse FindBin;
7*b39c5158Smillertuse lib "$FindBin::Bin/lib";
8*b39c5158Smillert
9*b39c5158Smillertuse Some::Module qw(some_sub);
10*b39c5158Smillertuse my::autodie qw(! some_sub);
11*b39c5158Smillert
12*b39c5158Smillerteval { some_sub() };
13*b39c5158Smillert
14*b39c5158Smillertisnt("$@", "", "some_sub should die in void/scalar context");
15*b39c5158Smillert
16*b39c5158Smillertisa_ok($@, 'autodie::exception');
17*b39c5158Smillertis($@->context, 'scalar');
18*b39c5158Smillertis($@->function, 'Some::Module::some_sub');
19*b39c5158Smillertlike("$@", qr/can't be called in scalar context/);
20*b39c5158Smillert
21*b39c5158Smillertmy @returns = eval { some_sub(0); };
22*b39c5158Smillertis($@, "", "Good call to some_sub");
23*b39c5158Smillertis_deeply(\@returns, [1,2,3], "Returns unmolested");
24*b39c5158Smillert
25*b39c5158Smillert@returns = eval { some_sub(1) };
26*b39c5158Smillert
27*b39c5158Smillertisnt("$@","");
28*b39c5158Smillertis($@->return->[0], undef);
29*b39c5158Smillertis($@->return->[1], 'Insufficient credit');
30*b39c5158Smillertlike("$@", qr/Insufficient credit/);
31