xref: /freebsd/contrib/kyua/integration/cmd_config_test.sh (revision 257e70f1d5ee61037c8c59b116538d3b6b1427a2)
1b0d29bc4SBrooks Davis# Copyright 2011 The Kyua Authors.
2b0d29bc4SBrooks Davis# All rights reserved.
3b0d29bc4SBrooks Davis#
4b0d29bc4SBrooks Davis# Redistribution and use in source and binary forms, with or without
5b0d29bc4SBrooks Davis# modification, are permitted provided that the following conditions are
6b0d29bc4SBrooks Davis# met:
7b0d29bc4SBrooks Davis#
8b0d29bc4SBrooks Davis# * Redistributions of source code must retain the above copyright
9b0d29bc4SBrooks Davis#   notice, this list of conditions and the following disclaimer.
10b0d29bc4SBrooks Davis# * Redistributions in binary form must reproduce the above copyright
11b0d29bc4SBrooks Davis#   notice, this list of conditions and the following disclaimer in the
12b0d29bc4SBrooks Davis#   documentation and/or other materials provided with the distribution.
13b0d29bc4SBrooks Davis# * Neither the name of Google Inc. nor the names of its contributors
14b0d29bc4SBrooks Davis#   may be used to endorse or promote products derived from this software
15b0d29bc4SBrooks Davis#   without specific prior written permission.
16b0d29bc4SBrooks Davis#
17b0d29bc4SBrooks Davis# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
18b0d29bc4SBrooks Davis# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
19b0d29bc4SBrooks Davis# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
20b0d29bc4SBrooks Davis# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
21b0d29bc4SBrooks Davis# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
22b0d29bc4SBrooks Davis# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
23b0d29bc4SBrooks Davis# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
24b0d29bc4SBrooks Davis# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
25b0d29bc4SBrooks Davis# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
26b0d29bc4SBrooks Davis# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
27b0d29bc4SBrooks Davis# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
28b0d29bc4SBrooks Davis
29b0d29bc4SBrooks Davis
30b0d29bc4SBrooks Davisutils_test_case defaults
31b0d29bc4SBrooks Davisdefaults_body() {
32b0d29bc4SBrooks Davis    atf_check -s exit:0 \
33b0d29bc4SBrooks Davis        -o match:'^architecture = ' \
34b0d29bc4SBrooks Davis        -o match:'^platform = ' \
35b0d29bc4SBrooks Davis        kyua config
36b0d29bc4SBrooks Davis}
37b0d29bc4SBrooks Davis
38b0d29bc4SBrooks Davis
39b0d29bc4SBrooks Davisutils_test_case all
40b0d29bc4SBrooks Davisall_body() {
41b0d29bc4SBrooks Davis    mkdir "${HOME}/.kyua"
42b0d29bc4SBrooks Davis    cat >"${HOME}/.kyua/kyua.conf" <<EOF
43b0d29bc4SBrooks Davissyntax(2)
44b0d29bc4SBrooks Davisarchitecture = "my-architecture"
45*257e70f1SIgor Ostapenkoexecenvs = "my-env1 my-env2"
46b0d29bc4SBrooks Davisparallelism = 256
47b0d29bc4SBrooks Davisplatform = "my-platform"
48b0d29bc4SBrooks Davisunprivileged_user = "$(id -u -n)"
49b0d29bc4SBrooks Davistest_suites.suite1.the_variable = "value1"
50b0d29bc4SBrooks Davistest_suites.suite2.the_variable = "value2"
51b0d29bc4SBrooks DavisEOF
52b0d29bc4SBrooks Davis
53b0d29bc4SBrooks Davis    cat >expout <<EOF
54b0d29bc4SBrooks Davisarchitecture = my-architecture
55*257e70f1SIgor Ostapenkoexecenvs = my-env1 my-env2
56b0d29bc4SBrooks Davisparallelism = 256
57b0d29bc4SBrooks Davisplatform = my-platform
58b0d29bc4SBrooks Davistest_suites.suite1.the_variable = value1
59b0d29bc4SBrooks Davistest_suites.suite2.the_variable = value2
60b0d29bc4SBrooks Davisunprivileged_user = $(id -u -n)
61b0d29bc4SBrooks DavisEOF
62b0d29bc4SBrooks Davis
63b0d29bc4SBrooks Davis    atf_check -s exit:0 -o file:expout -e empty kyua config
64b0d29bc4SBrooks Davis}
65b0d29bc4SBrooks Davis
66b0d29bc4SBrooks Davis
67b0d29bc4SBrooks Davisutils_test_case one__ok
68b0d29bc4SBrooks Davisone__ok_body() {
69b0d29bc4SBrooks Davis    mkdir "${HOME}/.kyua"
70b0d29bc4SBrooks Davis    cat >"${HOME}/.kyua/kyua.conf" <<EOF
71b0d29bc4SBrooks Davissyntax(2)
72b0d29bc4SBrooks Davistest_suites.first.one = 1
73b0d29bc4SBrooks Davistest_suites.first.two = 2
74b0d29bc4SBrooks DavisEOF
75b0d29bc4SBrooks Davis
76b0d29bc4SBrooks Davis    cat >expout <<EOF
77b0d29bc4SBrooks Davistest_suites.first.two = 2
78b0d29bc4SBrooks DavisEOF
79b0d29bc4SBrooks Davis
80b0d29bc4SBrooks Davis    atf_check -s exit:0 -o file:expout -e empty kyua config \
81b0d29bc4SBrooks Davis        test_suites.first.two
82b0d29bc4SBrooks Davis}
83b0d29bc4SBrooks Davis
84b0d29bc4SBrooks Davis
85b0d29bc4SBrooks Davisutils_test_case one__fail
86b0d29bc4SBrooks Davisone__fail_body() {
87b0d29bc4SBrooks Davis    mkdir "${HOME}/.kyua"
88b0d29bc4SBrooks Davis    cat >"${HOME}/.kyua/kyua.conf" <<EOF
89b0d29bc4SBrooks Davissyntax(2)
90b0d29bc4SBrooks Davistest_suites.first.one = 1
91b0d29bc4SBrooks Davistest_suites.first.three = 3
92b0d29bc4SBrooks DavisEOF
93b0d29bc4SBrooks Davis
94b0d29bc4SBrooks Davis    cat >experr <<EOF
95b0d29bc4SBrooks Daviskyua: W: 'test_suites.first.two' is not defined.
96b0d29bc4SBrooks DavisEOF
97b0d29bc4SBrooks Davis
98b0d29bc4SBrooks Davis    atf_check -s exit:1 -o empty -e file:experr kyua config \
99b0d29bc4SBrooks Davis        test_suites.first.two
100b0d29bc4SBrooks Davis}
101b0d29bc4SBrooks Davis
102b0d29bc4SBrooks Davis
103b0d29bc4SBrooks Davisutils_test_case many__ok
104b0d29bc4SBrooks Davismany__ok_body() {
105b0d29bc4SBrooks Davis    mkdir "${HOME}/.kyua"
106b0d29bc4SBrooks Davis    cat >"${HOME}/.kyua/kyua.conf" <<EOF
107b0d29bc4SBrooks Davissyntax(2)
108b0d29bc4SBrooks Davisarchitecture = "overriden"
109b0d29bc4SBrooks Davisunknown_setting = "foo"
110b0d29bc4SBrooks Davistest_suites.first.one = 1
111b0d29bc4SBrooks Davistest_suites.first.two = 2
112b0d29bc4SBrooks DavisEOF
113b0d29bc4SBrooks Davis
114b0d29bc4SBrooks Davis    cat >expout <<EOF
115b0d29bc4SBrooks Davisarchitecture = overriden
116b0d29bc4SBrooks Davistest_suites.first.two = 2
117b0d29bc4SBrooks Davistest_suites.first.one = 1
118b0d29bc4SBrooks DavisEOF
119b0d29bc4SBrooks Davis
120b0d29bc4SBrooks Davis    atf_check -s exit:0 -o file:expout -e empty kyua config \
121b0d29bc4SBrooks Davis        architecture \
122b0d29bc4SBrooks Davis        test_suites.first.two \
123b0d29bc4SBrooks Davis        test_suites.first.one  # Inverse order on purpose.
124b0d29bc4SBrooks Davis    atf_check -s exit:0 -o match:architecture -o not-match:unknown_setting \
125b0d29bc4SBrooks Davis        -e empty kyua config
126b0d29bc4SBrooks Davis}
127b0d29bc4SBrooks Davis
128b0d29bc4SBrooks Davis
129b0d29bc4SBrooks Davisutils_test_case many__fail
130b0d29bc4SBrooks Davismany__fail_body() {
131b0d29bc4SBrooks Davis    mkdir "${HOME}/.kyua"
132b0d29bc4SBrooks Davis    cat >"${HOME}/.kyua/kyua.conf" <<EOF
133b0d29bc4SBrooks Davissyntax(2)
134b0d29bc4SBrooks Davistest_suites.first.one = 1
135b0d29bc4SBrooks Davistest_suites.first.three = 3
136b0d29bc4SBrooks DavisEOF
137b0d29bc4SBrooks Davis
138b0d29bc4SBrooks Davis    cat >expout <<EOF
139b0d29bc4SBrooks Davistest_suites.first.one = 1
140b0d29bc4SBrooks Davistest_suites.first.three = 3
141b0d29bc4SBrooks DavisEOF
142b0d29bc4SBrooks Davis
143b0d29bc4SBrooks Davis    cat >experr <<EOF
144b0d29bc4SBrooks Daviskyua: W: 'test_suites.first.two' is not defined.
145b0d29bc4SBrooks Daviskyua: W: 'test_suites.first.fourth' is not defined.
146b0d29bc4SBrooks DavisEOF
147b0d29bc4SBrooks Davis
148b0d29bc4SBrooks Davis    atf_check -s exit:1 -o file:expout -e file:experr kyua config \
149b0d29bc4SBrooks Davis        test_suites.first.one test_suites.first.two \
150b0d29bc4SBrooks Davis        test_suites.first.three test_suites.first.fourth
151b0d29bc4SBrooks Davis}
152b0d29bc4SBrooks Davis
153b0d29bc4SBrooks Davis
154b0d29bc4SBrooks Davisutils_test_case config_flag__default_system
155b0d29bc4SBrooks Davisconfig_flag__default_system_body() {
156b0d29bc4SBrooks Davis    cat >kyua.conf <<EOF
157b0d29bc4SBrooks Davissyntax(2)
158b0d29bc4SBrooks Davistest_suites.foo.var = "baz"
159b0d29bc4SBrooks DavisEOF
160b0d29bc4SBrooks Davis
161b0d29bc4SBrooks Davis    atf_check -s exit:1 -o empty \
162b0d29bc4SBrooks Davis        -e match:"kyua: W: 'test_suites.foo.var'.*not defined" \
163b0d29bc4SBrooks Davis        kyua config test_suites.foo.var
164b0d29bc4SBrooks Davis    export KYUA_CONFDIR="$(pwd)"
165b0d29bc4SBrooks Davis    atf_check -s exit:0 -o match:"foo.var = baz" -e empty \
166b0d29bc4SBrooks Davis        kyua config test_suites.foo.var
167b0d29bc4SBrooks Davis}
168b0d29bc4SBrooks Davis
169b0d29bc4SBrooks Davis
170b0d29bc4SBrooks Davisutils_test_case config_flag__default_home
171b0d29bc4SBrooks Davisconfig_flag__default_home_body() {
172b0d29bc4SBrooks Davis    cat >kyua.conf <<EOF
173b0d29bc4SBrooks Davissyntax(2)
174b0d29bc4SBrooks Davistest_suites.foo.var = "bar"
175b0d29bc4SBrooks DavisEOF
176b0d29bc4SBrooks Davis    export KYUA_CONFDIR="$(pwd)"
177b0d29bc4SBrooks Davis    atf_check -s exit:0 -o match:"test_suites.foo.var = bar" -e empty \
178b0d29bc4SBrooks Davis        kyua config test_suites.foo.var
179b0d29bc4SBrooks Davis
180b0d29bc4SBrooks Davis    # The previously-created "system-wide" file has to be ignored.
181b0d29bc4SBrooks Davis    mkdir .kyua
182b0d29bc4SBrooks Davis    cat >.kyua/kyua.conf <<EOF
183b0d29bc4SBrooks Davissyntax(2)
184b0d29bc4SBrooks Davistest_suites.foo.var = "baz"
185b0d29bc4SBrooks DavisEOF
186b0d29bc4SBrooks Davis    atf_check -s exit:0 -o match:"test_suites.foo.var = baz" -e empty \
187b0d29bc4SBrooks Davis        kyua config test_suites.foo.var
188b0d29bc4SBrooks Davis}
189b0d29bc4SBrooks Davis
190b0d29bc4SBrooks Davis
191b0d29bc4SBrooks Davisutils_test_case config_flag__explicit__ok
192b0d29bc4SBrooks Davisconfig_flag__explicit__ok_body() {
193b0d29bc4SBrooks Davis    cat >kyua.conf <<EOF
194b0d29bc4SBrooks Davissyntax(2)
195b0d29bc4SBrooks Davistest_suites.foo.var = "baz"
196b0d29bc4SBrooks DavisEOF
197b0d29bc4SBrooks Davis
198b0d29bc4SBrooks Davis    atf_check -s exit:1 -o empty \
199b0d29bc4SBrooks Davis        -e match:"kyua: W: 'test_suites.foo.var'.*not defined" \
200b0d29bc4SBrooks Davis        kyua config test_suites.foo.var
201b0d29bc4SBrooks Davis    atf_check -s exit:0 -o match:"test_suites.foo.var = baz" -e empty \
202b0d29bc4SBrooks Davis        kyua -c kyua.conf config test_suites.foo.var
203b0d29bc4SBrooks Davis    atf_check -s exit:0 -o match:"test_suites.foo.var = baz" -e empty \
204b0d29bc4SBrooks Davis        kyua --config=kyua.conf config test_suites.foo.var
205b0d29bc4SBrooks Davis}
206b0d29bc4SBrooks Davis
207b0d29bc4SBrooks Davis
208b0d29bc4SBrooks Davisutils_test_case config_flag__explicit__disable
209b0d29bc4SBrooks Davisconfig_flag__explicit__disable_body() {
210b0d29bc4SBrooks Davis    cat >kyua.conf <<EOF
211b0d29bc4SBrooks Davissyntax(2)
212b0d29bc4SBrooks Davistest_suites.foo.var = "baz"
213b0d29bc4SBrooks DavisEOF
214b0d29bc4SBrooks Davis    mkdir .kyua
215b0d29bc4SBrooks Davis    cp kyua.conf .kyua/kyua.conf
216b0d29bc4SBrooks Davis    export KYUA_CONFDIR="$(pwd)"
217b0d29bc4SBrooks Davis
218b0d29bc4SBrooks Davis    atf_check -s exit:0 -o match:"test_suites.foo.var = baz" -e empty \
219b0d29bc4SBrooks Davis        kyua config test_suites.foo.var
220b0d29bc4SBrooks Davis    atf_check -s exit:1 -o empty \
221b0d29bc4SBrooks Davis        -e match:"kyua: W: 'test_suites.foo.var'.*not defined" \
222b0d29bc4SBrooks Davis        kyua --config=none config test_suites.foo.var
223b0d29bc4SBrooks Davis}
224b0d29bc4SBrooks Davis
225b0d29bc4SBrooks Davis
226b0d29bc4SBrooks Davisutils_test_case config_flag__explicit__missing_file
227b0d29bc4SBrooks Davisconfig_flag__explicit__missing_file_body() {
228b0d29bc4SBrooks Davis    cat >experr <<EOF
229b0d29bc4SBrooks Daviskyua: E: Load of 'foo' failed: File 'foo' not found.
230b0d29bc4SBrooks DavisEOF
231b0d29bc4SBrooks Davis    atf_check -s exit:2 -o empty -e file:experr kyua --config=foo config
232b0d29bc4SBrooks Davis}
233b0d29bc4SBrooks Davis
234b0d29bc4SBrooks Davis
235b0d29bc4SBrooks Davisutils_test_case config_flag__explicit__bad_file
236b0d29bc4SBrooks Davisconfig_flag__explicit__bad_file_body() {
237b0d29bc4SBrooks Davis    touch custom
238b0d29bc4SBrooks Davis    atf_check -s exit:2 -o empty -e match:"No syntax defined" \
239b0d29bc4SBrooks Davis        kyua --config=custom config
240b0d29bc4SBrooks Davis}
241b0d29bc4SBrooks Davis
242b0d29bc4SBrooks Davis
243b0d29bc4SBrooks Davisutils_test_case variable_flag__no_config
244b0d29bc4SBrooks Davisvariable_flag__no_config_body() {
245b0d29bc4SBrooks Davis    atf_check -s exit:0 \
246b0d29bc4SBrooks Davis        -o match:'test_suites.suite1.the_variable = value1' \
247b0d29bc4SBrooks Davis        -o match:'test_suites.suite2.the_variable = value2' \
248b0d29bc4SBrooks Davis        -e empty \
249b0d29bc4SBrooks Davis        kyua \
250b0d29bc4SBrooks Davis        -v "test_suites.suite1.the_variable=value1" \
251b0d29bc4SBrooks Davis        -v "test_suites.suite2.the_variable=value2" \
252b0d29bc4SBrooks Davis        config
253b0d29bc4SBrooks Davis
254b0d29bc4SBrooks Davis    atf_check -s exit:0 \
255b0d29bc4SBrooks Davis        -o match:'test_suites.suite1.the_variable = value1' \
256b0d29bc4SBrooks Davis        -o match:'test_suites.suite2.the_variable = value2' \
257b0d29bc4SBrooks Davis        -e empty \
258b0d29bc4SBrooks Davis        kyua \
259b0d29bc4SBrooks Davis        --variable="test_suites.suite1.the_variable=value1" \
260b0d29bc4SBrooks Davis        --variable="test_suites.suite2.the_variable=value2" \
261b0d29bc4SBrooks Davis        config
262b0d29bc4SBrooks Davis}
263b0d29bc4SBrooks Davis
264b0d29bc4SBrooks Davis
265b0d29bc4SBrooks Davisutils_test_case variable_flag__override_default_config
266b0d29bc4SBrooks Davisvariable_flag__override_default_config_body() {
267b0d29bc4SBrooks Davis    mkdir "${HOME}/.kyua"
268b0d29bc4SBrooks Davis    cat >"${HOME}/.kyua/kyua.conf" <<EOF
269b0d29bc4SBrooks Davissyntax(2)
270b0d29bc4SBrooks Davistest_suites.suite1.the_variable = "value1"
271b0d29bc4SBrooks Davistest_suites.suite2.the_variable = "should not be used"
272b0d29bc4SBrooks DavisEOF
273b0d29bc4SBrooks Davis
274b0d29bc4SBrooks Davis    atf_check -s exit:0 \
275b0d29bc4SBrooks Davis        -o match:'test_suites.suite1.the_variable = value1' \
276b0d29bc4SBrooks Davis        -o match:'test_suites.suite2.the_variable = overriden' \
277b0d29bc4SBrooks Davis        -o match:'test_suites.suite3.the_variable = new' \
278b0d29bc4SBrooks Davis        -e empty kyua \
279b0d29bc4SBrooks Davis        -v "test_suites.suite2.the_variable=overriden" \
280b0d29bc4SBrooks Davis        -v "test_suites.suite3.the_variable=new" \
281b0d29bc4SBrooks Davis        config
282b0d29bc4SBrooks Davis
283b0d29bc4SBrooks Davis    atf_check -s exit:0 \
284b0d29bc4SBrooks Davis        -o match:'test_suites.suite1.the_variable = value1' \
285b0d29bc4SBrooks Davis        -o match:'test_suites.suite2.the_variable = overriden' \
286b0d29bc4SBrooks Davis        -o match:'test_suites.suite3.the_variable = new' \
287b0d29bc4SBrooks Davis        -e empty kyua \
288b0d29bc4SBrooks Davis        --variable="test_suites.suite2.the_variable=overriden" \
289b0d29bc4SBrooks Davis        --variable="test_suites.suite3.the_variable=new" \
290b0d29bc4SBrooks Davis        config
291b0d29bc4SBrooks Davis}
292b0d29bc4SBrooks Davis
293b0d29bc4SBrooks Davis
294b0d29bc4SBrooks Davisutils_test_case variable_flag__override_custom_config
295b0d29bc4SBrooks Davisvariable_flag__override_custom_config_body() {
296b0d29bc4SBrooks Davis    cat >config <<EOF
297b0d29bc4SBrooks Davissyntax(2)
298b0d29bc4SBrooks Davistest_suites.suite1.the_variable = "value1"
299b0d29bc4SBrooks Davistest_suites.suite2.the_variable = "should not be used"
300b0d29bc4SBrooks DavisEOF
301b0d29bc4SBrooks Davis
302b0d29bc4SBrooks Davis    atf_check -s exit:0 \
303b0d29bc4SBrooks Davis        -o match:'test_suites.suite2.the_variable = overriden' \
304b0d29bc4SBrooks Davis        -e empty kyua -c config \
305b0d29bc4SBrooks Davis        -v "test_suites.suite2.the_variable=overriden" config
306b0d29bc4SBrooks Davis
307b0d29bc4SBrooks Davis    atf_check -s exit:0 \
308b0d29bc4SBrooks Davis        -o match:'test_suites.suite2.the_variable = overriden' \
309b0d29bc4SBrooks Davis        -e empty kyua -c config \
310b0d29bc4SBrooks Davis        --variable="test_suites.suite2.the_variable=overriden" config
311b0d29bc4SBrooks Davis}
312b0d29bc4SBrooks Davis
313b0d29bc4SBrooks Davis
314b0d29bc4SBrooks Davisutils_test_case variable_flag__invalid_key
315b0d29bc4SBrooks Davisvariable_flag__invalid_key_body() {
316b0d29bc4SBrooks Davis    # CHECK_STYLE_DISABLE
317b0d29bc4SBrooks Davis    cat >experr <<EOF
318b0d29bc4SBrooks DavisUsage error: Invalid argument '' for option --variable: Argument does not have the form 'K=V'.
319b0d29bc4SBrooks DavisType 'kyua help' for usage information.
320b0d29bc4SBrooks DavisEOF
321b0d29bc4SBrooks Davis    # CHECK_STYLE_ENABLE
322b0d29bc4SBrooks Davis    atf_check -s exit:3 -o empty -e file:experr kyua \
323b0d29bc4SBrooks Davis        -v "test_suites.a.b=c" -v "" config
324b0d29bc4SBrooks Davis}
325b0d29bc4SBrooks Davis
326b0d29bc4SBrooks Davis
327b0d29bc4SBrooks Davisutils_test_case variable_flag__invalid_value
328b0d29bc4SBrooks Davisvariable_flag__invalid_value_body() {
329b0d29bc4SBrooks Davis    cat >experr <<EOF
330b0d29bc4SBrooks Daviskyua: E: Invalid value for property 'parallelism': Must be a positive integer.
331b0d29bc4SBrooks DavisEOF
332b0d29bc4SBrooks Davis    atf_check -s exit:2 -o empty -e file:experr kyua \
333b0d29bc4SBrooks Davis        -v "parallelism=0" config
334b0d29bc4SBrooks Davis}
335b0d29bc4SBrooks Davis
336b0d29bc4SBrooks Davis
337b0d29bc4SBrooks Davisatf_init_test_cases() {
338b0d29bc4SBrooks Davis    atf_add_test_case defaults
339b0d29bc4SBrooks Davis    atf_add_test_case all
340b0d29bc4SBrooks Davis    atf_add_test_case one__ok
341b0d29bc4SBrooks Davis    atf_add_test_case one__fail
342b0d29bc4SBrooks Davis    atf_add_test_case many__ok
343b0d29bc4SBrooks Davis    atf_add_test_case many__fail
344b0d29bc4SBrooks Davis
345b0d29bc4SBrooks Davis    atf_add_test_case config_flag__default_system
346b0d29bc4SBrooks Davis    atf_add_test_case config_flag__default_home
347b0d29bc4SBrooks Davis    atf_add_test_case config_flag__explicit__ok
348b0d29bc4SBrooks Davis    atf_add_test_case config_flag__explicit__disable
349b0d29bc4SBrooks Davis    atf_add_test_case config_flag__explicit__missing_file
350b0d29bc4SBrooks Davis    atf_add_test_case config_flag__explicit__bad_file
351b0d29bc4SBrooks Davis
352b0d29bc4SBrooks Davis    atf_add_test_case variable_flag__no_config
353b0d29bc4SBrooks Davis    atf_add_test_case variable_flag__override_default_config
354b0d29bc4SBrooks Davis    atf_add_test_case variable_flag__override_custom_config
355b0d29bc4SBrooks Davis    atf_add_test_case variable_flag__invalid_key
356b0d29bc4SBrooks Davis    atf_add_test_case variable_flag__invalid_value
357b0d29bc4SBrooks Davis}
358