Merge Attribute::Handlers 0.82 into core
[perl.git] / ext / Attribute-Handlers / t / linerep.t
1 #!perl
2
3 BEGIN {
4     if ($ENV{PERL_CORE}) {
5         chdir 't' if -d 't';
6         @INC = '../lib';
7     }
8 }
9
10 use Test::More tests => 18;
11 use Attribute::Handlers;
12
13 sub Args : ATTR(CODE) {
14     my ($package, $symbol, $referent, $attr, $data, $phase, $filename, $linenum) = @_;
15     is( $package,       'main',         'package' );
16     is( $symbol,        \*foo,          'symbol' );
17     is( $referent,      \&foo,          'referent' );
18     is( $attr,          'Args',         'attr' );
19     is( ref $data,      'ARRAY',        'data' );
20     is( $data->[0],     'bar',          'data' );
21     is( $phase,         'CHECK',        'phase' );
22     is( $filename,      __FILE__,       'filename' );
23     is( $linenum,       26,             'linenum' );
24 }
25
26 sub foo :Args(bar) {}
27
28 my $ref;
29 sub myref { $ref = shift; }
30 my $b;
31 #line 42
32 eval "my \$bar :SArgs(grumpf); \$b = \\\$bar";
33 is( $b, $ref, 'referent' );
34
35 sub SArgs : ATTR(SCALAR) {
36     my ($package, $symbol, $referent, $attr, $data, $phase, $filename, $linenum) = @_;
37     is( $package,       'main',         'package' );
38     is( $symbol,        'LEXICAL',      'symbol' );
39     myref($referent);
40     is( $attr,          'SArgs',        'attr' );
41     is( ref $data,      'ARRAY',        'data' );
42     is( $data->[0],     'grumpf',       'data' );
43     is( $phase,         'CHECK',        'phase' );
44     is( $filename,      __FILE__,       'filename' );
45     is( $linenum,       42,             'linenum' );
46 }