1240116Smarcel# Copyright (c) 2007 The NetBSD Foundation, Inc. 2240116Smarcel# All rights reserved. 3240116Smarcel# 4240116Smarcel# Redistribution and use in source and binary forms, with or without 5240116Smarcel# modification, are permitted provided that the following conditions 6240116Smarcel# are met: 7240116Smarcel# 1. Redistributions of source code must retain the above copyright 8240116Smarcel# notice, this list of conditions and the following disclaimer. 9240116Smarcel# 2. Redistributions in binary form must reproduce the above copyright 10240116Smarcel# notice, this list of conditions and the following disclaimer in the 11240116Smarcel# documentation and/or other materials provided with the distribution. 12240116Smarcel# 13240116Smarcel# THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND 14240116Smarcel# CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, 15240116Smarcel# INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 16240116Smarcel# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 17240116Smarcel# IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS BE LIABLE FOR ANY 18240116Smarcel# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 19240116Smarcel# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE 20240116Smarcel# GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 21240116Smarcel# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER 22240116Smarcel# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR 23240116Smarcel# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN 24240116Smarcel# IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 25240116Smarcel 26240116Smarcel# ------------------------------------------------------------------------- 27240116Smarcel# Helper tests for "t_cleanup". 28240116Smarcel# ------------------------------------------------------------------------- 29240116Smarcel 30240116Smarcelatf_test_case cleanup_pass cleanup 31240116Smarcelcleanup_pass_head() 32240116Smarcel{ 33240116Smarcel atf_set "descr" "Helper test case for the t_cleanup test program" 34240116Smarcel} 35240116Smarcelcleanup_pass_body() 36240116Smarcel{ 37240116Smarcel touch $(atf_config_get tmpfile) 38240116Smarcel} 39240116Smarcelcleanup_pass_cleanup() 40240116Smarcel{ 41240116Smarcel if [ $(atf_config_get cleanup no) = yes ]; then 42240116Smarcel rm $(atf_config_get tmpfile) 43240116Smarcel fi 44240116Smarcel} 45240116Smarcel 46240116Smarcelatf_test_case cleanup_fail cleanup 47240116Smarcelcleanup_fail_head() 48240116Smarcel{ 49240116Smarcel atf_set "descr" "Helper test case for the t_cleanup test program" 50240116Smarcel} 51240116Smarcelcleanup_fail_body() 52240116Smarcel{ 53240116Smarcel touch $(atf_config_get tmpfile) 54240116Smarcel atf_fail "On purpose" 55240116Smarcel} 56240116Smarcelcleanup_fail_cleanup() 57240116Smarcel{ 58240116Smarcel if [ $(atf_config_get cleanup no) = yes ]; then 59240116Smarcel rm $(atf_config_get tmpfile) 60240116Smarcel fi 61240116Smarcel} 62240116Smarcel 63240116Smarcelatf_test_case cleanup_skip cleanup 64240116Smarcelcleanup_skip_head() 65240116Smarcel{ 66240116Smarcel atf_set "descr" "Helper test case for the t_cleanup test program" 67240116Smarcel} 68240116Smarcelcleanup_skip_body() 69240116Smarcel{ 70240116Smarcel touch $(atf_config_get tmpfile) 71240116Smarcel atf_skip "On purpose" 72240116Smarcel} 73240116Smarcelcleanup_skip_cleanup() 74240116Smarcel{ 75240116Smarcel if [ $(atf_config_get cleanup no) = yes ]; then 76240116Smarcel rm $(atf_config_get tmpfile) 77240116Smarcel fi 78240116Smarcel} 79240116Smarcel 80240116Smarcelatf_test_case cleanup_curdir cleanup 81240116Smarcelcleanup_curdir_head() 82240116Smarcel{ 83240116Smarcel atf_set "descr" "Helper test case for the t_cleanup test program" 84240116Smarcel} 85240116Smarcelcleanup_curdir_body() 86240116Smarcel{ 87240116Smarcel echo 1234 >oldvalue 88240116Smarcel} 89240116Smarcelcleanup_curdir_cleanup() 90240116Smarcel{ 91240116Smarcel test -f oldvalue && echo "Old value: $(cat oldvalue)" 92240116Smarcel} 93240116Smarcel 94240116Smarcelatf_test_case cleanup_sigterm cleanup 95240116Smarcelcleanup_sigterm_head() 96240116Smarcel{ 97240116Smarcel atf_set "descr" "Helper test case for the t_cleanup test program" 98240116Smarcel} 99240116Smarcelcleanup_sigterm_body() 100240116Smarcel{ 101240116Smarcel touch $(atf_config_get tmpfile) 102240116Smarcel kill $$ 103240116Smarcel touch $(atf_config_get tmpfile).no 104240116Smarcel} 105240116Smarcelcleanup_sigterm_cleanup() 106240116Smarcel{ 107240116Smarcel rm $(atf_config_get tmpfile) 108240116Smarcel} 109240116Smarcel 110240116Smarcel# ------------------------------------------------------------------------- 111240116Smarcel# Helper tests for "t_config". 112240116Smarcel# ------------------------------------------------------------------------- 113240116Smarcel 114240116Smarcelatf_test_case config_unset 115240116Smarcelconfig_unset_head() 116240116Smarcel{ 117240116Smarcel atf_set "descr" "Helper test case for the t_config test program" 118240116Smarcel} 119240116Smarcelconfig_unset_body() 120240116Smarcel{ 121240116Smarcel if atf_config_has 'test'; then 122240116Smarcel atf_fail "Test variable already defined" 123240116Smarcel fi 124240116Smarcel} 125240116Smarcel 126240116Smarcelatf_test_case config_empty 127240116Smarcelconfig_empty_head() 128240116Smarcel{ 129240116Smarcel atf_set "descr" "Helper test case for the t_config test program" 130240116Smarcel} 131240116Smarcelconfig_empty_body() 132240116Smarcel{ 133240116Smarcel atf_check_equal "$(atf_config_get 'test')" "" 134240116Smarcel} 135240116Smarcel 136240116Smarcelatf_test_case config_value 137240116Smarcelconfig_value_head() 138240116Smarcel{ 139240116Smarcel atf_set "descr" "Helper test case for the t_config test program" 140240116Smarcel} 141240116Smarcelconfig_value_body() 142240116Smarcel{ 143240116Smarcel atf_check_equal "$(atf_config_get 'test')" "foo" 144240116Smarcel} 145240116Smarcel 146240116Smarcelatf_test_case config_multi_value 147240116Smarcelconfig_multi_value_head() 148240116Smarcel{ 149240116Smarcel atf_set "descr" "Helper test case for the t_config test program" 150240116Smarcel} 151240116Smarcelconfig_multi_value_body() 152240116Smarcel{ 153240116Smarcel atf_check_equal "$(atf_config_get 'test')" "foo bar" 154240116Smarcel} 155240116Smarcel 156240116Smarcel# ------------------------------------------------------------------------- 157240116Smarcel# Helper tests for "t_expect". 158240116Smarcel# ------------------------------------------------------------------------- 159240116Smarcel 160240116Smarcelatf_test_case expect_pass_and_pass 161240116Smarcelexpect_pass_and_pass_body() 162240116Smarcel{ 163240116Smarcel atf_expect_pass 164240116Smarcel} 165240116Smarcel 166240116Smarcelatf_test_case expect_pass_but_fail_requirement 167240116Smarcelexpect_pass_but_fail_requirement_body() 168240116Smarcel{ 169240116Smarcel atf_expect_pass 170240116Smarcel atf_fail "Some reason" 171240116Smarcel} 172240116Smarcel 173240116Smarcelatf_test_case expect_pass_but_fail_check 174240116Smarcelexpect_pass_but_fail_check_body() 175240116Smarcel{ 176240116Smarcel atf_fail "Non-fatal failures not implemented" 177240116Smarcel} 178240116Smarcel 179240116Smarcelatf_test_case expect_fail_and_fail_requirement 180240116Smarcelexpect_fail_and_fail_requirement_body() 181240116Smarcel{ 182240116Smarcel atf_expect_fail "Fail reason" 183240116Smarcel atf_fail "The failure" 184240116Smarcel atf_expect_pass 185240116Smarcel} 186240116Smarcel 187240116Smarcelatf_test_case expect_fail_and_fail_check 188240116Smarcelexpect_fail_and_fail_check_body() 189240116Smarcel{ 190240116Smarcel atf_fail "Non-fatal failures not implemented" 191240116Smarcel} 192240116Smarcel 193240116Smarcelatf_test_case expect_fail_but_pass 194240116Smarcelexpect_fail_but_pass_body() 195240116Smarcel{ 196240116Smarcel atf_expect_fail "Fail first" 197240116Smarcel atf_expect_pass 198240116Smarcel} 199240116Smarcel 200240116Smarcelatf_test_case expect_exit_any_and_exit 201240116Smarcelexpect_exit_any_and_exit_body() 202240116Smarcel{ 203240116Smarcel atf_expect_exit -1 "Call will exit" 204240116Smarcel exit 0 205240116Smarcel} 206240116Smarcel 207240116Smarcelatf_test_case expect_exit_code_and_exit 208240116Smarcelexpect_exit_code_and_exit_body() 209240116Smarcel{ 210240116Smarcel atf_expect_exit 123 "Call will exit" 211240116Smarcel exit 123 212240116Smarcel} 213240116Smarcel 214240116Smarcelatf_test_case expect_exit_but_pass 215240116Smarcelexpect_exit_but_pass_body() 216240116Smarcel{ 217240116Smarcel atf_expect_exit -1 "Call won't exit" 218240116Smarcel} 219240116Smarcel 220240116Smarcelatf_test_case expect_signal_any_and_signal 221240116Smarcelexpect_signal_any_and_signal_body() 222240116Smarcel{ 223240116Smarcel atf_expect_signal -1 "Call will signal" 224240116Smarcel kill -9 $$ 225240116Smarcel} 226240116Smarcel 227240116Smarcelatf_test_case expect_signal_no_and_signal 228240116Smarcelexpect_signal_no_and_signal_body() 229240116Smarcel{ 230240116Smarcel atf_expect_signal 1 "Call will signal" 231240116Smarcel kill -1 $$ 232240116Smarcel} 233240116Smarcel 234240116Smarcelatf_test_case expect_signal_but_pass 235240116Smarcelexpect_signal_but_pass_body() 236240116Smarcel{ 237240116Smarcel atf_expect_signal -1 "Call won't signal" 238240116Smarcel} 239240116Smarcel 240240116Smarcelatf_test_case expect_death_and_exit 241240116Smarcelexpect_death_and_exit_body() 242240116Smarcel{ 243240116Smarcel atf_expect_death "Exit case" 244240116Smarcel exit 123 245240116Smarcel} 246240116Smarcel 247240116Smarcelatf_test_case expect_death_and_signal 248240116Smarcelexpect_death_and_signal_body() 249240116Smarcel{ 250240116Smarcel atf_expect_death "Signal case" 251240116Smarcel kill -9 $$ 252240116Smarcel} 253240116Smarcel 254240116Smarcelatf_test_case expect_death_but_pass 255240116Smarcelexpect_death_but_pass_body() 256240116Smarcel{ 257240116Smarcel atf_expect_death "Call won't die" 258240116Smarcel} 259240116Smarcel 260240116Smarcelatf_test_case expect_timeout_and_hang 261240116Smarcelexpect_timeout_and_hang_head() 262240116Smarcel{ 263240116Smarcel atf_set "timeout" "1" 264240116Smarcel} 265240116Smarcelexpect_timeout_and_hang_body() 266240116Smarcel{ 267240116Smarcel atf_expect_timeout "Will overrun" 268240116Smarcel sleep 5 269240116Smarcel} 270240116Smarcel 271240116Smarcelatf_test_case expect_timeout_but_pass 272240116Smarcelexpect_timeout_but_pass_head() 273240116Smarcel{ 274240116Smarcel atf_set "timeout" "1" 275240116Smarcel} 276240116Smarcelexpect_timeout_but_pass_body() 277240116Smarcel{ 278240116Smarcel atf_expect_timeout "Will just exit" 279240116Smarcel} 280240116Smarcel 281240116Smarcel# ------------------------------------------------------------------------- 282240116Smarcel# Helper tests for "t_meta_data". 283240116Smarcel# ------------------------------------------------------------------------- 284240116Smarcel 285240116Smarcelatf_test_case metadata_no_descr 286240116Smarcelmetadata_no_descr_head() 287240116Smarcel{ 288240116Smarcel : 289240116Smarcel} 290240116Smarcelmetadata_no_descr_body() 291240116Smarcel{ 292240116Smarcel : 293240116Smarcel} 294240116Smarcel 295240116Smarcelatf_test_case metadata_no_head 296240116Smarcelmetadata_no_head_body() 297240116Smarcel{ 298240116Smarcel : 299240116Smarcel} 300240116Smarcel 301240116Smarcel# ------------------------------------------------------------------------- 302240116Smarcel# Helper tests for "t_srcdir". 303240116Smarcel# ------------------------------------------------------------------------- 304240116Smarcel 305240116Smarcelatf_test_case srcdir_exists 306240116Smarcelsrcdir_exists_head() 307240116Smarcel{ 308240116Smarcel atf_set "descr" "Helper test case for the t_srcdir test program" 309240116Smarcel} 310240116Smarcelsrcdir_exists_body() 311240116Smarcel{ 312240116Smarcel [ -f "$(atf_get_srcdir)/datafile" ] || atf_fail "Cannot find datafile" 313240116Smarcel} 314240116Smarcel 315240116Smarcel# ------------------------------------------------------------------------- 316240116Smarcel# Helper tests for "t_result". 317240116Smarcel# ------------------------------------------------------------------------- 318240116Smarcel 319240116Smarcelatf_test_case result_pass 320240116Smarcelresult_pass_body() 321240116Smarcel{ 322240116Smarcel echo "msg" 323240116Smarcel} 324240116Smarcel 325240116Smarcelatf_test_case result_fail 326240116Smarcelresult_fail_body() 327240116Smarcel{ 328240116Smarcel echo "msg" 329240116Smarcel atf_fail "Failure reason" 330240116Smarcel} 331240116Smarcel 332240116Smarcelatf_test_case result_skip 333240116Smarcelresult_skip_body() 334240116Smarcel{ 335240116Smarcel echo "msg" 336240116Smarcel atf_skip "Skipped reason" 337240116Smarcel} 338240116Smarcel 339240116Smarcel# ------------------------------------------------------------------------- 340240116Smarcel# Main. 341240116Smarcel# ------------------------------------------------------------------------- 342240116Smarcel 343240116Smarcelatf_init_test_cases() 344240116Smarcel{ 345240116Smarcel # Add helper tests for t_cleanup. 346240116Smarcel atf_add_test_case cleanup_pass 347240116Smarcel atf_add_test_case cleanup_fail 348240116Smarcel atf_add_test_case cleanup_skip 349240116Smarcel atf_add_test_case cleanup_curdir 350240116Smarcel atf_add_test_case cleanup_sigterm 351240116Smarcel 352240116Smarcel # Add helper tests for t_config. 353240116Smarcel atf_add_test_case config_unset 354240116Smarcel atf_add_test_case config_empty 355240116Smarcel atf_add_test_case config_value 356240116Smarcel atf_add_test_case config_multi_value 357240116Smarcel 358240116Smarcel # Add helper tests for t_expect. 359240116Smarcel atf_add_test_case expect_pass_and_pass 360240116Smarcel atf_add_test_case expect_pass_but_fail_requirement 361240116Smarcel atf_add_test_case expect_pass_but_fail_check 362240116Smarcel atf_add_test_case expect_fail_and_fail_requirement 363240116Smarcel atf_add_test_case expect_fail_and_fail_check 364240116Smarcel atf_add_test_case expect_fail_but_pass 365240116Smarcel atf_add_test_case expect_exit_any_and_exit 366240116Smarcel atf_add_test_case expect_exit_code_and_exit 367240116Smarcel atf_add_test_case expect_exit_but_pass 368240116Smarcel atf_add_test_case expect_signal_any_and_signal 369240116Smarcel atf_add_test_case expect_signal_no_and_signal 370240116Smarcel atf_add_test_case expect_signal_but_pass 371240116Smarcel atf_add_test_case expect_death_and_exit 372240116Smarcel atf_add_test_case expect_death_and_signal 373240116Smarcel atf_add_test_case expect_death_but_pass 374240116Smarcel atf_add_test_case expect_timeout_and_hang 375240116Smarcel atf_add_test_case expect_timeout_but_pass 376240116Smarcel 377240116Smarcel # Add helper tests for t_meta_data. 378240116Smarcel atf_add_test_case metadata_no_descr 379240116Smarcel atf_add_test_case metadata_no_head 380240116Smarcel 381240116Smarcel # Add helper tests for t_srcdir. 382240116Smarcel atf_add_test_case srcdir_exists 383240116Smarcel 384240116Smarcel # Add helper tests for t_result. 385240116Smarcel atf_add_test_case result_pass 386240116Smarcel atf_add_test_case result_fail 387240116Smarcel atf_add_test_case result_skip 388240116Smarcel} 389240116Smarcel 390240116Smarcel# vim: syntax=sh:expandtab:shiftwidth=4:softtabstop=4 391