blob: 5dce1d3d538a15407f782f5a221dc3013e8739c2 (
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
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
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
|
# file : tests/in/testscript
# license : MIT; see accompanying LICENSE file
crosstest = false
test.arguments =
.include ../common.testscript
+cat <<EOI >=build/root.build
using in
EOI
: basic
:
cat <<EOI >=test.in;
foo = $foo$
EOI
cat <<EOI >=buildfile;
file{test}: in{test}
{
foo = FOO
}
EOI
$* <<<buildfile;
cat test >>EOO;
foo = FOO
EOO
$* clean <<<buildfile
: substitution-map
:
cat <<EOI >=test.in;
foo = $_foo$
bar = $bar$
EOI
cat <<EOI >=buildfile;
file{test}: in{test}
{
in.substitutions = _foo@FOO
in.substitutions += bar@BAR
bar = wrong
}
EOI
$* <<<buildfile;
cat test >>EOO;
foo = FOO
bar = BAR
EOO
$* clean <<<buildfile
: lax
:
cat <<EOI >=test.in;
$10
$foo bar$ baz
EOI
$* <<EOI &test &test.d;
file{test}: in{test}
{
in.mode = lax
}
EOI
cat test >>EOO
$10
$foo bar$ baz
EOO
: rebuild
:
cat <'$foo$ $bar$' >=test.in;
$* <<EOI &test &test.d;
foo = foo
bar = bar
file{test}: in{test}
EOI
cat test >'foo bar';
$* <<EOI;
foo = FOO
bar = bar
file{test}: in{test}
EOI
cat test >'FOO bar';
$* <<EOI;
foo = FOO
bar = BAR
file{test}: in{test}
EOI
cat test >'FOO BAR';
cat <'$fox$ $baz$' >=test.in;
touch --after test test.in;
$* <<EOI;
fox = fox
baz = baz
file{test}: in{test}
EOI
cat test >'fox baz';
mv test.in tst.in;
$* <<EOI;
fox = FOX
baz = BAZ
file{test}: in{tst.in}
EOI
cat test >'FOX BAZ'
: rebuild-diag
:
cat <<EOI >=test.in;
foo = $foo$
bar = $bar$
EOI
$* <<EOI &test &test.d;
foo = foo
bar = bar
file{test}: in{test}
EOI
$* <<EOI 2>>EOE != 0
foo = foo
file{test}: in{test}
EOI
test.in:2: error: undefined variable 'bar'
EOE
: executable
:
: Test creation of executables (permissions, extensions).
:
if ($test.target == $build.host && $build.host.class != 'windows')
{
cat <<EOI >=hello.in;
#!/bin/sh
echo 'Hello, $name$!'
EOI
$* <<EOI &hello &hello.d;
exe{hello}: in{hello}
exe{hello}: name = 'World'
EOI
$~/hello >'Hello, World!'
}
|