File: lineno.t

package info (click to toggle)
libfunction-parameters-perl 2.002005-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 624 kB
  • sloc: perl: 3,945; makefile: 3
file content (77 lines) | stat: -rw-r--r-- 1,179 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
use warnings;
use strict;

use Test::More tests => 11;

use Function::Parameters;

fun actual_location_of_line_with($marker) {
    seek DATA, 0, 0 or die "seek DATA: $!";
    my $loc = 0;
    while (my $line = readline DATA) {
        $loc++;
        index($line, $marker) >= 0
            and return $loc;
    }
    undef
}

fun test_loc($marker) {
    my $expected = actual_location_of_line_with $marker;
    defined $expected or die "$marker: something done fucked up";
    my $got = (caller)[2];
    is $got, $expected, "location of '$marker'";
}

fun () {
    test_loc 'LX simple';
}->();

test_loc 'LX -- 1';

fun 
 (
   )
     {
    test_loc 'LX creative formatting'; }
->
(
 );

test_loc 'LX -- 2';

fun () {
    fun () {
        test_loc 'LX nested';
    }->()
}->();

test_loc 'LX -- 3';

{
    #local $TODO = 'expressions break line numbers???';

    0
    , fun () {
            test_loc 'LX assign';
        }->()
    ;

    test_loc 'LX -- 4';
}

{
    #local $TODO = 'newlines in prototype/attributes';

    fun wtf() :prototype(

    )
    :
    { test_loc 'LX -- 5 (inner)' }

    test_loc 'LX -- 5 (bonus)';
    wtf;
    test_loc 'LX -- 5 (outer)';
}

__DATA__