aboutsummaryrefslogtreecommitdiff
path: root/libbuild2/build/script/parser+expansion.test.testscript
blob: 086ec8f06ba92b568f5c9b10932fcec1b97049b3 (plain)
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
# file      : libbuild2/build/script/parser+expansion.test.testscript
# license   : MIT; see accompanying LICENSE file

: quote
:
: Make sure everything expanded as strings.
:
$* <<EOI >>EOO
x = dir/ proj% proj%name proj%proj%dir/type{name   name   {name}}
cmd dir/ proj% proj%name proj%proj%dir/type{name   name   {name}}
cmd $x
EOI
cmd dir/ proj% proj%name proj%proj%dir/type{name name {name}}
cmd dir/ proj% proj%name proj%proj%dir/type{name name {name}}
EOO

: unterm-quoted-seq
:
$* <<EOI 2>>EOE != 0
x = "'a bc"
cmd xy$x
EOI
<string>:1:8: error: unterminated single-quoted sequence
  buildfile:12:5: info: while parsing string 'xy'a bc'
EOE

# @@ TMP
#
#\
: invalid-redirect
:
$* <<EOI 2>>EOE != 0
x = [cmd_line] "1>&a"
cmd $x
EOI
<string>:1:4: error: stdout merge redirect file descriptor must be 2
  buildfile:12:5: info: while parsing string '1>&a'
EOE
#\

: expansion-re-parse
:
$* <<EOI >>EOO
x = <foo> <bar>
cmd $x

x = foo
cmd >$x

x = [string] foo
cmd >$x
EOI
cmd '<foo>' '<bar>'
cmd >foo
cmd >foo
EOO