Move Attribute::Handlers from ext/ to dist/
[p5sagit/p5-mst-13.2.git] / dist / Attribute-Handlers / t / linerep.t
1 #!perl
2
3 use Test::More tests => 18;
4 use Attribute::Handlers;
5
6 sub Args : ATTR(CODE) {
7     my ($package, $symbol, $referent, $attr, $data, $phase, $filename, $linenum) = @_;
8     is( $package,       'main',         'package' );
9     is( $symbol,        \*foo,          'symbol' );
10     is( $referent,      \&foo,          'referent' );
11     is( $attr,          'Args',         'attr' );
12     is( ref $data,      'ARRAY',        'data' );
13     is( $data->[0],     'bar',          'data' );
14     is( $phase,         'CHECK',        'phase' );
15     is( $filename,      __FILE__,       'filename' );
16     is( $linenum,       19,             'linenum' );
17 }
18
19 sub foo :Args(bar) {}
20
21 my $ref;
22 sub myref { $ref = shift; }
23 my $b;
24 #line 42
25 eval "my \$bar :SArgs(grumpf); \$b = \\\$bar";
26 is( $b, $ref, 'referent' );
27
28 sub SArgs : ATTR(SCALAR) {
29     my ($package, $symbol, $referent, $attr, $data, $phase, $filename, $linenum) = @_;
30     is( $package,       'main',         'package' );
31     is( $symbol,        'LEXICAL',      'symbol' );
32     myref($referent);
33     is( $attr,          'SArgs',        'attr' );
34     is( ref $data,      'ARRAY',        'data' );
35     is( $data->[0],     'grumpf',       'data' );
36     is( $phase,         'CHECK',        'phase' );
37     TODO: {
38       local $TODO = "Doesn't work correctly" if $] < 5.008;
39       is( $filename,    __FILE__,       'filename' );
40       is( $linenum,     42,             'linenum' );
41     }
42 }