Commit | Line | Data |
3efcc087 |
1 | #!/usr/bin/env perl |
2 | use strict; |
3 | use warnings; |
4 | use Test::More; |
5 | use Test::Exception; |
6 | |
7 | use Eval::Closure; |
8 | |
9 | my $source = <<'SOURCE'; |
10 | sub { |
11 | Carp::confess("foo") |
12 | } |
13 | SOURCE |
14 | |
15 | { |
16 | my $code = eval_closure( |
17 | source => $source, |
18 | ); |
19 | |
20 | throws_ok { |
21 | $code->(); |
22 | } qr/^foo at \(eval \d+\) line 2\n/, |
23 | "no location info if context isn't passed"; |
24 | } |
25 | |
26 | { |
27 | my $code = eval_closure( |
28 | source => $source, |
29 | description => 'accessor foo (defined at Class.pm line 282)', |
30 | ); |
31 | |
32 | throws_ok { |
33 | $code->(); |
34 | } qr/^foo at accessor foo \(defined at Class\.pm line 282\) line 2\n/, |
35 | "description is set"; |
36 | } |
37 | |
38 | done_testing; |