File: ast-rule.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 (71 lines) | stat: -rw-r--r-- 1,807 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
60
61
62
63
64
65
66
67
68
69
70
71
use strict;
use warnings;
use Test::More tests => 21;
use Makefile::AST::Rule;
use Makefile::AST::Rule::Implicit;

{

my $rule = Makefile::AST::Rule::Base->new(
  {
    normal_prereqs => [qw(a b c)],
    order_prereqs  => [qw(d e f)],
    commands       => [qw(c1 c2 c3)],
    colon          => ':',
  }
);
ok $rule, 'rule obj ok';
isa_ok $rule, 'Makefile::AST::Rule::Base', 'rule class okay';
is join(' ', @{ $rule->normal_prereqs }), 'a b c';
is join(' ', @{ $rule->order_prereqs }), 'd e f';
is join(' ', @{ $rule->commands }), 'c1 c2 c3';
is $rule->colon, ':';

}

{

my $rule = Makefile::AST::Rule->new(
  {
    normal_prereqs => [qw(a b c)],
    order_prereqs  => [qw(d e f)],
    commands       => [qw(c1 c2 c3)],
    colon          => ':',
    target         => 'blah',
    stem           => 'foo',
    other_targets  => [qw(baz boz)],
  }
);
ok $rule, 'rule obj ok';
isa_ok $rule, 'Makefile::AST::Rule::Base', 'rule class okay';
is join(' ', @{ $rule->normal_prereqs }), 'a b c';
is join(' ', @{ $rule->order_prereqs }), 'd e f';
is join(' ', @{ $rule->commands }), 'c1 c2 c3';
is $rule->colon, ':';
is $rule->target, 'blah', 'target is readable';
$rule->target('hey');
is $rule->target, 'hey', 'target is writable';

}

{

my $rule = Makefile::AST::Rule::Implicit->new(
  {
    normal_prereqs => [qw(a b c)],
    order_prereqs  => [qw(d e f)],
    commands       => [qw(c1 c2 c3)],
    colon          => '::',
    targets        => [qw( %.lib %.dll )],
  }
);
ok $rule, 'rule obj ok';
isa_ok $rule, 'Makefile::AST::Rule::Base', 'rule class okay';
is join(' ', @{ $rule->normal_prereqs }), 'a b c';
is join(' ', @{ $rule->order_prereqs }), 'd e f';
is join(' ', @{ $rule->commands }), 'c1 c2 c3';
is $rule->colon, '::';
is join(' ', @{ $rule->targets }), '%.lib %.dll', 'targets are readable';

}