X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=t%2Fforeign%2FFun%2Fname.t;fp=t%2Fforeign%2FFun%2Fname.t;h=d2370cdb8f361f1174a10382fc79e70615b52b2b;hb=98478aff9d9998611e7fe5b8c46fdd25608d1261;hp=0000000000000000000000000000000000000000;hpb=fb3ea8633b25d6fbf244e36c0936ea7d960a85c2;p=p5sagit%2FFunction-Parameters.git diff --git a/t/foreign/Fun/name.t b/t/foreign/Fun/name.t new file mode 100644 index 0000000..d2370cd --- /dev/null +++ b/t/foreign/Fun/name.t @@ -0,0 +1,47 @@ +#!perl +use strict; +use warnings FATAL => 'all'; +use Test::More; + +use Carp; + +my $file = __FILE__; +my $line = __LINE__; + +{ + package Foo; + use Function::Parameters; + fun foo ($x, $y) { + Carp::confess "$x $y"; + } + + eval { + foo("abc", "123"); + }; + + my $line_confess = $line + 6; + my $line_foo = $line + 10; + + ::like($@, qr/^abc 123 at $file line $line_confess\.?\n\tFoo::foo\('abc', 123\) called at $file line $line_foo/); +} + +SKIP: { skip "Sub::Name required", 1 unless eval { require Sub::Name }; + +{ + package Bar; + use Function::Parameters; + *bar = Sub::Name::subname(bar => fun ($a, $b) { Carp::confess($a + $b) }); + + eval { + bar(4, 5); + }; + + my $line_confess = $line + 24; + my $line_bar = $line + 27; + + ::like($@, qr/^9 at $file line $line_confess\.?\n\tBar::bar\(4, 5\) called at $file line $line_bar/); +} + +} + +done_testing;