This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
9b3da8e5208617e69fb1e6c37c19e8dd4c1b08e7
[perl5.git] / lib / 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 $bar :SArgs(grumpf);
29
30 sub SArgs : ATTR(SCALAR) {
31     my ($package, $symbol, $referent, $attr, $data, $phase, $filename, $linenum) = @_;
32     is( $package,       'main',         'package' );
33     is( $symbol,        'LEXICAL',      'symbol' );
34     is( $referent,      \$bar,          'referent' );
35     is( $attr,          'SArgs',        'attr' );
36     is( ref $data,      'ARRAY',        'data' );
37     is( $data->[0],     'grumpf',       'data' );
38     is( $phase,         'CHECK',        'phase' );
39     TODO: {
40         local $TODO = "Doesn't work correctly";
41     is( $filename,      __FILE__,       'filename' );
42     is( $linenum,       28,             'linenum' );
43     }
44 }