import all tests from Fun
[p5sagit/Function-Parameters.git] / t / foreign / Fun / name.t
CommitLineData
98478aff 1#!perl
2use strict;
3use warnings FATAL => 'all';
4use Test::More;
5
6use Carp;
7
8my $file = __FILE__;
9my $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
28SKIP: { 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
47done_testing;