1c243e490SMarcel Moolenaar# Copyright (c) 2007 The NetBSD Foundation, Inc. 2c243e490SMarcel Moolenaar# All rights reserved. 3c243e490SMarcel Moolenaar# 4c243e490SMarcel Moolenaar# Redistribution and use in source and binary forms, with or without 5c243e490SMarcel Moolenaar# modification, are permitted provided that the following conditions 6c243e490SMarcel Moolenaar# are met: 7c243e490SMarcel Moolenaar# 1. Redistributions of source code must retain the above copyright 8c243e490SMarcel Moolenaar# notice, this list of conditions and the following disclaimer. 9c243e490SMarcel Moolenaar# 2. Redistributions in binary form must reproduce the above copyright 10c243e490SMarcel Moolenaar# notice, this list of conditions and the following disclaimer in the 11c243e490SMarcel Moolenaar# documentation and/or other materials provided with the distribution. 12c243e490SMarcel Moolenaar# 13c243e490SMarcel Moolenaar# THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND 14c243e490SMarcel Moolenaar# CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, 15c243e490SMarcel Moolenaar# INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 16c243e490SMarcel Moolenaar# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 17c243e490SMarcel Moolenaar# IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS BE LIABLE FOR ANY 18c243e490SMarcel Moolenaar# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 19c243e490SMarcel Moolenaar# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE 20c243e490SMarcel Moolenaar# GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 21c243e490SMarcel Moolenaar# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER 22c243e490SMarcel Moolenaar# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR 23c243e490SMarcel Moolenaar# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN 24c243e490SMarcel Moolenaar# IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 25c243e490SMarcel Moolenaar 26c243e490SMarcel Moolenaar# ------------------------------------------------------------------------- 27c243e490SMarcel Moolenaar# Helper tests for "t_atf_check". 28c243e490SMarcel Moolenaar# ------------------------------------------------------------------------- 29c243e490SMarcel Moolenaar 30c243e490SMarcel Moolenaaratf_test_case atf_check_info_ok 31c243e490SMarcel Moolenaaratf_check_info_ok_head() 32c243e490SMarcel Moolenaar{ 33c243e490SMarcel Moolenaar atf_set "descr" "Helper test case for the t_atf_check test program" 34c243e490SMarcel Moolenaar} 35c243e490SMarcel Moolenaaratf_check_info_ok_body() 36c243e490SMarcel Moolenaar{ 37c243e490SMarcel Moolenaar atf_check -s eq:0 -o empty -e empty true 38c243e490SMarcel Moolenaar} 39c243e490SMarcel Moolenaar 40c243e490SMarcel Moolenaaratf_test_case atf_check_info_fail 41c243e490SMarcel Moolenaaratf_check_info_fail_head() 42c243e490SMarcel Moolenaar{ 43c243e490SMarcel Moolenaar atf_set "descr" "Helper test case for the t_atf_check test program" 44c243e490SMarcel Moolenaar} 45c243e490SMarcel Moolenaaratf_check_info_fail_body() 46c243e490SMarcel Moolenaar{ 47c243e490SMarcel Moolenaar # In Solaris, /usr/bin/false returns 255 rather than 1. Use the 48c243e490SMarcel Moolenaar # built-in version for the check. 49c243e490SMarcel Moolenaar atf_check -s eq:1 -o empty -e empty sh -c "false" 50c243e490SMarcel Moolenaar} 51c243e490SMarcel Moolenaar 52c243e490SMarcel Moolenaaratf_test_case atf_check_expout_mismatch 53c243e490SMarcel Moolenaaratf_check_expout_mismatch_head() 54c243e490SMarcel Moolenaar{ 55c243e490SMarcel Moolenaar atf_set "descr" "Helper test case for the t_atf_check test program" 56c243e490SMarcel Moolenaar} 57c243e490SMarcel Moolenaaratf_check_expout_mismatch_body() 58c243e490SMarcel Moolenaar{ 59c243e490SMarcel Moolenaar cat >expout <<SECONDEOF 60c243e490SMarcel Moolenaarfoo 61c243e490SMarcel MoolenaarSECONDEOF 62c243e490SMarcel Moolenaar atf_check -s eq:0 -o file:expout -e empty echo bar 63c243e490SMarcel Moolenaar} 64c243e490SMarcel Moolenaar 65c243e490SMarcel Moolenaaratf_test_case atf_check_experr_mismatch 66c243e490SMarcel Moolenaaratf_check_experr_mismatch_head() 67c243e490SMarcel Moolenaar{ 68c243e490SMarcel Moolenaar atf_set "descr" "Helper test case for the t_atf_check test program" 69c243e490SMarcel Moolenaar} 70c243e490SMarcel Moolenaaratf_check_experr_mismatch_body() 71c243e490SMarcel Moolenaar{ 72c243e490SMarcel Moolenaar cat >experr <<SECONDEOF 73c243e490SMarcel Moolenaarfoo 74c243e490SMarcel MoolenaarSECONDEOF 75c243e490SMarcel Moolenaar atf_check -s eq:0 -o empty -e file:experr -x 'echo bar 1>&2' 76c243e490SMarcel Moolenaar} 77c243e490SMarcel Moolenaar 78c243e490SMarcel Moolenaaratf_test_case atf_check_null_stdout 79c243e490SMarcel Moolenaaratf_check_null_stdout_head() 80c243e490SMarcel Moolenaar{ 81c243e490SMarcel Moolenaar atf_set "descr" "Helper test case for the t_atf_check test program" 82c243e490SMarcel Moolenaar} 83c243e490SMarcel Moolenaaratf_check_null_stdout_body() 84c243e490SMarcel Moolenaar{ 85c243e490SMarcel Moolenaar atf_check -s eq:0 -o empty -e empty echo "These are the contents" 86c243e490SMarcel Moolenaar} 87c243e490SMarcel Moolenaar 88c243e490SMarcel Moolenaaratf_test_case atf_check_null_stderr 89c243e490SMarcel Moolenaaratf_check_null_stderr_head() 90c243e490SMarcel Moolenaar{ 91c243e490SMarcel Moolenaar atf_set "descr" "Helper test case for the t_atf_check test program" 92c243e490SMarcel Moolenaar} 93c243e490SMarcel Moolenaaratf_check_null_stderr_body() 94c243e490SMarcel Moolenaar{ 95c243e490SMarcel Moolenaar atf_check -s eq:0 -o empty -e empty -x 'echo "These are the contents" 1>&2' 96c243e490SMarcel Moolenaar} 97c243e490SMarcel Moolenaar 98c243e490SMarcel Moolenaaratf_test_case atf_check_equal_ok 99c243e490SMarcel Moolenaaratf_check_equal_ok_head() 100c243e490SMarcel Moolenaar{ 101c243e490SMarcel Moolenaar atf_set "descr" "Helper test case for the t_atf_check test program" 102c243e490SMarcel Moolenaar} 103c243e490SMarcel Moolenaaratf_check_equal_ok_body() 104c243e490SMarcel Moolenaar{ 105c243e490SMarcel Moolenaar atf_check_equal a a 106c243e490SMarcel Moolenaar} 107c243e490SMarcel Moolenaar 108c243e490SMarcel Moolenaaratf_test_case atf_check_equal_fail 109c243e490SMarcel Moolenaaratf_check_equal_fail_head() 110c243e490SMarcel Moolenaar{ 111c243e490SMarcel Moolenaar atf_set "descr" "Helper test case for the t_atf_check test program" 112c243e490SMarcel Moolenaar} 113c243e490SMarcel Moolenaaratf_check_equal_fail_body() 114c243e490SMarcel Moolenaar{ 115c243e490SMarcel Moolenaar atf_check_equal a b 116c243e490SMarcel Moolenaar} 117c243e490SMarcel Moolenaar 118c243e490SMarcel Moolenaaratf_test_case atf_check_equal_eval_ok 119c243e490SMarcel Moolenaaratf_check_equal_eval_ok_head() 120c243e490SMarcel Moolenaar{ 121c243e490SMarcel Moolenaar atf_set "descr" "Helper test case for the t_atf_check test program" 122c243e490SMarcel Moolenaar} 123c243e490SMarcel Moolenaaratf_check_equal_eval_ok_body() 124c243e490SMarcel Moolenaar{ 125c243e490SMarcel Moolenaar x=a 126c243e490SMarcel Moolenaar y=a 127c243e490SMarcel Moolenaar atf_check_equal '${x}' '${y}' 128c243e490SMarcel Moolenaar} 129c243e490SMarcel Moolenaar 130c243e490SMarcel Moolenaaratf_test_case atf_check_equal_eval_fail 131c243e490SMarcel Moolenaaratf_check_equal_eval_fail_head() 132c243e490SMarcel Moolenaar{ 133c243e490SMarcel Moolenaar atf_set "descr" "Helper test case for the t_atf_check test program" 134c243e490SMarcel Moolenaar} 135c243e490SMarcel Moolenaaratf_check_equal_eval_fail_body() 136c243e490SMarcel Moolenaar{ 137c243e490SMarcel Moolenaar x=a 138c243e490SMarcel Moolenaar y=b 139c243e490SMarcel Moolenaar atf_check_equal '${x}' '${y}' 140c243e490SMarcel Moolenaar} 141c243e490SMarcel Moolenaar 142*c203bd70SAlex Richardsonatf_test_case atf_check_not_equal_ok 143*c203bd70SAlex Richardsonatf_check_not_equal_ok_head() 144*c203bd70SAlex Richardson{ 145*c203bd70SAlex Richardson atf_set "descr" "Helper test case for the t_atf_check test program" 146*c203bd70SAlex Richardson} 147*c203bd70SAlex Richardsonatf_check_not_equal_ok_body() 148*c203bd70SAlex Richardson{ 149*c203bd70SAlex Richardson atf_check_not_equal a b 150*c203bd70SAlex Richardson} 151*c203bd70SAlex Richardson 152*c203bd70SAlex Richardsonatf_test_case atf_check_not_equal_fail 153*c203bd70SAlex Richardsonatf_check_not_equal_fail_head() 154*c203bd70SAlex Richardson{ 155*c203bd70SAlex Richardson atf_set "descr" "Helper test case for the t_atf_check test program" 156*c203bd70SAlex Richardson} 157*c203bd70SAlex Richardsonatf_check_not_equal_fail_body() 158*c203bd70SAlex Richardson{ 159*c203bd70SAlex Richardson atf_check_not_equal a a 160*c203bd70SAlex Richardson} 161*c203bd70SAlex Richardson 162*c203bd70SAlex Richardsonatf_test_case atf_check_not_equal_eval_ok 163*c203bd70SAlex Richardsonatf_check_not_equal_eval_ok_head() 164*c203bd70SAlex Richardson{ 165*c203bd70SAlex Richardson atf_set "descr" "Helper test case for the t_atf_check test program" 166*c203bd70SAlex Richardson} 167*c203bd70SAlex Richardsonatf_check_not_equal_eval_ok_body() 168*c203bd70SAlex Richardson{ 169*c203bd70SAlex Richardson x=a 170*c203bd70SAlex Richardson y=b 171*c203bd70SAlex Richardson atf_check_not_equal '${x}' '${y}' 172*c203bd70SAlex Richardson} 173*c203bd70SAlex Richardson 174*c203bd70SAlex Richardsonatf_test_case atf_check_not_equal_eval_fail 175*c203bd70SAlex Richardsonatf_check_not_equal_eval_fail_head() 176*c203bd70SAlex Richardson{ 177*c203bd70SAlex Richardson atf_set "descr" "Helper test case for the t_atf_check test program" 178*c203bd70SAlex Richardson} 179*c203bd70SAlex Richardsonatf_check_not_equal_eval_fail_body() 180*c203bd70SAlex Richardson{ 181*c203bd70SAlex Richardson x=a 182*c203bd70SAlex Richardson y=a 183*c203bd70SAlex Richardson atf_check_not_equal '${x}' '${y}' 184*c203bd70SAlex Richardson} 185*c203bd70SAlex Richardson 186da3067c1SEnji Cooperatf_test_case atf_check_flush_stdout 187da3067c1SEnji Cooperatf_check_flush_stdout_head() 188a18eacbeSJulio Merino{ 189a18eacbeSJulio Merino atf_set "descr" "Helper test case for the t_atf_check test program" 190da3067c1SEnji Cooper atf_set "timeout" "30" 191a18eacbeSJulio Merino} 192da3067c1SEnji Cooperatf_check_flush_stdout_body() 193a18eacbeSJulio Merino{ 194a18eacbeSJulio Merino atf_check true 195da3067c1SEnji Cooper atf_check -s exit:1 false 196da3067c1SEnji Cooper touch "${CONTROL_FILE:-done}" 197da3067c1SEnji Cooper while :; do 198da3067c1SEnji Cooper sleep 1 199da3067c1SEnji Cooper done 200a18eacbeSJulio Merino} 201a18eacbeSJulio Merino 202c243e490SMarcel Moolenaar# ------------------------------------------------------------------------- 203c243e490SMarcel Moolenaar# Helper tests for "t_config". 204c243e490SMarcel Moolenaar# ------------------------------------------------------------------------- 205c243e490SMarcel Moolenaar 206c243e490SMarcel Moolenaaratf_test_case config_get 207c243e490SMarcel Moolenaarconfig_get_head() 208c243e490SMarcel Moolenaar{ 209c243e490SMarcel Moolenaar atf_set "descr" "Helper test case for the t_config test program" 210c243e490SMarcel Moolenaar} 211c243e490SMarcel Moolenaarconfig_get_body() 212c243e490SMarcel Moolenaar{ 213c243e490SMarcel Moolenaar if atf_config_has ${TEST_VARIABLE}; then 214c243e490SMarcel Moolenaar echo "${TEST_VARIABLE} = $(atf_config_get ${TEST_VARIABLE})" 215c243e490SMarcel Moolenaar fi 216c243e490SMarcel Moolenaar} 217c243e490SMarcel Moolenaar 218c243e490SMarcel Moolenaaratf_test_case config_has 219c243e490SMarcel Moolenaarconfig_has_head() 220c243e490SMarcel Moolenaar{ 221c243e490SMarcel Moolenaar atf_set "descr" "Helper test case for the t_config test program" 222c243e490SMarcel Moolenaar} 223c243e490SMarcel Moolenaarconfig_has_body() 224c243e490SMarcel Moolenaar{ 225c243e490SMarcel Moolenaar if atf_config_has ${TEST_VARIABLE}; then 226c243e490SMarcel Moolenaar echo "${TEST_VARIABLE} found" 227c243e490SMarcel Moolenaar else 228c243e490SMarcel Moolenaar echo "${TEST_VARIABLE} not found" 229c243e490SMarcel Moolenaar fi 230c243e490SMarcel Moolenaar} 231c243e490SMarcel Moolenaar 232c243e490SMarcel Moolenaar# ------------------------------------------------------------------------- 233c243e490SMarcel Moolenaar# Helper tests for "t_normalize". 234c243e490SMarcel Moolenaar# ------------------------------------------------------------------------- 235c243e490SMarcel Moolenaar 236c243e490SMarcel Moolenaaratf_test_case normalize 237c243e490SMarcel Moolenaarnormalize_head() 238c243e490SMarcel Moolenaar{ 239c243e490SMarcel Moolenaar atf_set "descr" "Helper test case for the t_normalize test program" 240c243e490SMarcel Moolenaar atf_set "a.b" "test value 1" 241c243e490SMarcel Moolenaar atf_set "c-d" "test value 2" 242c243e490SMarcel Moolenaar} 243c243e490SMarcel Moolenaarnormalize_body() 244c243e490SMarcel Moolenaar{ 245c243e490SMarcel Moolenaar echo "a.b: $(atf_get a.b)" 246c243e490SMarcel Moolenaar echo "c-d: $(atf_get c-d)" 247c243e490SMarcel Moolenaar} 248c243e490SMarcel Moolenaar 249c243e490SMarcel Moolenaar# ------------------------------------------------------------------------- 250c243e490SMarcel Moolenaar# Helper tests for "t_tc". 251c243e490SMarcel Moolenaar# ------------------------------------------------------------------------- 252c243e490SMarcel Moolenaar 253c243e490SMarcel Moolenaaratf_test_case tc_pass_true 254c243e490SMarcel Moolenaartc_pass_true_head() 255c243e490SMarcel Moolenaar{ 256c243e490SMarcel Moolenaar atf_set "descr" "Helper test case for the t_tc test program" 257c243e490SMarcel Moolenaar} 258c243e490SMarcel Moolenaartc_pass_true_body() 259c243e490SMarcel Moolenaar{ 260c243e490SMarcel Moolenaar true 261c243e490SMarcel Moolenaar} 262c243e490SMarcel Moolenaar 263c243e490SMarcel Moolenaaratf_test_case tc_pass_false 264c243e490SMarcel Moolenaartc_pass_false_head() 265c243e490SMarcel Moolenaar{ 266c243e490SMarcel Moolenaar atf_set "descr" "Helper test case for the t_tc test program" 267c243e490SMarcel Moolenaar} 268c243e490SMarcel Moolenaartc_pass_false_body() 269c243e490SMarcel Moolenaar{ 270c243e490SMarcel Moolenaar false 271c243e490SMarcel Moolenaar} 272c243e490SMarcel Moolenaar 273c243e490SMarcel Moolenaaratf_test_case tc_pass_return_error 274c243e490SMarcel Moolenaartc_pass_return_error_head() 275c243e490SMarcel Moolenaar{ 276c243e490SMarcel Moolenaar atf_set "descr" "Helper test case for the t_tc test program" 277c243e490SMarcel Moolenaar} 278c243e490SMarcel Moolenaartc_pass_return_error_body() 279c243e490SMarcel Moolenaar{ 280c243e490SMarcel Moolenaar return 1 281c243e490SMarcel Moolenaar} 282c243e490SMarcel Moolenaar 283c243e490SMarcel Moolenaaratf_test_case tc_fail 284c243e490SMarcel Moolenaartc_fail_head() 285c243e490SMarcel Moolenaar{ 286c243e490SMarcel Moolenaar atf_set "descr" "Helper test case for the t_tc test program" 287c243e490SMarcel Moolenaar} 288c243e490SMarcel Moolenaartc_fail_body() 289c243e490SMarcel Moolenaar{ 290c243e490SMarcel Moolenaar echo "An error" 1>&2 291c243e490SMarcel Moolenaar exit 1 292c243e490SMarcel Moolenaar} 293c243e490SMarcel Moolenaar 294c243e490SMarcel Moolenaaratf_test_case tc_missing_body 295c243e490SMarcel Moolenaartc_missing_body_head() 296c243e490SMarcel Moolenaar{ 297c243e490SMarcel Moolenaar atf_set "descr" "Helper test case for the t_tc test program" 298c243e490SMarcel Moolenaar} 299c243e490SMarcel Moolenaar 300c243e490SMarcel Moolenaar# ------------------------------------------------------------------------- 301c243e490SMarcel Moolenaar# Helper tests for "t_tp". 302c243e490SMarcel Moolenaar# ------------------------------------------------------------------------- 303c243e490SMarcel Moolenaar 304c243e490SMarcel Moolenaaratf_test_case tp_srcdir 305c243e490SMarcel Moolenaartp_srcdir_head() 306c243e490SMarcel Moolenaar{ 307c243e490SMarcel Moolenaar atf_set "descr" "Helper test case for the t_tp test program" 308c243e490SMarcel Moolenaar} 309c243e490SMarcel Moolenaartp_srcdir_body() 310c243e490SMarcel Moolenaar{ 311c243e490SMarcel Moolenaar echo "Calling helper" 312c243e490SMarcel Moolenaar helper_subr || atf_fail "Could not call helper subroutine" 313c243e490SMarcel Moolenaar} 314c243e490SMarcel Moolenaar 315c243e490SMarcel Moolenaar# ------------------------------------------------------------------------- 316c243e490SMarcel Moolenaar# Main. 317c243e490SMarcel Moolenaar# ------------------------------------------------------------------------- 318c243e490SMarcel Moolenaar 319c243e490SMarcel Moolenaaratf_init_test_cases() 320c243e490SMarcel Moolenaar{ 321c243e490SMarcel Moolenaar # Add helper tests for t_atf_check. 322c243e490SMarcel Moolenaar atf_add_test_case atf_check_info_ok 323c243e490SMarcel Moolenaar atf_add_test_case atf_check_info_fail 324c243e490SMarcel Moolenaar atf_add_test_case atf_check_expout_mismatch 325c243e490SMarcel Moolenaar atf_add_test_case atf_check_experr_mismatch 326c243e490SMarcel Moolenaar atf_add_test_case atf_check_null_stdout 327c243e490SMarcel Moolenaar atf_add_test_case atf_check_null_stderr 328c243e490SMarcel Moolenaar atf_add_test_case atf_check_equal_ok 329c243e490SMarcel Moolenaar atf_add_test_case atf_check_equal_fail 330c243e490SMarcel Moolenaar atf_add_test_case atf_check_equal_eval_ok 331c243e490SMarcel Moolenaar atf_add_test_case atf_check_equal_eval_fail 332*c203bd70SAlex Richardson atf_add_test_case atf_check_not_equal_ok 333*c203bd70SAlex Richardson atf_add_test_case atf_check_not_equal_fail 334*c203bd70SAlex Richardson atf_add_test_case atf_check_not_equal_eval_ok 335*c203bd70SAlex Richardson atf_add_test_case atf_check_not_equal_eval_fail 336da3067c1SEnji Cooper atf_add_test_case atf_check_flush_stdout 337c243e490SMarcel Moolenaar 338c243e490SMarcel Moolenaar # Add helper tests for t_config. 339c243e490SMarcel Moolenaar atf_add_test_case config_get 340c243e490SMarcel Moolenaar atf_add_test_case config_has 341c243e490SMarcel Moolenaar 342c243e490SMarcel Moolenaar # Add helper tests for t_normalize. 343c243e490SMarcel Moolenaar atf_add_test_case normalize 344c243e490SMarcel Moolenaar 345c243e490SMarcel Moolenaar # Add helper tests for t_tc. 346c243e490SMarcel Moolenaar atf_add_test_case tc_pass_true 347c243e490SMarcel Moolenaar atf_add_test_case tc_pass_false 348c243e490SMarcel Moolenaar atf_add_test_case tc_pass_return_error 349c243e490SMarcel Moolenaar atf_add_test_case tc_fail 350c243e490SMarcel Moolenaar atf_add_test_case tc_missing_body 351c243e490SMarcel Moolenaar 352c243e490SMarcel Moolenaar # Add helper tests for t_tp. 353c243e490SMarcel Moolenaar [ -f $(atf_get_srcdir)/subrs ] && . $(atf_get_srcdir)/subrs 354c243e490SMarcel Moolenaar atf_add_test_case tp_srcdir 355c243e490SMarcel Moolenaar} 356c243e490SMarcel Moolenaar 357c243e490SMarcel Moolenaar# vim: syntax=sh:expandtab:shiftwidth=4:softtabstop=4 358