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 26*0677dfd1SJulio Merinoatf_test_case runtime_warnings 27*0677dfd1SJulio Merinoruntime_warnings_head() 28c243e490SMarcel Moolenaar{ 29c243e490SMarcel Moolenaar # The fact that this test case is in this test program is an abuse. 30c243e490SMarcel Moolenaar atf_set "descr" "Tests that the test case prints a warning because" \ 31*0677dfd1SJulio Merino "it is being run outside of a runtime engine" 32c243e490SMarcel Moolenaar} 33*0677dfd1SJulio Merinoruntime_warnings_body() 34c243e490SMarcel Moolenaar{ 35c243e490SMarcel Moolenaar unset __RUNNING_INSIDE_ATF_RUN 36c243e490SMarcel Moolenaar srcdir="$(atf_get_srcdir)" 37c243e490SMarcel Moolenaar for h in $(get_helpers); do 38*0677dfd1SJulio Merino atf_check -s eq:0 -o match:"passed" -e match:"WARNING.*kyua" \ 39c243e490SMarcel Moolenaar "${h}" -s "${srcdir}" result_pass 40c243e490SMarcel Moolenaar done 41c243e490SMarcel Moolenaar} 42c243e490SMarcel Moolenaar 43c243e490SMarcel Moolenaaratf_test_case result_on_stdout 44c243e490SMarcel Moolenaarresult_on_stdout_head() 45c243e490SMarcel Moolenaar{ 46c243e490SMarcel Moolenaar atf_set "descr" "Tests that the test case result is printed on stdout" \ 47c243e490SMarcel Moolenaar "by default" 48c243e490SMarcel Moolenaar} 49c243e490SMarcel Moolenaarresult_on_stdout_body() 50c243e490SMarcel Moolenaar{ 51c243e490SMarcel Moolenaar srcdir="$(atf_get_srcdir)" 52c243e490SMarcel Moolenaar for h in $(get_helpers); do 53c243e490SMarcel Moolenaar atf_check -s eq:0 -o match:"passed" -o match:"msg" \ 54c243e490SMarcel Moolenaar -e ignore "${h}" -s "${srcdir}" result_pass 55c243e490SMarcel Moolenaar atf_check -s eq:1 -o match:"failed: Failure reason" -o match:"msg" \ 56c243e490SMarcel Moolenaar -e ignore "${h}" -s "${srcdir}" result_fail 57c243e490SMarcel Moolenaar atf_check -s eq:0 -o match:"skipped: Skipped reason" -o match:"msg" \ 58c243e490SMarcel Moolenaar -e ignore "${h}" -s "${srcdir}" result_skip 59c243e490SMarcel Moolenaar done 60c243e490SMarcel Moolenaar} 61c243e490SMarcel Moolenaar 62c243e490SMarcel Moolenaaratf_test_case result_to_file 63c243e490SMarcel Moolenaarresult_to_file_head() 64c243e490SMarcel Moolenaar{ 65c243e490SMarcel Moolenaar atf_set "descr" "Tests that the test case result is sent to a file if -r" \ 66c243e490SMarcel Moolenaar "is used" 67c243e490SMarcel Moolenaar} 68c243e490SMarcel Moolenaarresult_to_file_body() 69c243e490SMarcel Moolenaar{ 70c243e490SMarcel Moolenaar srcdir="$(atf_get_srcdir)" 71c243e490SMarcel Moolenaar for h in $(get_helpers); do 72c243e490SMarcel Moolenaar atf_check -s eq:0 -o inline:"msg\n" -e ignore "${h}" -s "${srcdir}" \ 73c243e490SMarcel Moolenaar -r resfile result_pass 74c243e490SMarcel Moolenaar atf_check -o inline:"passed\n" cat resfile 75c243e490SMarcel Moolenaar 76c243e490SMarcel Moolenaar atf_check -s eq:1 -o inline:"msg\n" -e ignore "${h}" -s "${srcdir}" \ 77c243e490SMarcel Moolenaar -r resfile result_fail 78c243e490SMarcel Moolenaar atf_check -o inline:"failed: Failure reason\n" cat resfile 79c243e490SMarcel Moolenaar 80c243e490SMarcel Moolenaar atf_check -s eq:0 -o inline:"msg\n" -e ignore "${h}" -s "${srcdir}" \ 81c243e490SMarcel Moolenaar -r resfile result_skip 82c243e490SMarcel Moolenaar atf_check -o inline:"skipped: Skipped reason\n" cat resfile 83c243e490SMarcel Moolenaar done 84c243e490SMarcel Moolenaar} 85c243e490SMarcel Moolenaar 86c243e490SMarcel Moolenaaratf_test_case result_to_file_fail 87c243e490SMarcel Moolenaarresult_to_file_fail_head() 88c243e490SMarcel Moolenaar{ 89c243e490SMarcel Moolenaar atf_set "descr" "Tests controlled failure if the test program fails to" \ 90c243e490SMarcel Moolenaar "create the results file" 91c243e490SMarcel Moolenaar atf_set "require.user" "unprivileged" 92c243e490SMarcel Moolenaar} 93c243e490SMarcel Moolenaarresult_to_file_fail_body() 94c243e490SMarcel Moolenaar{ 95c243e490SMarcel Moolenaar mkdir dir 96c243e490SMarcel Moolenaar chmod 444 dir 97c243e490SMarcel Moolenaar 98c243e490SMarcel Moolenaar srcdir="$(atf_get_srcdir)" 99c243e490SMarcel Moolenaar 100c243e490SMarcel Moolenaar for h in $(get_helpers c_helpers cpp_helpers); do 101c243e490SMarcel Moolenaar atf_check -s signal -o ignore \ 102c243e490SMarcel Moolenaar -e match:"FATAL ERROR: Cannot create.*'dir/resfile'" \ 103c243e490SMarcel Moolenaar "${h}" -s "${srcdir}" -r dir/resfile result_pass 104c243e490SMarcel Moolenaar done 105c243e490SMarcel Moolenaar 106c243e490SMarcel Moolenaar for h in $(get_helpers sh_helpers); do 107c243e490SMarcel Moolenaar atf_check -s exit -o ignore \ 108c243e490SMarcel Moolenaar -e match:"ERROR: Cannot create.*'dir/resfile'" \ 109c243e490SMarcel Moolenaar "${h}" -s "${srcdir}" -r dir/resfile result_pass 110c243e490SMarcel Moolenaar done 111c243e490SMarcel Moolenaar} 112c243e490SMarcel Moolenaar 113c243e490SMarcel Moolenaaratf_test_case result_exception 114c243e490SMarcel Moolenaarresult_exception_head() 115c243e490SMarcel Moolenaar{ 116c243e490SMarcel Moolenaar atf_set "descr" "Tests that an unhandled exception is correctly captured" 117c243e490SMarcel Moolenaar} 118c243e490SMarcel Moolenaarresult_exception_body() 119c243e490SMarcel Moolenaar{ 120c243e490SMarcel Moolenaar for h in $(get_helpers cpp_helpers); do 121*0677dfd1SJulio Merino atf_check -s signal -o not-match:'failed: .*This is unhandled' \ 122*0677dfd1SJulio Merino -e ignore "${h}" -s "${srcdir}" result_exception 123c243e490SMarcel Moolenaar done 124c243e490SMarcel Moolenaar} 125c243e490SMarcel Moolenaar 126c243e490SMarcel Moolenaaratf_init_test_cases() 127c243e490SMarcel Moolenaar{ 128*0677dfd1SJulio Merino atf_add_test_case runtime_warnings 129c243e490SMarcel Moolenaar atf_add_test_case result_on_stdout 130c243e490SMarcel Moolenaar atf_add_test_case result_to_file 131c243e490SMarcel Moolenaar atf_add_test_case result_to_file_fail 132c243e490SMarcel Moolenaar atf_add_test_case result_exception 133c243e490SMarcel Moolenaar} 134c243e490SMarcel Moolenaar 135c243e490SMarcel Moolenaar# vim: syntax=sh:expandtab:shiftwidth=4:softtabstop=4 136