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
|