File: interpolation.t

package info (click to toggle)
libmakefile-dom-perl 0.004-1
  • links: PTS, VCS
  • area: main
  • in suites: squeeze
  • size: 616 kB
  • ctags: 535
  • sloc: perl: 6,552; makefile: 2
file content (84 lines) | stat: -rw-r--r-- 2,291 bytes parent folder | download | duplicates (5)
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
78
79
80
81
82
83
84
use t::GmakeDOM;

plan tests => blocks() * 2;

run_tests;

__DATA__

=== TEST 1: variable references in prereq list
--- src

a: foo.c  bar.h	$(baz) # hello!
	@echo ...

--- dom
MDOM::Document::Gmake
  MDOM::Rule::Simple
    MDOM::Token::Bare         'a'
    MDOM::Token::Separator    ':'
    MDOM::Token::Whitespace   ' '
    MDOM::Token::Bare         'foo.c'
    MDOM::Token::Whitespace   '  '
    MDOM::Token::Bare         'bar.h'
    MDOM::Token::Whitespace   '\t'
    MDOM::Token::Interpolation   '$(baz)'
    MDOM::Token::Whitespace      ' '
    MDOM::Token::Comment         '# hello!'
    MDOM::Token::Whitespace      '\n'
  MDOM::Command
    MDOM::Token::Separator    '\t'
    MDOM::Token::Modifier     '@'
    MDOM::Token::Bare         'echo ...'
    MDOM::Token::Whitespace   '\n'



=== TEST 2: variable interpolation cannot be escaped by \
--- src
all: ; echo \$a
--- dom
MDOM::Document::Gmake
  MDOM::Rule::Simple
    MDOM::Token::Bare               'all'
    MDOM::Token::Separator          ':'
    MDOM::Token::Whitespace         ' '
    MDOM::Command
      MDOM::Token::Separator        ';'
      MDOM::Token::Whitespace       ' '
      MDOM::Token::Bare             'echo \'
      MDOM::Token::Interpolation    '$a'
      MDOM::Token::Whitespace       '\n'



=== TEST 3: $@, $a, etc.
--- src
all: $a $(a) ${c}
	echo $@ $a ${a} ${abc} ${}
--- dom
MDOM::Document::Gmake
  MDOM::Rule::Simple
    MDOM::Token::Bare               'all'
    MDOM::Token::Separator          ':'
    MDOM::Token::Whitespace         ' '
    MDOM::Token::Interpolation      '$a'
    MDOM::Token::Whitespace         ' '
    MDOM::Token::Interpolation      '$(a)'
    MDOM::Token::Whitespace         ' '
    MDOM::Token::Interpolation      '${c}'
    MDOM::Token::Whitespace         '\n'
  MDOM::Command
    MDOM::Token::Separator          '\t'
    MDOM::Token::Bare               'echo '
    MDOM::Token::Interpolation      '$@'
    MDOM::Token::Bare               ' '
    MDOM::Token::Interpolation      '$a'
    MDOM::Token::Bare               ' '
    MDOM::Token::Interpolation      '${a}'
    MDOM::Token::Bare               ' '
    MDOM::Token::Interpolation      '${abc}'
    MDOM::Token::Bare               ' '
    MDOM::Token::Interpolation      '${}'
    MDOM::Token::Whitespace         '\n'