cmd_debug_test.sh revision 1.1.1.1.4.3 1 1.1.1.1.4.2 tls # Copyright 2011 Google Inc.
2 1.1.1.1.4.2 tls # All rights reserved.
3 1.1.1.1.4.2 tls #
4 1.1.1.1.4.2 tls # Redistribution and use in source and binary forms, with or without
5 1.1.1.1.4.2 tls # modification, are permitted provided that the following conditions are
6 1.1.1.1.4.2 tls # met:
7 1.1.1.1.4.2 tls #
8 1.1.1.1.4.2 tls # * Redistributions of source code must retain the above copyright
9 1.1.1.1.4.2 tls # notice, this list of conditions and the following disclaimer.
10 1.1.1.1.4.2 tls # * Redistributions in binary form must reproduce the above copyright
11 1.1.1.1.4.2 tls # notice, this list of conditions and the following disclaimer in the
12 1.1.1.1.4.2 tls # documentation and/or other materials provided with the distribution.
13 1.1.1.1.4.2 tls # * Neither the name of Google Inc. nor the names of its contributors
14 1.1.1.1.4.2 tls # may be used to endorse or promote products derived from this software
15 1.1.1.1.4.2 tls # without specific prior written permission.
16 1.1.1.1.4.2 tls #
17 1.1.1.1.4.2 tls # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
18 1.1.1.1.4.2 tls # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
19 1.1.1.1.4.2 tls # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
20 1.1.1.1.4.2 tls # A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
21 1.1.1.1.4.2 tls # OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
22 1.1.1.1.4.2 tls # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
23 1.1.1.1.4.2 tls # LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
24 1.1.1.1.4.2 tls # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
25 1.1.1.1.4.2 tls # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
26 1.1.1.1.4.2 tls # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
27 1.1.1.1.4.2 tls # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
28 1.1.1.1.4.2 tls
29 1.1.1.1.4.2 tls
30 1.1.1.1.4.2 tls utils_test_case no_args
31 1.1.1.1.4.2 tls no_args_body() {
32 1.1.1.1.4.2 tls cat >Kyuafile <<EOF
33 1.1.1.1.4.2 tls syntax(2)
34 1.1.1.1.4.2 tls test_suite("integration")
35 1.1.1.1.4.2 tls atf_test_program{name="simple_all_pass"}
36 1.1.1.1.4.2 tls EOF
37 1.1.1.1.4.2 tls utils_cp_helper simple_all_pass .
38 1.1.1.1.4.2 tls
39 1.1.1.1.4.2 tls cat >experr <<EOF
40 1.1.1.1.4.2 tls Usage error for command debug: Not enough arguments.
41 1.1.1.1.4.2 tls Type 'kyua help debug' for usage information.
42 1.1.1.1.4.2 tls EOF
43 1.1.1.1.4.2 tls atf_check -s exit:3 -o empty -e file:experr kyua debug
44 1.1.1.1.4.2 tls }
45 1.1.1.1.4.2 tls
46 1.1.1.1.4.2 tls
47 1.1.1.1.4.2 tls utils_test_case many_args
48 1.1.1.1.4.2 tls many_args_body() {
49 1.1.1.1.4.2 tls cat >Kyuafile <<EOF
50 1.1.1.1.4.2 tls syntax(2)
51 1.1.1.1.4.2 tls test_suite("integration")
52 1.1.1.1.4.2 tls atf_test_program{name="first"}
53 1.1.1.1.4.2 tls atf_test_program{name="second"}
54 1.1.1.1.4.2 tls EOF
55 1.1.1.1.4.2 tls utils_cp_helper simple_all_pass first
56 1.1.1.1.4.2 tls utils_cp_helper simple_all_pass second
57 1.1.1.1.4.2 tls
58 1.1.1.1.4.2 tls cat >experr <<EOF
59 1.1.1.1.4.2 tls Usage error for command debug: Too many arguments.
60 1.1.1.1.4.2 tls Type 'kyua help debug' for usage information.
61 1.1.1.1.4.2 tls EOF
62 1.1.1.1.4.2 tls atf_check -s exit:3 -o empty -e file:experr kyua debug first:pass \
63 1.1.1.1.4.2 tls second:pass
64 1.1.1.1.4.2 tls }
65 1.1.1.1.4.2 tls
66 1.1.1.1.4.2 tls
67 1.1.1.1.4.2 tls utils_test_case one_arg__ok_pass
68 1.1.1.1.4.2 tls one_arg__ok_pass_body() {
69 1.1.1.1.4.2 tls cat >Kyuafile <<EOF
70 1.1.1.1.4.2 tls syntax(2)
71 1.1.1.1.4.2 tls test_suite("integration")
72 1.1.1.1.4.2 tls atf_test_program{name="first"}
73 1.1.1.1.4.2 tls atf_test_program{name="second"}
74 1.1.1.1.4.2 tls EOF
75 1.1.1.1.4.2 tls utils_cp_helper expect_all_pass first
76 1.1.1.1.4.2 tls utils_cp_helper simple_all_pass second
77 1.1.1.1.4.2 tls
78 1.1.1.1.4.2 tls cat >expout <<EOF
79 1.1.1.1.4.2 tls This is the stdout of pass
80 1.1.1.1.4.2 tls second:pass -> passed
81 1.1.1.1.4.2 tls EOF
82 1.1.1.1.4.2 tls cat >experr <<EOF
83 1.1.1.1.4.2 tls This is the stderr of pass
84 1.1.1.1.4.2 tls EOF
85 1.1.1.1.4.2 tls atf_check -s exit:0 -o file:expout -e file:experr kyua debug second:pass
86 1.1.1.1.4.2 tls }
87 1.1.1.1.4.2 tls
88 1.1.1.1.4.2 tls
89 1.1.1.1.4.2 tls utils_test_case one_arg__ok_fail
90 1.1.1.1.4.2 tls one_arg__ok_fail_body() {
91 1.1.1.1.4.2 tls cat >Kyuafile <<EOF
92 1.1.1.1.4.2 tls syntax(2)
93 1.1.1.1.4.2 tls test_suite("integration")
94 1.1.1.1.4.2 tls atf_test_program{name="first"}
95 1.1.1.1.4.2 tls EOF
96 1.1.1.1.4.2 tls utils_cp_helper simple_some_fail first
97 1.1.1.1.4.2 tls
98 1.1.1.1.4.2 tls cat >expout <<EOF
99 1.1.1.1.4.2 tls This is the stdout of fail
100 1.1.1.1.4.2 tls first:fail -> failed: This fails on purpose
101 1.1.1.1.4.2 tls EOF
102 1.1.1.1.4.2 tls cat >experr <<EOF
103 1.1.1.1.4.2 tls This is the stderr of fail
104 1.1.1.1.4.2 tls EOF
105 1.1.1.1.4.2 tls atf_check -s exit:1 -o file:expout -e file:experr kyua debug first:fail
106 1.1.1.1.4.2 tls }
107 1.1.1.1.4.2 tls
108 1.1.1.1.4.2 tls
109 1.1.1.1.4.2 tls utils_test_case one_arg__no_match
110 1.1.1.1.4.2 tls one_arg__no_match_body() {
111 1.1.1.1.4.2 tls cat >Kyuafile <<EOF
112 1.1.1.1.4.2 tls syntax(2)
113 1.1.1.1.4.2 tls test_suite("integration")
114 1.1.1.1.4.2 tls atf_test_program{name="first"}
115 1.1.1.1.4.2 tls atf_test_program{name="second"}
116 1.1.1.1.4.2 tls EOF
117 1.1.1.1.4.2 tls utils_cp_helper expect_all_pass first
118 1.1.1.1.4.2 tls utils_cp_helper simple_all_pass second
119 1.1.1.1.4.2 tls
120 1.1.1.1.4.2 tls cat >experr <<EOF
121 1.1.1.1.4.2 tls kyua: E: Unknown test case 'second:die'.
122 1.1.1.1.4.2 tls EOF
123 1.1.1.1.4.2 tls atf_check -s exit:2 -o empty -e file:experr kyua debug second:die
124 1.1.1.1.4.2 tls }
125 1.1.1.1.4.2 tls
126 1.1.1.1.4.2 tls
127 1.1.1.1.4.2 tls utils_test_case one_arg__no_test_case
128 1.1.1.1.4.2 tls one_arg__no_test_case_body() {
129 1.1.1.1.4.2 tls cat >experr <<EOF
130 1.1.1.1.4.2 tls Usage error for command debug: 'foo' is not a test case identifier (missing ':'?).
131 1.1.1.1.4.2 tls Type 'kyua help debug' for usage information.
132 1.1.1.1.4.2 tls EOF
133 1.1.1.1.4.2 tls atf_check -s exit:3 -o empty -e file:experr kyua debug foo
134 1.1.1.1.4.2 tls }
135 1.1.1.1.4.2 tls
136 1.1.1.1.4.2 tls
137 1.1.1.1.4.2 tls utils_test_case one_arg__bad_filter
138 1.1.1.1.4.2 tls one_arg__bad_filter_body() {
139 1.1.1.1.4.2 tls cat >experr <<EOF
140 1.1.1.1.4.2 tls kyua: E: Test case component in 'foo:' is empty.
141 1.1.1.1.4.2 tls EOF
142 1.1.1.1.4.2 tls atf_check -s exit:2 -o empty -e file:experr kyua debug foo:
143 1.1.1.1.4.2 tls }
144 1.1.1.1.4.2 tls
145 1.1.1.1.4.2 tls
146 1.1.1.1.4.2 tls utils_test_case body_and_cleanup
147 1.1.1.1.4.2 tls body_and_cleanup_body() {
148 1.1.1.1.4.2 tls cat >Kyuafile <<EOF
149 1.1.1.1.4.2 tls syntax(2)
150 1.1.1.1.4.2 tls test_suite("integration")
151 1.1.1.1.4.2 tls atf_test_program{name="single"}
152 1.1.1.1.4.2 tls EOF
153 1.1.1.1.4.2 tls utils_cp_helper metadata single
154 1.1.1.1.4.2 tls
155 1.1.1.1.4.2 tls cat >expout <<EOF
156 1.1.1.1.4.2 tls single:with_cleanup -> passed
157 1.1.1.1.4.2 tls EOF
158 1.1.1.1.4.2 tls atf_check -s exit:0 -o file:expout -e empty kyua debug \
159 1.1.1.1.4.2 tls --stdout=saved.out --stderr=saved.err single:with_cleanup
160 1.1.1.1.4.2 tls
161 1.1.1.1.4.2 tls cat >expout <<EOF
162 1.1.1.1.4.2 tls Body message to stdout
163 1.1.1.1.4.2 tls Cleanup message to stdout
164 1.1.1.1.4.2 tls EOF
165 1.1.1.1.4.2 tls atf_check -s exit:0 -o file:expout -e empty cat saved.out
166 1.1.1.1.4.2 tls
167 1.1.1.1.4.2 tls cat >experr <<EOF
168 1.1.1.1.4.2 tls Body message to stderr
169 1.1.1.1.4.2 tls Cleanup message to stderr
170 1.1.1.1.4.2 tls EOF
171 1.1.1.1.4.2 tls atf_check -s exit:0 -o file:experr -e empty cat saved.err
172 1.1.1.1.4.2 tls }
173 1.1.1.1.4.2 tls
174 1.1.1.1.4.2 tls
175 1.1.1.1.4.2 tls utils_test_case stdout_stderr_flags
176 1.1.1.1.4.2 tls stdout_stderr_flags_body() {
177 1.1.1.1.4.2 tls cat >Kyuafile <<EOF
178 1.1.1.1.4.2 tls syntax(2)
179 1.1.1.1.4.2 tls test_suite("integration")
180 1.1.1.1.4.2 tls atf_test_program{name="first"}
181 1.1.1.1.4.2 tls atf_test_program{name="second"}
182 1.1.1.1.4.2 tls EOF
183 1.1.1.1.4.2 tls utils_cp_helper expect_all_pass first
184 1.1.1.1.4.2 tls utils_cp_helper simple_all_pass second
185 1.1.1.1.4.2 tls
186 1.1.1.1.4.2 tls cat >expout <<EOF
187 1.1.1.1.4.2 tls second:pass -> passed
188 1.1.1.1.4.2 tls EOF
189 1.1.1.1.4.2 tls atf_check -s exit:0 -o file:expout -e empty kyua debug \
190 1.1.1.1.4.2 tls --stdout=saved.out --stderr=saved.err second:pass
191 1.1.1.1.4.2 tls
192 1.1.1.1.4.2 tls cat >expout <<EOF
193 1.1.1.1.4.2 tls This is the stdout of pass
194 1.1.1.1.4.2 tls EOF
195 1.1.1.1.4.2 tls cmp -s saved.out expout || atf_fail "--stdout did not redirect the" \
196 1.1.1.1.4.2 tls "standard output to the desired file"
197 1.1.1.1.4.2 tls
198 1.1.1.1.4.2 tls cat >experr <<EOF
199 1.1.1.1.4.2 tls This is the stderr of pass
200 1.1.1.1.4.2 tls EOF
201 1.1.1.1.4.2 tls cmp -s saved.err experr || atf_fail "--stderr did not redirect the" \
202 1.1.1.1.4.2 tls "standard error to the desired file"
203 1.1.1.1.4.2 tls }
204 1.1.1.1.4.2 tls
205 1.1.1.1.4.2 tls
206 1.1.1.1.4.2 tls utils_test_case args_are_relative
207 1.1.1.1.4.2 tls args_are_relative_body() {
208 1.1.1.1.4.2 tls mkdir root
209 1.1.1.1.4.2 tls cat >root/Kyuafile <<EOF
210 1.1.1.1.4.2 tls syntax(2)
211 1.1.1.1.4.2 tls test_suite("integration")
212 1.1.1.1.4.2 tls include("subdir/Kyuafile")
213 1.1.1.1.4.2 tls atf_test_program{name="prog"}
214 1.1.1.1.4.2 tls EOF
215 1.1.1.1.4.2 tls utils_cp_helper simple_all_pass root/prog
216 1.1.1.1.4.2 tls
217 1.1.1.1.4.2 tls mkdir root/subdir
218 1.1.1.1.4.2 tls cat >root/subdir/Kyuafile <<EOF
219 1.1.1.1.4.2 tls syntax(2)
220 1.1.1.1.4.2 tls test_suite("integration")
221 1.1.1.1.4.2 tls atf_test_program{name="prog"}
222 1.1.1.1.4.2 tls EOF
223 1.1.1.1.4.2 tls utils_cp_helper simple_some_fail root/subdir/prog
224 1.1.1.1.4.2 tls
225 1.1.1.1.4.2 tls cat >expout <<EOF
226 1.1.1.1.4.2 tls This is the stdout of fail
227 1.1.1.1.4.2 tls subdir/prog:fail -> failed: This fails on purpose
228 1.1.1.1.4.2 tls EOF
229 1.1.1.1.4.2 tls cat >experr <<EOF
230 1.1.1.1.4.2 tls This is the stderr of fail
231 1.1.1.1.4.2 tls EOF
232 1.1.1.1.4.2 tls atf_check -s exit:1 -o file:expout -e file:experr kyua debug \
233 1.1.1.1.4.2 tls -k "$(pwd)/root/Kyuafile" subdir/prog:fail
234 1.1.1.1.4.2 tls }
235 1.1.1.1.4.2 tls
236 1.1.1.1.4.2 tls
237 1.1.1.1.4.2 tls utils_test_case only_load_used_test_programs
238 1.1.1.1.4.2 tls only_load_used_test_programs_body() {
239 1.1.1.1.4.2 tls cat >Kyuafile <<EOF
240 1.1.1.1.4.2 tls syntax(2)
241 1.1.1.1.4.2 tls test_suite("integration")
242 1.1.1.1.4.2 tls atf_test_program{name="first"}
243 1.1.1.1.4.2 tls atf_test_program{name="second"}
244 1.1.1.1.4.2 tls EOF
245 1.1.1.1.4.2 tls utils_cp_helper simple_all_pass first
246 1.1.1.1.4.2 tls utils_cp_helper bad_test_program second
247 1.1.1.1.4.2 tls
248 1.1.1.1.4.2 tls cat >expout <<EOF
249 1.1.1.1.4.2 tls This is the stdout of pass
250 1.1.1.1.4.2 tls first:pass -> passed
251 1.1.1.1.4.2 tls EOF
252 1.1.1.1.4.2 tls cat >experr <<EOF
253 1.1.1.1.4.2 tls This is the stderr of pass
254 1.1.1.1.4.2 tls EOF
255 1.1.1.1.4.2 tls CREATE_COOKIE="$(pwd)/cookie"; export CREATE_COOKIE
256 1.1.1.1.4.2 tls atf_check -s exit:0 -o file:expout -e file:experr kyua debug first:pass
257 1.1.1.1.4.2 tls if test -f "${CREATE_COOKIE}"; then
258 1.1.1.1.4.2 tls atf_fail "An unmatched test case has been executed, which harms" \
259 1.1.1.1.4.2 tls "performance"
260 1.1.1.1.4.2 tls fi
261 1.1.1.1.4.2 tls }
262 1.1.1.1.4.2 tls
263 1.1.1.1.4.2 tls
264 1.1.1.1.4.2 tls utils_test_case config_behavior
265 1.1.1.1.4.2 tls config_behavior_body() {
266 1.1.1.1.4.2 tls cat >"my-config" <<EOF
267 1.1.1.1.4.2 tls syntax(2)
268 1.1.1.1.4.2 tls test_suites.suite1["X-the-variable"] = "value1"
269 1.1.1.1.4.2 tls test_suites.suite2["X-the-variable"] = "override me"
270 1.1.1.1.4.2 tls EOF
271 1.1.1.1.4.2 tls
272 1.1.1.1.4.2 tls cat >Kyuafile <<EOF
273 1.1.1.1.4.2 tls syntax(2)
274 1.1.1.1.4.2 tls atf_test_program{name="config1", test_suite="suite1"}
275 1.1.1.1.4.2 tls atf_test_program{name="config2", test_suite="suite2"}
276 1.1.1.1.4.2 tls atf_test_program{name="config3", test_suite="suite3"}
277 1.1.1.1.4.2 tls EOF
278 1.1.1.1.4.2 tls utils_cp_helper config config1
279 1.1.1.1.4.2 tls utils_cp_helper config config2
280 1.1.1.1.4.2 tls utils_cp_helper config config3
281 1.1.1.1.4.2 tls
282 1.1.1.1.4.2 tls atf_check -s exit:1 -o match:'failed' -e empty \
283 1.1.1.1.4.2 tls kyua -c my-config -v test_suites.suite2.X-the-variable=value2 \
284 1.1.1.1.4.2 tls debug config1:get_variable
285 1.1.1.1.4.2 tls atf_check -s exit:0 -o match:'passed' -e empty \
286 1.1.1.1.4.2 tls kyua -c my-config -v test_suites.suite2.X-the-variable=value2 \
287 1.1.1.1.4.2 tls debug config2:get_variable
288 1.1.1.1.4.2 tls atf_check -s exit:0 -o match:'skipped' -e empty \
289 1.1.1.1.4.2 tls kyua -c my-config -v test_suites.suite2.X-the-variable=value2 \
290 1.1.1.1.4.2 tls debug config3:get_variable
291 1.1.1.1.4.2 tls }
292 1.1.1.1.4.2 tls
293 1.1.1.1.4.2 tls
294 1.1.1.1.4.2 tls utils_test_case build_root_flag
295 1.1.1.1.4.2 tls build_root_flag_body() {
296 1.1.1.1.4.2 tls cat >Kyuafile <<EOF
297 1.1.1.1.4.2 tls syntax(2)
298 1.1.1.1.4.2 tls test_suite("integration")
299 1.1.1.1.4.2 tls atf_test_program{name="first"}
300 1.1.1.1.4.2 tls atf_test_program{name="second"}
301 1.1.1.1.4.2 tls EOF
302 1.1.1.1.4.2 tls mkdir build
303 1.1.1.1.4.2 tls utils_cp_helper expect_all_pass build/first
304 1.1.1.1.4.2 tls utils_cp_helper simple_all_pass build/second
305 1.1.1.1.4.2 tls
306 1.1.1.1.4.2 tls cat >expout <<EOF
307 1.1.1.1.4.2 tls This is the stdout of pass
308 1.1.1.1.4.2 tls second:pass -> passed
309 1.1.1.1.4.2 tls EOF
310 1.1.1.1.4.2 tls cat >experr <<EOF
311 1.1.1.1.4.2 tls This is the stderr of pass
312 1.1.1.1.4.2 tls EOF
313 1.1.1.1.4.2 tls atf_check -s exit:0 -o file:expout -e file:experr \
314 1.1.1.1.4.2 tls kyua debug --build-root=build second:pass
315 1.1.1.1.4.2 tls }
316 1.1.1.1.4.2 tls
317 1.1.1.1.4.2 tls
318 1.1.1.1.4.2 tls utils_test_case kyuafile_flag__ok
319 1.1.1.1.4.2 tls kyuafile_flag__ok_body() {
320 1.1.1.1.4.2 tls cat >Kyuafile <<EOF
321 1.1.1.1.4.2 tls This file is bogus but it is not loaded.
322 1.1.1.1.4.2 tls EOF
323 1.1.1.1.4.2 tls
324 1.1.1.1.4.2 tls cat >myfile <<EOF
325 1.1.1.1.4.2 tls syntax(2)
326 1.1.1.1.4.2 tls test_suite("hello-world")
327 1.1.1.1.4.2 tls atf_test_program{name="sometest"}
328 1.1.1.1.4.2 tls EOF
329 1.1.1.1.4.2 tls utils_cp_helper simple_all_pass sometest
330 1.1.1.1.4.2 tls
331 1.1.1.1.4.2 tls atf_check -s exit:0 -o match:passed -e empty kyua test -k myfile sometest
332 1.1.1.1.4.2 tls atf_check -s exit:0 -o match:passed -e empty kyua test --kyuafile=myfile \
333 1.1.1.1.4.2 tls sometest
334 1.1.1.1.4.2 tls }
335 1.1.1.1.4.2 tls
336 1.1.1.1.4.2 tls
337 1.1.1.1.4.2 tls utils_test_case missing_kyuafile
338 1.1.1.1.4.2 tls missing_kyuafile_body() {
339 1.1.1.1.4.2 tls cat >experr <<EOF
340 1.1.1.1.4.2 tls kyua: E: Load of 'Kyuafile' failed: File 'Kyuafile' not found.
341 1.1.1.1.4.2 tls EOF
342 1.1.1.1.4.2 tls atf_check -s exit:2 -o empty -e file:experr kyua debug foo:bar
343 1.1.1.1.4.2 tls }
344 1.1.1.1.4.2 tls
345 1.1.1.1.4.2 tls
346 1.1.1.1.4.2 tls utils_test_case bogus_kyuafile
347 1.1.1.1.4.2 tls bogus_kyuafile_body() {
348 1.1.1.1.4.2 tls cat >Kyuafile <<EOF
349 1.1.1.1.4.2 tls Hello, world.
350 1.1.1.1.4.2 tls EOF
351 1.1.1.1.4.3 tls atf_check -s exit:2 -o empty \
352 1.1.1.1.4.3 tls -e match:"Load of 'Kyuafile' failed: .* Kyuafile:2:" kyua list
353 1.1.1.1.4.2 tls }
354 1.1.1.1.4.2 tls
355 1.1.1.1.4.2 tls
356 1.1.1.1.4.2 tls utils_test_case bogus_test_program
357 1.1.1.1.4.2 tls bogus_test_program_body() {
358 1.1.1.1.4.2 tls cat >Kyuafile <<EOF
359 1.1.1.1.4.2 tls syntax(2)
360 1.1.1.1.4.2 tls test_suite("integration")
361 1.1.1.1.4.2 tls atf_test_program{name="crash_on_list"}
362 1.1.1.1.4.2 tls atf_test_program{name="non_executable"}
363 1.1.1.1.4.2 tls EOF
364 1.1.1.1.4.2 tls utils_cp_helper bad_test_program crash_on_list
365 1.1.1.1.4.2 tls echo 'I am not executable' >non_executable
366 1.1.1.1.4.2 tls
367 1.1.1.1.4.2 tls cat >experr <<EOF
368 1.1.1.1.4.2 tls kyua: E: Unknown test case 'crash_on_list:a'.
369 1.1.1.1.4.2 tls EOF
370 1.1.1.1.4.2 tls atf_check -s exit:2 -o empty -e file:experr kyua debug crash_on_list:a
371 1.1.1.1.4.2 tls
372 1.1.1.1.4.2 tls cat >experr <<EOF
373 1.1.1.1.4.2 tls kyua: E: Unknown test case 'non_executable:a'.
374 1.1.1.1.4.2 tls EOF
375 1.1.1.1.4.2 tls atf_check -s exit:2 -o empty -e file:experr kyua debug non_executable:a
376 1.1.1.1.4.2 tls
377 1.1.1.1.4.2 tls cat >expout <<EOF
378 1.1.1.1.4.2 tls crash_on_list:__test_cases_list__ -> broken: Tester did not exit cleanly: kyua-atf-tester: Invalid test cases list header 'This is not a valid test program!'
379 1.1.1.1.4.2 tls EOF
380 1.1.1.1.4.2 tls atf_check -s exit:1 -o file:expout -e empty kyua debug crash_on_list:__test_cases_list__
381 1.1.1.1.4.2 tls
382 1.1.1.1.4.2 tls cat >expout <<EOF
383 1.1.1.1.4.2 tls non_executable:__test_cases_list__ -> broken: Tester did not exit cleanly: kyua-atf-tester: execvp failed: Permission denied
384 1.1.1.1.4.2 tls EOF
385 1.1.1.1.4.2 tls atf_check -s exit:1 -o file:expout -e empty kyua debug non_executable:__test_cases_list__
386 1.1.1.1.4.2 tls }
387 1.1.1.1.4.2 tls
388 1.1.1.1.4.2 tls
389 1.1.1.1.4.2 tls atf_init_test_cases() {
390 1.1.1.1.4.2 tls atf_add_test_case no_args
391 1.1.1.1.4.2 tls atf_add_test_case many_args
392 1.1.1.1.4.2 tls atf_add_test_case one_arg__ok_pass
393 1.1.1.1.4.2 tls atf_add_test_case one_arg__ok_fail
394 1.1.1.1.4.2 tls atf_add_test_case one_arg__no_match
395 1.1.1.1.4.2 tls atf_add_test_case one_arg__no_test_case
396 1.1.1.1.4.2 tls atf_add_test_case one_arg__bad_filter
397 1.1.1.1.4.2 tls
398 1.1.1.1.4.2 tls atf_add_test_case body_and_cleanup
399 1.1.1.1.4.2 tls
400 1.1.1.1.4.2 tls atf_add_test_case stdout_stderr_flags
401 1.1.1.1.4.2 tls
402 1.1.1.1.4.2 tls atf_add_test_case args_are_relative
403 1.1.1.1.4.2 tls
404 1.1.1.1.4.2 tls atf_add_test_case only_load_used_test_programs
405 1.1.1.1.4.2 tls
406 1.1.1.1.4.2 tls atf_add_test_case config_behavior
407 1.1.1.1.4.2 tls
408 1.1.1.1.4.2 tls atf_add_test_case build_root_flag
409 1.1.1.1.4.2 tls atf_add_test_case kyuafile_flag__ok
410 1.1.1.1.4.2 tls atf_add_test_case missing_kyuafile
411 1.1.1.1.4.2 tls atf_add_test_case bogus_kyuafile
412 1.1.1.1.4.2 tls atf_add_test_case bogus_test_program
413 1.1.1.1.4.2 tls }
414