only invoke caller() when _HAS_SUBNAME
[p5sagit/Try-Tiny.git] / t / named.t
1 use strict;
2 use warnings;
3
4 use Test::More;
5
6 BEGIN {
7     plan skip_all => "Sub::Util or Sub::Name required"
8         unless eval { require Sub::Util; defined &Sub::Util::set_subname; }
9             || eval { require Sub::Name; Sub::Name->VERSION(0.08) };
10     plan tests => 3;
11 }
12
13 use Try::Tiny;
14
15 my $name;
16 try {
17     $name = (caller(0))[3];
18 };
19 is $name, "main::try {...} ", "try name"; # note extra space
20
21 try {
22     die "Boom";
23 } catch {
24     $name = (caller(0))[3];
25 };
26 is $name, "main::catch {...} ", "catch name"; # note extra space
27
28 try {
29     die "Boom";
30 } catch {
31     # noop
32 } finally {
33     $name = (caller(0))[3];
34 };
35 is $name, "main::finally {...} ", "finally name"; # note extra space