xref: /freebsd/contrib/atf/test-programs/result_test.sh (revision 8f0ea33f2bbf3a6aa80235f0a02fa5f2780c2b17)
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