Commit | Line | Data |
98478aff |
1 | #!perl |
2 | use strict; |
3 | use warnings FATAL => 'all'; |
4 | use Test::More; |
5 | |
6 | use Carp; |
7 | |
8 | my $file = __FILE__; |
9 | my $line = __LINE__; |
10 | |
11 | { |
12 | package Foo; |
13 | use Function::Parameters; |
14 | fun foo ($x, $y) { |
15 | Carp::confess "$x $y"; |
16 | } |
17 | |
18 | eval { |
19 | foo("abc", "123"); |
20 | }; |
21 | |
22 | my $line_confess = $line + 6; |
23 | my $line_foo = $line + 10; |
24 | |
25 | ::like($@, qr/^abc 123 at $file line $line_confess\.?\n\tFoo::foo\('abc', 123\) called at $file line $line_foo/); |
26 | } |
27 | |
28 | SKIP: { skip "Sub::Name required", 1 unless eval { require Sub::Name }; |
29 | |
30 | { |
31 | package Bar; |
32 | use Function::Parameters; |
33 | *bar = Sub::Name::subname(bar => fun ($a, $b) { Carp::confess($a + $b) }); |
34 | |
35 | eval { |
36 | bar(4, 5); |
37 | }; |
38 | |
39 | my $line_confess = $line + 24; |
40 | my $line_bar = $line + 27; |
41 | |
42 | ::like($@, qr/^9 at $file line $line_confess\.?\n\tBar::bar\(4, 5\) called at $file line $line_bar/); |
43 | } |
44 | |
45 | } |
46 | |
47 | done_testing; |