xref: /openbsd-src/gnu/usr.bin/perl/ext/XS-APItest/t/exception.t (revision 898184e3e61f9129feb5978fad5a8c6865f00b92)
1*43003dfeSmillertuse Test::More tests => 12;
2*43003dfeSmillert
3*43003dfeSmillertBEGIN { use_ok('XS::APItest') };
4*43003dfeSmillert
5*43003dfeSmillert#########################
6*43003dfeSmillert
7*43003dfeSmillertmy $rv;
8*43003dfeSmillert
9*43003dfeSmillert$XS::APItest::exception_caught = undef;
10*43003dfeSmillert
11*43003dfeSmillert$rv = eval { apitest_exception(0) };
12*43003dfeSmillertis($@, '');
13*43003dfeSmillertok(defined $rv);
14*43003dfeSmillertis($rv, 42);
15*43003dfeSmillertis($XS::APItest::exception_caught, 0);
16*43003dfeSmillert
17*43003dfeSmillert$XS::APItest::exception_caught = undef;
18*43003dfeSmillert
19*43003dfeSmillert$rv = eval { apitest_exception(1) };
20*43003dfeSmillertis($@, "boo\n");
21*43003dfeSmillertok(not defined $rv);
22*43003dfeSmillertis($XS::APItest::exception_caught, 1);
23*43003dfeSmillert
24*43003dfeSmillert$rv = eval { mycroak("foobar\n"); 1 };
25*43003dfeSmillertis($@, "foobar\n", 'croak');
26*43003dfeSmillertok(not defined $rv);
27*43003dfeSmillert
28*43003dfeSmillert$rv = eval { $@ = bless{}, "foo"; mycroak(undef); 1 };
29*43003dfeSmillertis(ref($@), "foo", 'croak(NULL)');
30*43003dfeSmillertok(not defined $rv);
31