1edebbb8eSjmmv# 2edebbb8eSjmmv# Automated Testing Framework (atf) 3edebbb8eSjmmv# 4a551a20fSjmmv# Copyright (c) 2007 The NetBSD Foundation, Inc. 5edebbb8eSjmmv# All rights reserved. 6edebbb8eSjmmv# 7edebbb8eSjmmv# Redistribution and use in source and binary forms, with or without 8edebbb8eSjmmv# modification, are permitted provided that the following conditions 9edebbb8eSjmmv# are met: 10edebbb8eSjmmv# 1. Redistributions of source code must retain the above copyright 11edebbb8eSjmmv# notice, this list of conditions and the following disclaimer. 12edebbb8eSjmmv# 2. Redistributions in binary form must reproduce the above copyright 13edebbb8eSjmmv# notice, this list of conditions and the following disclaimer in the 14edebbb8eSjmmv# documentation and/or other materials provided with the distribution. 15edebbb8eSjmmv# 16edebbb8eSjmmv# THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND 17edebbb8eSjmmv# CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, 18edebbb8eSjmmv# INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 19edebbb8eSjmmv# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 20edebbb8eSjmmv# IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS BE LIABLE FOR ANY 21edebbb8eSjmmv# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 22edebbb8eSjmmv# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE 23edebbb8eSjmmv# GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 24edebbb8eSjmmv# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER 25edebbb8eSjmmv# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR 26edebbb8eSjmmv# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN 27edebbb8eSjmmv# IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 28edebbb8eSjmmv# 29edebbb8eSjmmv 30edebbb8eSjmmv# ------------------------------------------------------------------------- 31edebbb8eSjmmv# Helper tests for "t_atf_check". 32edebbb8eSjmmv# ------------------------------------------------------------------------- 33edebbb8eSjmmv 34edebbb8eSjmmvatf_test_case atf_check_info_ok 35edebbb8eSjmmvatf_check_info_ok_head() 36edebbb8eSjmmv{ 37edebbb8eSjmmv atf_set "descr" "Helper test case for the t_atf_check test program" 38edebbb8eSjmmv} 39edebbb8eSjmmvatf_check_info_ok_body() 40edebbb8eSjmmv{ 41edebbb8eSjmmv atf_check -s eq:0 -o empty -e empty true 42edebbb8eSjmmv} 43edebbb8eSjmmv 44edebbb8eSjmmvatf_test_case atf_check_info_fail 45edebbb8eSjmmvatf_check_info_fail_head() 46edebbb8eSjmmv{ 47edebbb8eSjmmv atf_set "descr" "Helper test case for the t_atf_check test program" 48edebbb8eSjmmv} 49edebbb8eSjmmvatf_check_info_fail_body() 50edebbb8eSjmmv{ 51edebbb8eSjmmv # In Solaris, /usr/bin/false returns 255 rather than 1. Use the 52edebbb8eSjmmv # built-in version for the check. 53edebbb8eSjmmv atf_check -s eq:1 -o empty -e empty sh -c "false" 54edebbb8eSjmmv} 55edebbb8eSjmmv 56edebbb8eSjmmvatf_test_case atf_check_expout_mismatch 57edebbb8eSjmmvatf_check_expout_mismatch_head() 58edebbb8eSjmmv{ 59edebbb8eSjmmv atf_set "descr" "Helper test case for the t_atf_check test program" 60edebbb8eSjmmv} 61edebbb8eSjmmvatf_check_expout_mismatch_body() 62edebbb8eSjmmv{ 63edebbb8eSjmmv cat >expout <<SECONDEOF 64edebbb8eSjmmvfoo 65edebbb8eSjmmvSECONDEOF 66edebbb8eSjmmv atf_check -s eq:0 -o file:expout -e empty echo bar 67edebbb8eSjmmv} 68edebbb8eSjmmv 69edebbb8eSjmmvatf_test_case atf_check_experr_mismatch 70edebbb8eSjmmvatf_check_experr_mismatch_head() 71edebbb8eSjmmv{ 72edebbb8eSjmmv atf_set "descr" "Helper test case for the t_atf_check test program" 73edebbb8eSjmmv} 74edebbb8eSjmmvatf_check_experr_mismatch_body() 75edebbb8eSjmmv{ 76edebbb8eSjmmv cat >experr <<SECONDEOF 77edebbb8eSjmmvfoo 78edebbb8eSjmmvSECONDEOF 79edebbb8eSjmmv atf_check -s eq:0 -o empty -e file:experr -x 'echo bar 1>&2' 80edebbb8eSjmmv} 81edebbb8eSjmmv 82edebbb8eSjmmvatf_test_case atf_check_null_stdout 83edebbb8eSjmmvatf_check_null_stdout_head() 84edebbb8eSjmmv{ 85edebbb8eSjmmv atf_set "descr" "Helper test case for the t_atf_check test program" 86edebbb8eSjmmv} 87edebbb8eSjmmvatf_check_null_stdout_body() 88edebbb8eSjmmv{ 89edebbb8eSjmmv atf_check -s eq:0 -o empty -e empty echo "These are the contents" 90edebbb8eSjmmv} 91edebbb8eSjmmv 92edebbb8eSjmmvatf_test_case atf_check_null_stderr 93edebbb8eSjmmvatf_check_null_stderr_head() 94edebbb8eSjmmv{ 95edebbb8eSjmmv atf_set "descr" "Helper test case for the t_atf_check test program" 96edebbb8eSjmmv} 97edebbb8eSjmmvatf_check_null_stderr_body() 98edebbb8eSjmmv{ 99edebbb8eSjmmv atf_check -s eq:0 -o empty -e empty -x 'echo "These are the contents" 1>&2' 100edebbb8eSjmmv} 101edebbb8eSjmmv 102edebbb8eSjmmvatf_test_case atf_check_equal_ok 103edebbb8eSjmmvatf_check_equal_ok_head() 104edebbb8eSjmmv{ 105edebbb8eSjmmv atf_set "descr" "Helper test case for the t_atf_check test program" 106edebbb8eSjmmv} 107edebbb8eSjmmvatf_check_equal_ok_body() 108edebbb8eSjmmv{ 109edebbb8eSjmmv atf_check_equal a a 110edebbb8eSjmmv} 111edebbb8eSjmmv 112edebbb8eSjmmvatf_test_case atf_check_equal_fail 113edebbb8eSjmmvatf_check_equal_fail_head() 114edebbb8eSjmmv{ 115edebbb8eSjmmv atf_set "descr" "Helper test case for the t_atf_check test program" 116edebbb8eSjmmv} 117edebbb8eSjmmvatf_check_equal_fail_body() 118edebbb8eSjmmv{ 119edebbb8eSjmmv atf_check_equal a b 120edebbb8eSjmmv} 121edebbb8eSjmmv 122edebbb8eSjmmvatf_test_case atf_check_equal_eval_ok 123edebbb8eSjmmvatf_check_equal_eval_ok_head() 124edebbb8eSjmmv{ 125edebbb8eSjmmv atf_set "descr" "Helper test case for the t_atf_check test program" 126edebbb8eSjmmv} 127edebbb8eSjmmvatf_check_equal_eval_ok_body() 128edebbb8eSjmmv{ 129edebbb8eSjmmv x=a 130edebbb8eSjmmv y=a 131edebbb8eSjmmv atf_check_equal '${x}' '${y}' 132edebbb8eSjmmv} 133edebbb8eSjmmv 134edebbb8eSjmmvatf_test_case atf_check_equal_eval_fail 135edebbb8eSjmmvatf_check_equal_eval_fail_head() 136edebbb8eSjmmv{ 137edebbb8eSjmmv atf_set "descr" "Helper test case for the t_atf_check test program" 138edebbb8eSjmmv} 139edebbb8eSjmmvatf_check_equal_eval_fail_body() 140edebbb8eSjmmv{ 141edebbb8eSjmmv x=a 142edebbb8eSjmmv y=b 143edebbb8eSjmmv atf_check_equal '${x}' '${y}' 144edebbb8eSjmmv} 145edebbb8eSjmmv 146*d780102eSjmmvatf_test_case atf_check_timeout 147*d780102eSjmmvatf_check_timeout_head() 148*d780102eSjmmv{ 149*d780102eSjmmv atf_set "descr" "Helper test case for the t_atf_check test program" 150*d780102eSjmmv atf_set "timeout" 1 151*d780102eSjmmv} 152*d780102eSjmmvatf_check_timeout_body() 153*d780102eSjmmv{ 154*d780102eSjmmv atf_check true 155*d780102eSjmmv atf_check sleep 42 156*d780102eSjmmv} 157*d780102eSjmmv 158edebbb8eSjmmv# ------------------------------------------------------------------------- 159edebbb8eSjmmv# Helper tests for "t_config". 160edebbb8eSjmmv# ------------------------------------------------------------------------- 161edebbb8eSjmmv 162edebbb8eSjmmvatf_test_case config_get 163edebbb8eSjmmvconfig_get_head() 164edebbb8eSjmmv{ 165edebbb8eSjmmv atf_set "descr" "Helper test case for the t_config test program" 166edebbb8eSjmmv} 167edebbb8eSjmmvconfig_get_body() 168edebbb8eSjmmv{ 169edebbb8eSjmmv if atf_config_has ${TEST_VARIABLE}; then 170edebbb8eSjmmv echo "${TEST_VARIABLE} = $(atf_config_get ${TEST_VARIABLE})" 171edebbb8eSjmmv fi 172edebbb8eSjmmv} 173edebbb8eSjmmv 174edebbb8eSjmmvatf_test_case config_has 175edebbb8eSjmmvconfig_has_head() 176edebbb8eSjmmv{ 177edebbb8eSjmmv atf_set "descr" "Helper test case for the t_config test program" 178edebbb8eSjmmv} 179edebbb8eSjmmvconfig_has_body() 180edebbb8eSjmmv{ 181edebbb8eSjmmv if atf_config_has ${TEST_VARIABLE}; then 182edebbb8eSjmmv echo "${TEST_VARIABLE} found" 183edebbb8eSjmmv else 184edebbb8eSjmmv echo "${TEST_VARIABLE} not found" 185edebbb8eSjmmv fi 186edebbb8eSjmmv} 187edebbb8eSjmmv 188edebbb8eSjmmv# ------------------------------------------------------------------------- 189edebbb8eSjmmv# Helper tests for "t_normalize". 190edebbb8eSjmmv# ------------------------------------------------------------------------- 191edebbb8eSjmmv 192edebbb8eSjmmvatf_test_case normalize 193edebbb8eSjmmvnormalize_head() 194edebbb8eSjmmv{ 195edebbb8eSjmmv atf_set "descr" "Helper test case for the t_normalize test program" 196edebbb8eSjmmv atf_set "a.b" "test value 1" 197edebbb8eSjmmv atf_set "c-d" "test value 2" 198edebbb8eSjmmv} 199edebbb8eSjmmvnormalize_body() 200edebbb8eSjmmv{ 201edebbb8eSjmmv echo "a.b: $(atf_get a.b)" 202edebbb8eSjmmv echo "c-d: $(atf_get c-d)" 203edebbb8eSjmmv} 204edebbb8eSjmmv 205edebbb8eSjmmv# ------------------------------------------------------------------------- 206edebbb8eSjmmv# Helper tests for "t_tc". 207edebbb8eSjmmv# ------------------------------------------------------------------------- 208edebbb8eSjmmv 209edebbb8eSjmmvatf_test_case tc_pass_true 210edebbb8eSjmmvtc_pass_true_head() 211edebbb8eSjmmv{ 212edebbb8eSjmmv atf_set "descr" "Helper test case for the t_tc test program" 213edebbb8eSjmmv} 214edebbb8eSjmmvtc_pass_true_body() 215edebbb8eSjmmv{ 216edebbb8eSjmmv true 217edebbb8eSjmmv} 218edebbb8eSjmmv 219edebbb8eSjmmvatf_test_case tc_pass_false 220edebbb8eSjmmvtc_pass_false_head() 221edebbb8eSjmmv{ 222edebbb8eSjmmv atf_set "descr" "Helper test case for the t_tc test program" 223edebbb8eSjmmv} 224edebbb8eSjmmvtc_pass_false_body() 225edebbb8eSjmmv{ 226edebbb8eSjmmv false 227edebbb8eSjmmv} 228edebbb8eSjmmv 229895f502bSjmmvatf_test_case tc_pass_return_error 230895f502bSjmmvtc_pass_return_error_head() 231895f502bSjmmv{ 232895f502bSjmmv atf_set "descr" "Helper test case for the t_tc test program" 233895f502bSjmmv} 234895f502bSjmmvtc_pass_return_error_body() 235895f502bSjmmv{ 236895f502bSjmmv return 1 237895f502bSjmmv} 238895f502bSjmmv 239edebbb8eSjmmvatf_test_case tc_fail 240edebbb8eSjmmvtc_fail_head() 241edebbb8eSjmmv{ 242edebbb8eSjmmv atf_set "descr" "Helper test case for the t_tc test program" 243edebbb8eSjmmv} 244edebbb8eSjmmvtc_fail_body() 245edebbb8eSjmmv{ 246edebbb8eSjmmv echo "An error" 1>&2 247edebbb8eSjmmv exit 1 248edebbb8eSjmmv} 249edebbb8eSjmmv 2505055cfd6Sjmmvatf_test_case tc_missing_body 2515055cfd6Sjmmvtc_missing_body_head() 2525055cfd6Sjmmv{ 2535055cfd6Sjmmv atf_set "descr" "Helper test case for the t_tc test program" 2545055cfd6Sjmmv} 2555055cfd6Sjmmv 256edebbb8eSjmmv# ------------------------------------------------------------------------- 257edebbb8eSjmmv# Helper tests for "t_tp". 258edebbb8eSjmmv# ------------------------------------------------------------------------- 259edebbb8eSjmmv 260edebbb8eSjmmvatf_test_case tp_srcdir 261edebbb8eSjmmvtp_srcdir_head() 262edebbb8eSjmmv{ 263edebbb8eSjmmv atf_set "descr" "Helper test case for the t_tp test program" 264edebbb8eSjmmv} 265edebbb8eSjmmvtp_srcdir_body() 266edebbb8eSjmmv{ 267edebbb8eSjmmv echo "Calling helper" 268edebbb8eSjmmv helper_subr || atf_fail "Could not call helper subroutine" 269edebbb8eSjmmv} 270edebbb8eSjmmv 271edebbb8eSjmmv# ------------------------------------------------------------------------- 272edebbb8eSjmmv# Main. 273edebbb8eSjmmv# ------------------------------------------------------------------------- 274edebbb8eSjmmv 275edebbb8eSjmmvatf_init_test_cases() 276edebbb8eSjmmv{ 277edebbb8eSjmmv # Add helper tests for t_atf_check. 278edebbb8eSjmmv atf_add_test_case atf_check_info_ok 279edebbb8eSjmmv atf_add_test_case atf_check_info_fail 280edebbb8eSjmmv atf_add_test_case atf_check_expout_mismatch 281edebbb8eSjmmv atf_add_test_case atf_check_experr_mismatch 282edebbb8eSjmmv atf_add_test_case atf_check_null_stdout 283edebbb8eSjmmv atf_add_test_case atf_check_null_stderr 284edebbb8eSjmmv atf_add_test_case atf_check_equal_ok 285edebbb8eSjmmv atf_add_test_case atf_check_equal_fail 286edebbb8eSjmmv atf_add_test_case atf_check_equal_eval_ok 287edebbb8eSjmmv atf_add_test_case atf_check_equal_eval_fail 288*d780102eSjmmv atf_add_test_case atf_check_timeout 289edebbb8eSjmmv 290edebbb8eSjmmv # Add helper tests for t_config. 291edebbb8eSjmmv atf_add_test_case config_get 292edebbb8eSjmmv atf_add_test_case config_has 293edebbb8eSjmmv 294edebbb8eSjmmv # Add helper tests for t_normalize. 295edebbb8eSjmmv atf_add_test_case normalize 296edebbb8eSjmmv 297edebbb8eSjmmv # Add helper tests for t_tc. 298edebbb8eSjmmv atf_add_test_case tc_pass_true 299edebbb8eSjmmv atf_add_test_case tc_pass_false 300895f502bSjmmv atf_add_test_case tc_pass_return_error 301edebbb8eSjmmv atf_add_test_case tc_fail 3025055cfd6Sjmmv atf_add_test_case tc_missing_body 303edebbb8eSjmmv 304edebbb8eSjmmv # Add helper tests for t_tp. 305edebbb8eSjmmv [ -f $(atf_get_srcdir)/subrs ] && . $(atf_get_srcdir)/subrs 306edebbb8eSjmmv atf_add_test_case tp_srcdir 307edebbb8eSjmmv} 308edebbb8eSjmmv 309edebbb8eSjmmv# vim: syntax=sh:expandtab:shiftwidth=4:softtabstop=4 310