TODO failing tests.
[p5sagit/Devel-Declare.git] / t / lines.t
CommitLineData
9bd5658a 1use strict;
2use warnings;
3use Test::More;
4
5BEGIN {
6 eval 'use B::Compiling';
b0361eef 7
9bd5658a 8 $@ and plan 'skip_all' => $@
9 or plan tests => 5;
10}
11
12my @lines;
13
14
15sub handle_fun {
16 my $pack = shift;
17
18 push @lines, PL_compiling->line;
19
20 my $offset = Devel::Declare::get_linestr_offset();
21 $offset += Devel::Declare::toke_move_past_token($offset);
22 my $stripped = Devel::Declare::toke_skipspace($offset);
23 my $linestr = Devel::Declare::get_linestr();
24
25 push @lines, PL_compiling->line;
26}
27
28
29use Devel::Declare;
30BEGIN {
31sub fun(&) {}
32
33Devel::Declare->setup_for(
34 __PACKAGE__,
35 { fun => { const => \&handle_fun } }
36);
37}
38
39
40#line 100
b0361eef 41fun
9bd5658a 42{ };
43my $line = __LINE__;
44my $line2 = __LINE__;
45
46# Reset the line number back to what it actually is
47#line 48
48is(@lines, 2, "2 line numbers recorded");
49is $lines[0], 100, "fun starts on line 100";
b0361eef 50{
51 local $TODO = "line numbers aren't quite right yet, sometimes";
52 is $lines[1], 101, "fun stops on line 101";
53 is $line, 102, "next statement on line 102";
54 is $line2, 103, "next statement on line 103";
55}