1# Copyright (c) 2007 The NetBSD Foundation, Inc. 2# All rights reserved. 3# 4# Redistribution and use in source and binary forms, with or without 5# modification, are permitted provided that the following conditions 6# are met: 7# 1. Redistributions of source code must retain the above copyright 8# notice, this list of conditions and the following disclaimer. 9# 2. Redistributions in binary form must reproduce the above copyright 10# notice, this list of conditions and the following disclaimer in the 11# documentation and/or other materials provided with the distribution. 12# 13# THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND 14# CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, 15# INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 16# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 17# IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS BE LIABLE FOR ANY 18# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 19# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE 20# GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 21# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER 22# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR 23# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN 24# IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 25 26# ------------------------------------------------------------------------- 27# Helper tests for "t_cleanup". 28# ------------------------------------------------------------------------- 29 30atf_test_case cleanup_pass cleanup 31cleanup_pass_head() 32{ 33 atf_set "descr" "Helper test case for the t_cleanup test program" 34} 35cleanup_pass_body() 36{ 37 touch $(atf_config_get tmpfile) 38} 39cleanup_pass_cleanup() 40{ 41 if [ $(atf_config_get cleanup no) = yes ]; then 42 rm $(atf_config_get tmpfile) 43 fi 44} 45 46atf_test_case cleanup_fail cleanup 47cleanup_fail_head() 48{ 49 atf_set "descr" "Helper test case for the t_cleanup test program" 50} 51cleanup_fail_body() 52{ 53 touch $(atf_config_get tmpfile) 54 atf_fail "On purpose" 55} 56cleanup_fail_cleanup() 57{ 58 if [ $(atf_config_get cleanup no) = yes ]; then 59 rm $(atf_config_get tmpfile) 60 fi 61} 62 63atf_test_case cleanup_skip cleanup 64cleanup_skip_head() 65{ 66 atf_set "descr" "Helper test case for the t_cleanup test program" 67} 68cleanup_skip_body() 69{ 70 touch $(atf_config_get tmpfile) 71 atf_skip "On purpose" 72} 73cleanup_skip_cleanup() 74{ 75 if [ $(atf_config_get cleanup no) = yes ]; then 76 rm $(atf_config_get tmpfile) 77 fi 78} 79 80atf_test_case cleanup_curdir cleanup 81cleanup_curdir_head() 82{ 83 atf_set "descr" "Helper test case for the t_cleanup test program" 84} 85cleanup_curdir_body() 86{ 87 echo 1234 >oldvalue 88} 89cleanup_curdir_cleanup() 90{ 91 test -f oldvalue && echo "Old value: $(cat oldvalue)" 92} 93 94atf_test_case cleanup_sigterm cleanup 95cleanup_sigterm_head() 96{ 97 atf_set "descr" "Helper test case for the t_cleanup test program" 98} 99cleanup_sigterm_body() 100{ 101 touch $(atf_config_get tmpfile) 102 kill $$ 103 touch $(atf_config_get tmpfile).no 104} 105cleanup_sigterm_cleanup() 106{ 107 rm $(atf_config_get tmpfile) 108} 109 110# ------------------------------------------------------------------------- 111# Helper tests for "t_config". 112# ------------------------------------------------------------------------- 113 114atf_test_case config_unset 115config_unset_head() 116{ 117 atf_set "descr" "Helper test case for the t_config test program" 118} 119config_unset_body() 120{ 121 if atf_config_has 'test'; then 122 atf_fail "Test variable already defined" 123 fi 124} 125 126atf_test_case config_empty 127config_empty_head() 128{ 129 atf_set "descr" "Helper test case for the t_config test program" 130} 131config_empty_body() 132{ 133 atf_check_equal "$(atf_config_get 'test')" "" 134} 135 136atf_test_case config_value 137config_value_head() 138{ 139 atf_set "descr" "Helper test case for the t_config test program" 140} 141config_value_body() 142{ 143 atf_check_equal "$(atf_config_get 'test')" "foo" 144} 145 146atf_test_case config_multi_value 147config_multi_value_head() 148{ 149 atf_set "descr" "Helper test case for the t_config test program" 150} 151config_multi_value_body() 152{ 153 atf_check_equal "$(atf_config_get 'test')" "foo bar" 154} 155 156# ------------------------------------------------------------------------- 157# Helper tests for "t_expect". 158# ------------------------------------------------------------------------- 159 160atf_test_case expect_pass_and_pass 161expect_pass_and_pass_body() 162{ 163 atf_expect_pass 164} 165 166atf_test_case expect_pass_but_fail_requirement 167expect_pass_but_fail_requirement_body() 168{ 169 atf_expect_pass 170 atf_fail "Some reason" 171} 172 173atf_test_case expect_pass_but_fail_check 174expect_pass_but_fail_check_body() 175{ 176 atf_fail "Non-fatal failures not implemented" 177} 178 179atf_test_case expect_fail_and_fail_requirement 180expect_fail_and_fail_requirement_body() 181{ 182 atf_expect_fail "Fail reason" 183 atf_fail "The failure" 184 atf_expect_pass 185} 186 187atf_test_case expect_fail_and_fail_check 188expect_fail_and_fail_check_body() 189{ 190 atf_fail "Non-fatal failures not implemented" 191} 192 193atf_test_case expect_fail_but_pass 194expect_fail_but_pass_body() 195{ 196 atf_expect_fail "Fail first" 197 atf_expect_pass 198} 199 200atf_test_case expect_exit_any_and_exit 201expect_exit_any_and_exit_body() 202{ 203 atf_expect_exit -1 "Call will exit" 204 exit 0 205} 206 207atf_test_case expect_exit_code_and_exit 208expect_exit_code_and_exit_body() 209{ 210 atf_expect_exit 123 "Call will exit" 211 exit 123 212} 213 214atf_test_case expect_exit_but_pass 215expect_exit_but_pass_body() 216{ 217 atf_expect_exit -1 "Call won't exit" 218} 219 220atf_test_case expect_signal_any_and_signal 221expect_signal_any_and_signal_body() 222{ 223 atf_expect_signal -1 "Call will signal" 224 kill -9 $$ 225} 226 227atf_test_case expect_signal_no_and_signal 228expect_signal_no_and_signal_body() 229{ 230 atf_expect_signal 1 "Call will signal" 231 kill -1 $$ 232} 233 234atf_test_case expect_signal_but_pass 235expect_signal_but_pass_body() 236{ 237 atf_expect_signal -1 "Call won't signal" 238} 239 240atf_test_case expect_death_and_exit 241expect_death_and_exit_body() 242{ 243 atf_expect_death "Exit case" 244 exit 123 245} 246 247atf_test_case expect_death_and_signal 248expect_death_and_signal_body() 249{ 250 atf_expect_death "Signal case" 251 kill -9 $$ 252} 253 254atf_test_case expect_death_but_pass 255expect_death_but_pass_body() 256{ 257 atf_expect_death "Call won't die" 258} 259 260atf_test_case expect_timeout_and_hang 261expect_timeout_and_hang_head() 262{ 263 atf_set "timeout" "1" 264} 265expect_timeout_and_hang_body() 266{ 267 atf_expect_timeout "Will overrun" 268 sleep 5 269} 270 271atf_test_case expect_timeout_but_pass 272expect_timeout_but_pass_head() 273{ 274 atf_set "timeout" "1" 275} 276expect_timeout_but_pass_body() 277{ 278 atf_expect_timeout "Will just exit" 279} 280 281# ------------------------------------------------------------------------- 282# Helper tests for "t_meta_data". 283# ------------------------------------------------------------------------- 284 285atf_test_case metadata_no_descr 286metadata_no_descr_head() 287{ 288 : 289} 290metadata_no_descr_body() 291{ 292 : 293} 294 295atf_test_case metadata_no_head 296metadata_no_head_body() 297{ 298 : 299} 300 301# ------------------------------------------------------------------------- 302# Helper tests for "t_srcdir". 303# ------------------------------------------------------------------------- 304 305atf_test_case srcdir_exists 306srcdir_exists_head() 307{ 308 atf_set "descr" "Helper test case for the t_srcdir test program" 309} 310srcdir_exists_body() 311{ 312 [ -f "$(atf_get_srcdir)/datafile" ] || atf_fail "Cannot find datafile" 313} 314 315# ------------------------------------------------------------------------- 316# Helper tests for "t_result". 317# ------------------------------------------------------------------------- 318 319atf_test_case result_pass 320result_pass_body() 321{ 322 echo "msg" 323} 324 325atf_test_case result_fail 326result_fail_body() 327{ 328 echo "msg" 329 atf_fail "Failure reason" 330} 331 332atf_test_case result_skip 333result_skip_body() 334{ 335 echo "msg" 336 atf_skip "Skipped reason" 337} 338 339# ------------------------------------------------------------------------- 340# Main. 341# ------------------------------------------------------------------------- 342 343atf_init_test_cases() 344{ 345 # Add helper tests for t_cleanup. 346 atf_add_test_case cleanup_pass 347 atf_add_test_case cleanup_fail 348 atf_add_test_case cleanup_skip 349 atf_add_test_case cleanup_curdir 350 atf_add_test_case cleanup_sigterm 351 352 # Add helper tests for t_config. 353 atf_add_test_case config_unset 354 atf_add_test_case config_empty 355 atf_add_test_case config_value 356 atf_add_test_case config_multi_value 357 358 # Add helper tests for t_expect. 359 atf_add_test_case expect_pass_and_pass 360 atf_add_test_case expect_pass_but_fail_requirement 361 atf_add_test_case expect_pass_but_fail_check 362 atf_add_test_case expect_fail_and_fail_requirement 363 atf_add_test_case expect_fail_and_fail_check 364 atf_add_test_case expect_fail_but_pass 365 atf_add_test_case expect_exit_any_and_exit 366 atf_add_test_case expect_exit_code_and_exit 367 atf_add_test_case expect_exit_but_pass 368 atf_add_test_case expect_signal_any_and_signal 369 atf_add_test_case expect_signal_no_and_signal 370 atf_add_test_case expect_signal_but_pass 371 atf_add_test_case expect_death_and_exit 372 atf_add_test_case expect_death_and_signal 373 atf_add_test_case expect_death_but_pass 374 atf_add_test_case expect_timeout_and_hang 375 atf_add_test_case expect_timeout_but_pass 376 377 # Add helper tests for t_meta_data. 378 atf_add_test_case metadata_no_descr 379 atf_add_test_case metadata_no_head 380 381 # Add helper tests for t_srcdir. 382 atf_add_test_case srcdir_exists 383 384 # Add helper tests for t_result. 385 atf_add_test_case result_pass 386 atf_add_test_case result_fail 387 atf_add_test_case result_skip 388} 389 390# vim: syntax=sh:expandtab:shiftwidth=4:softtabstop=4 391