blob: 9ce40ba0da8b9a848e369b35ac91a9666ac67f27 (
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
|
# file : tests/test/simple/generated/testscript
# license : MIT; see accompanying LICENSE file
test.arguments = test clean
.include ../../common.testscript
# @@ in module
#
+cat <<EOI >+build/bootstrap.build
using version
EOI
+cat <<EOI >=manifest
: 1
name: test
version: 1.2.3
EOI
# This one is a bit tricky since we need an executable to run. We don't want
# to be building anything as part of our test project so what we do is test
# the directory target with an overridden test target (note that $src_root
# here refers to the root of the project being tested).
: input
:
ln -s $src_base/input.in ./;
$* <<EOI
driver = $src_root/../exe{driver}
./: test = $driver
./: $driver
./: file{input}: test.input = true
file{input}: in{input} $src_root/manifest #@@ in module
EOI
: output
:
ln -s $src_base/output.in ./;
$* <<EOI
driver = $src_root/../exe{driver}
./: test = $driver
./: $driver
./: file{output}: test.stdout = true
file{output}: in{output} $src_root/manifest #@@ in module
EOI
: timeout
:
{
: operation
:
{
: no-output
:
ln -s $src_base/output.in ./;
$* config.test.timeout=1 <<EOI 2>>/~%EOE% != 0
driver = $src_root/../exe{driver}
./: test = $driver
./: test.options = -s
./: $driver
EOI
error: test dir{./} failed
% error: .+ -s terminated: execution timeout expired%
% info: test command line: .+%
EOE
: output
:
ln -s $src_base/output.in ./;
$* config.test.timeout=1 &output &output.d <<EOI 2>>/~%EOE% != 0
driver = $src_root/../exe{driver}
./: test = $driver
./: test.options = -s
./: $driver
./: file{output}: test.stdout = true
file{output}: in{output} $src_root/manifest #@@ in module
EOI
error: test dir{./} failed
% error: diff .+ terminated: execution timeout expired%
% error: .+ -s terminated: execution timeout expired%
% info: test command line: .+%
EOE
}
: test
:
{
: no-output
:
ln -s $src_base/output.in ./;
$* config.test.timeout=/1 <<EOI 2>>/~%EOE% != 0
driver = $src_root/../exe{driver}
./: test = $driver
./: test.options = -s
./: $driver
EOI
error: test dir{./} failed
% error: .+ -s terminated: execution timeout expired%
% info: test command line: .+%
EOE
}
}
: runner
:
if ($cxx.target.class != 'windows')
{
cat <<EOI >=run;
#!/bin/sh
if test "$1" = "--trace"; then
shift
echo "tracing"
fi
"$@"
EOI
chmod u+x run;
echo 'tracing' >=output.in;
cat $src_base/output.in >+output.in;
$* config.test.runner="./run --trace" <<EOI
driver = $src_root/../exe{driver}
./: test = $driver
./: $driver
./: file{output}: test.stdout = true
file{output}: in{output} $src_root/manifest #@@ in module
EOI
}
|