File: ast-stem.t

package info (click to toggle)
libmakefile-parser-perl 0.211-2
  • links: PTS, VCS
  • area: main
  • in suites: squeeze
  • size: 560 kB
  • ctags: 556
  • sloc: perl: 7,028; makefile: 263
file content (59 lines) | stat: -rw-r--r-- 1,443 bytes parent folder | download | duplicates (2)
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
use Test::Base;
use Makefile::AST::StemMatch;

plan tests => 8 * blocks() + 1;

my $match = Makefile::AST::StemMatch->new(
    { pattern => '%.o', target => 'foo.c' }
);
ok !defined $match, 'match failed expectedly';

run {
    my $block = shift;
    my $name = $block->name;

    my $pattern = $block->pattern;
    my $target  = $block->target;
    my $stem    = $block->stem;
    my $dir     = $block->dir;
    my $notdir  = $block->notdir;

    my $match = Makefile::AST::StemMatch->new(
        { pattern => $pattern,
          target => $target }
    );
    ok $match, "$name - obj ok";
    isa_ok $match, 'Makefile::AST::StemMatch', "$name - class ok";
    is $match->pattern, $pattern, "$name - pattern ok";
    is $match->target, $target, "$name - target ok";
    is $match->stem, $stem, "$name - stem ok";
    is $match->dir, $dir, "$name - dir ok";
    is $match->notdir, $notdir, "$name - notdir ok";

    my @prereqs = split /\s+/, $block->in_prereqs;
    map { $_ = $match->subs_stem($_) } @prereqs;
    is join(' ', @prereqs), $block->out_prereqs, "$name - subs_stem ok";
};

__DATA__

=== TEST 1:
--- pattern: %.o
--- target: foo.o
--- stem: foo
--- dir:
--- notdir: foo.o
--- in_prereqs: %.c lib/%.cpp
--- out_prereqs: foo.c lib/foo.cpp



=== TEST 2: slash in target
--- pattern: %.o
--- target: lib/foo.o
--- stem: foo
--- dir: lib/
--- notdir: foo.o
--- in_prereqs: %.c lib/%.cpp
--- out_prereqs: lib/foo.c lib/lib/foo.cpp