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