xref: /freebsd/contrib/kyua/integration/cmd_report_test.sh (revision b0d29bc47dba79f6f38e67eabadfb4b32ffd9390)
1*b0d29bc4SBrooks Davis# Copyright 2011 The Kyua Authors.
2*b0d29bc4SBrooks Davis# All rights reserved.
3*b0d29bc4SBrooks Davis#
4*b0d29bc4SBrooks Davis# Redistribution and use in source and binary forms, with or without
5*b0d29bc4SBrooks Davis# modification, are permitted provided that the following conditions are
6*b0d29bc4SBrooks Davis# met:
7*b0d29bc4SBrooks Davis#
8*b0d29bc4SBrooks Davis# * Redistributions of source code must retain the above copyright
9*b0d29bc4SBrooks Davis#   notice, this list of conditions and the following disclaimer.
10*b0d29bc4SBrooks Davis# * Redistributions in binary form must reproduce the above copyright
11*b0d29bc4SBrooks Davis#   notice, this list of conditions and the following disclaimer in the
12*b0d29bc4SBrooks Davis#   documentation and/or other materials provided with the distribution.
13*b0d29bc4SBrooks Davis# * Neither the name of Google Inc. nor the names of its contributors
14*b0d29bc4SBrooks Davis#   may be used to endorse or promote products derived from this software
15*b0d29bc4SBrooks Davis#   without specific prior written permission.
16*b0d29bc4SBrooks Davis#
17*b0d29bc4SBrooks Davis# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
18*b0d29bc4SBrooks Davis# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
19*b0d29bc4SBrooks Davis# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
20*b0d29bc4SBrooks Davis# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
21*b0d29bc4SBrooks Davis# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
22*b0d29bc4SBrooks Davis# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
23*b0d29bc4SBrooks Davis# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
24*b0d29bc4SBrooks Davis# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
25*b0d29bc4SBrooks Davis# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
26*b0d29bc4SBrooks Davis# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
27*b0d29bc4SBrooks Davis# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
28*b0d29bc4SBrooks Davis
29*b0d29bc4SBrooks Davis
30*b0d29bc4SBrooks Davis# Executes a mock test suite to generate data in the database.
31*b0d29bc4SBrooks Davis#
32*b0d29bc4SBrooks Davis# \param mock_env The value to store in a MOCK variable in the environment.
33*b0d29bc4SBrooks Davis#     Use this to be able to differentiate executions by inspecting the
34*b0d29bc4SBrooks Davis#     context of the output.
35*b0d29bc4SBrooks Davis# \param dbfile_name File to which to write the path to the generated database
36*b0d29bc4SBrooks Davis#     file.
37*b0d29bc4SBrooks Davisrun_tests() {
38*b0d29bc4SBrooks Davis    local mock_env="${1}"; shift
39*b0d29bc4SBrooks Davis    local dbfile_name="${1}"; shift
40*b0d29bc4SBrooks Davis
41*b0d29bc4SBrooks Davis    cat >Kyuafile <<EOF
42*b0d29bc4SBrooks Davissyntax(2)
43*b0d29bc4SBrooks Davistest_suite("integration")
44*b0d29bc4SBrooks Davisatf_test_program{name="simple_all_pass"}
45*b0d29bc4SBrooks DavisEOF
46*b0d29bc4SBrooks Davis
47*b0d29bc4SBrooks Davis    utils_cp_helper simple_all_pass .
48*b0d29bc4SBrooks Davis    atf_check -s exit:0 -o save:stdout -e empty env \
49*b0d29bc4SBrooks Davis        MOCK="${mock_env}" _='fake-value' kyua test
50*b0d29bc4SBrooks Davis    grep '^Results saved to ' stdout | cut -d ' ' -f 4 >"${dbfile_name}"
51*b0d29bc4SBrooks Davis    rm stdout
52*b0d29bc4SBrooks Davis
53*b0d29bc4SBrooks Davis    # Ensure the results of 'report' come from the database.
54*b0d29bc4SBrooks Davis    rm Kyuafile simple_all_pass
55*b0d29bc4SBrooks Davis}
56*b0d29bc4SBrooks Davis
57*b0d29bc4SBrooks Davis
58*b0d29bc4SBrooks Davisutils_test_case default_behavior__ok
59*b0d29bc4SBrooks Davisdefault_behavior__ok_body() {
60*b0d29bc4SBrooks Davis    utils_install_times_wrapper
61*b0d29bc4SBrooks Davis
62*b0d29bc4SBrooks Davis    run_tests "mock1" dbfile_name1
63*b0d29bc4SBrooks Davis
64*b0d29bc4SBrooks Davis    cat >expout <<EOF
65*b0d29bc4SBrooks Davis===> Skipped tests
66*b0d29bc4SBrooks Davissimple_all_pass:skip  ->  skipped: The reason for skipping is this  [S.UUUs]
67*b0d29bc4SBrooks Davis===> Summary
68*b0d29bc4SBrooks DavisResults read from $(cat dbfile_name1)
69*b0d29bc4SBrooks DavisTest cases: 2 total, 1 skipped, 0 expected failures, 0 broken, 0 failed
70*b0d29bc4SBrooks DavisTotal time: S.UUUs
71*b0d29bc4SBrooks DavisEOF
72*b0d29bc4SBrooks Davis    atf_check -s exit:0 -o file:expout -e empty kyua report
73*b0d29bc4SBrooks Davis
74*b0d29bc4SBrooks Davis    run_tests "mock2" dbfile_name2
75*b0d29bc4SBrooks Davis
76*b0d29bc4SBrooks Davis    cat >expout <<EOF
77*b0d29bc4SBrooks Davis===> Skipped tests
78*b0d29bc4SBrooks Davissimple_all_pass:skip  ->  skipped: The reason for skipping is this  [S.UUUs]
79*b0d29bc4SBrooks Davis===> Summary
80*b0d29bc4SBrooks DavisResults read from $(cat dbfile_name2)
81*b0d29bc4SBrooks DavisTest cases: 2 total, 1 skipped, 0 expected failures, 0 broken, 0 failed
82*b0d29bc4SBrooks DavisTotal time: S.UUUs
83*b0d29bc4SBrooks DavisEOF
84*b0d29bc4SBrooks Davis    atf_check -s exit:0 -o file:expout -e empty kyua report
85*b0d29bc4SBrooks Davis}
86*b0d29bc4SBrooks Davis
87*b0d29bc4SBrooks Davis
88*b0d29bc4SBrooks Davisutils_test_case default_behavior__no_store
89*b0d29bc4SBrooks Davisdefault_behavior__no_store_body() {
90*b0d29bc4SBrooks Davis    echo 'kyua: E: No previous results file found for test suite' \
91*b0d29bc4SBrooks Davis        "$(utils_test_suite_id)." >experr
92*b0d29bc4SBrooks Davis    atf_check -s exit:2 -o empty -e file:experr kyua report
93*b0d29bc4SBrooks Davis}
94*b0d29bc4SBrooks Davis
95*b0d29bc4SBrooks Davis
96*b0d29bc4SBrooks Davisutils_test_case results_file__explicit
97*b0d29bc4SBrooks Davisresults_file__explicit_body() {
98*b0d29bc4SBrooks Davis    run_tests "mock1" dbfile_name1
99*b0d29bc4SBrooks Davis    run_tests "mock2" dbfile_name2
100*b0d29bc4SBrooks Davis
101*b0d29bc4SBrooks Davis    atf_check -s exit:0 -o match:"MOCK=mock1" -o not-match:"MOCK=mock2" \
102*b0d29bc4SBrooks Davis        -e empty kyua report --results-file="$(cat dbfile_name1)" \
103*b0d29bc4SBrooks Davis        --verbose
104*b0d29bc4SBrooks Davis    atf_check -s exit:0 -o not-match:"MOCK=mock1" -o match:"MOCK=mock2" \
105*b0d29bc4SBrooks Davis        -e empty kyua report --results-file="$(cat dbfile_name2)" \
106*b0d29bc4SBrooks Davis        --verbose
107*b0d29bc4SBrooks Davis}
108*b0d29bc4SBrooks Davis
109*b0d29bc4SBrooks Davis
110*b0d29bc4SBrooks Davisutils_test_case results_file__not_found
111*b0d29bc4SBrooks Davisresults_file__not_found_body() {
112*b0d29bc4SBrooks Davis    atf_check -s exit:2 -o empty -e match:"kyua: E: No previous results.*foo" \
113*b0d29bc4SBrooks Davis        kyua report --results-file=foo
114*b0d29bc4SBrooks Davis}
115*b0d29bc4SBrooks Davis
116*b0d29bc4SBrooks Davis
117*b0d29bc4SBrooks Davisutils_test_case output__explicit
118*b0d29bc4SBrooks Davisoutput__explicit_body() {
119*b0d29bc4SBrooks Davis    run_tests unused_mock dbfile_name
120*b0d29bc4SBrooks Davis
121*b0d29bc4SBrooks Davis    cat >report <<EOF
122*b0d29bc4SBrooks Davis===> Skipped tests
123*b0d29bc4SBrooks Davissimple_all_pass:skip  ->  skipped: The reason for skipping is this  [S.UUUs]
124*b0d29bc4SBrooks Davis===> Summary
125*b0d29bc4SBrooks DavisResults read from $(cat dbfile_name)
126*b0d29bc4SBrooks DavisTest cases: 2 total, 1 skipped, 0 expected failures, 0 broken, 0 failed
127*b0d29bc4SBrooks DavisTotal time: S.UUUs
128*b0d29bc4SBrooks DavisEOF
129*b0d29bc4SBrooks Davis
130*b0d29bc4SBrooks Davis    atf_check -s exit:0 -o file:report -e empty -x kyua report \
131*b0d29bc4SBrooks Davis        --output=/dev/stdout "| ${utils_strip_times_but_not_ids}"
132*b0d29bc4SBrooks Davis    atf_check -s exit:0 -o empty -e save:stderr kyua report \
133*b0d29bc4SBrooks Davis        --output=/dev/stderr
134*b0d29bc4SBrooks Davis    atf_check -s exit:0 -o file:report -x cat stderr \
135*b0d29bc4SBrooks Davis        "| ${utils_strip_times_but_not_ids}"
136*b0d29bc4SBrooks Davis
137*b0d29bc4SBrooks Davis    atf_check -s exit:0 -o empty -e empty kyua report \
138*b0d29bc4SBrooks Davis        --output=my-file
139*b0d29bc4SBrooks Davis    atf_check -s exit:0 -o file:report -x cat my-file \
140*b0d29bc4SBrooks Davis        "| ${utils_strip_times_but_not_ids}"
141*b0d29bc4SBrooks Davis}
142*b0d29bc4SBrooks Davis
143*b0d29bc4SBrooks Davis
144*b0d29bc4SBrooks Davisutils_test_case filter__ok
145*b0d29bc4SBrooks Davisfilter__ok_body() {
146*b0d29bc4SBrooks Davis    utils_install_times_wrapper
147*b0d29bc4SBrooks Davis
148*b0d29bc4SBrooks Davis    run_tests "mock1" dbfile_name1
149*b0d29bc4SBrooks Davis
150*b0d29bc4SBrooks Davis    cat >expout <<EOF
151*b0d29bc4SBrooks Davis===> Skipped tests
152*b0d29bc4SBrooks Davissimple_all_pass:skip  ->  skipped: The reason for skipping is this  [S.UUUs]
153*b0d29bc4SBrooks Davis===> Summary
154*b0d29bc4SBrooks DavisResults read from $(cat dbfile_name1)
155*b0d29bc4SBrooks DavisTest cases: 1 total, 1 skipped, 0 expected failures, 0 broken, 0 failed
156*b0d29bc4SBrooks DavisTotal time: S.UUUs
157*b0d29bc4SBrooks DavisEOF
158*b0d29bc4SBrooks Davis    atf_check -s exit:0 -o file:expout -e empty kyua report \
159*b0d29bc4SBrooks Davis        simple_all_pass:skip
160*b0d29bc4SBrooks Davis}
161*b0d29bc4SBrooks Davis
162*b0d29bc4SBrooks Davis
163*b0d29bc4SBrooks Davisutils_test_case filter__ok_passed_excluded_by_default
164*b0d29bc4SBrooks Davisfilter__ok_passed_excluded_by_default_body() {
165*b0d29bc4SBrooks Davis    utils_install_times_wrapper
166*b0d29bc4SBrooks Davis
167*b0d29bc4SBrooks Davis    run_tests "mock1" dbfile_name1
168*b0d29bc4SBrooks Davis
169*b0d29bc4SBrooks Davis    # Passed results are excluded by default so they are not displayed even if
170*b0d29bc4SBrooks Davis    # requested with a test case filter.  This might be somewhat confusing...
171*b0d29bc4SBrooks Davis    cat >expout <<EOF
172*b0d29bc4SBrooks Davis===> Summary
173*b0d29bc4SBrooks DavisResults read from $(cat dbfile_name1)
174*b0d29bc4SBrooks DavisTest cases: 1 total, 0 skipped, 0 expected failures, 0 broken, 0 failed
175*b0d29bc4SBrooks DavisTotal time: S.UUUs
176*b0d29bc4SBrooks DavisEOF
177*b0d29bc4SBrooks Davis    atf_check -s exit:0 -o file:expout -e empty kyua report \
178*b0d29bc4SBrooks Davis        simple_all_pass:pass
179*b0d29bc4SBrooks Davis    cat >expout <<EOF
180*b0d29bc4SBrooks Davis===> Passed tests
181*b0d29bc4SBrooks Davissimple_all_pass:pass  ->  passed  [S.UUUs]
182*b0d29bc4SBrooks Davis===> Summary
183*b0d29bc4SBrooks DavisResults read from $(cat dbfile_name1)
184*b0d29bc4SBrooks DavisTest cases: 1 total, 0 skipped, 0 expected failures, 0 broken, 0 failed
185*b0d29bc4SBrooks DavisTotal time: S.UUUs
186*b0d29bc4SBrooks DavisEOF
187*b0d29bc4SBrooks Davis    atf_check -s exit:0 -o file:expout -e empty kyua report \
188*b0d29bc4SBrooks Davis        --results-filter= simple_all_pass:pass
189*b0d29bc4SBrooks Davis}
190*b0d29bc4SBrooks Davis
191*b0d29bc4SBrooks Davis
192*b0d29bc4SBrooks Davisutils_test_case filter__no_match
193*b0d29bc4SBrooks Davisfilter__no_match_body() {
194*b0d29bc4SBrooks Davis    utils_install_times_wrapper
195*b0d29bc4SBrooks Davis
196*b0d29bc4SBrooks Davis    run_tests "mock1" dbfile_name1
197*b0d29bc4SBrooks Davis
198*b0d29bc4SBrooks Davis    cat >expout <<EOF
199*b0d29bc4SBrooks Davis===> Skipped tests
200*b0d29bc4SBrooks Davissimple_all_pass:skip  ->  skipped: The reason for skipping is this  [S.UUUs]
201*b0d29bc4SBrooks Davis===> Summary
202*b0d29bc4SBrooks DavisResults read from $(cat dbfile_name1)
203*b0d29bc4SBrooks DavisTest cases: 1 total, 1 skipped, 0 expected failures, 0 broken, 0 failed
204*b0d29bc4SBrooks DavisTotal time: S.UUUs
205*b0d29bc4SBrooks DavisEOF
206*b0d29bc4SBrooks Davis    cat >experr <<EOF
207*b0d29bc4SBrooks Daviskyua: W: No test cases matched by the filter 'first'.
208*b0d29bc4SBrooks Daviskyua: W: No test cases matched by the filter 'simple_all_pass:second'.
209*b0d29bc4SBrooks DavisEOF
210*b0d29bc4SBrooks Davis    atf_check -s exit:1 -o file:expout -e file:experr kyua report \
211*b0d29bc4SBrooks Davis        first simple_all_pass:skip simple_all_pass:second
212*b0d29bc4SBrooks Davis}
213*b0d29bc4SBrooks Davis
214*b0d29bc4SBrooks Davis
215*b0d29bc4SBrooks Davisutils_test_case verbose
216*b0d29bc4SBrooks Davisverbose_body() {
217*b0d29bc4SBrooks Davis    # Switch to the current directory using its physical location and update
218*b0d29bc4SBrooks Davis    # HOME accordingly.  Otherwise, the test below where we compare the value
219*b0d29bc4SBrooks Davis    # of HOME in the output might fail if the path to HOME contains a symlink
220*b0d29bc4SBrooks Davis    # (as is the case in OS X when HOME points to the temporary directory.)
221*b0d29bc4SBrooks Davis    local real_cwd="$(pwd -P)"
222*b0d29bc4SBrooks Davis    cd "${real_cwd}"
223*b0d29bc4SBrooks Davis    HOME="${real_cwd}"
224*b0d29bc4SBrooks Davis
225*b0d29bc4SBrooks Davis    run_tests "mock1
226*b0d29bc4SBrooks Davishas multiple lines
227*b0d29bc4SBrooks Davisand terminates here" dbfile_name
228*b0d29bc4SBrooks Davis
229*b0d29bc4SBrooks Davis    cat >expout <<EOF
230*b0d29bc4SBrooks Davis===> Execution context
231*b0d29bc4SBrooks DavisCurrent directory: ${real_cwd}
232*b0d29bc4SBrooks DavisEnvironment variables:
233*b0d29bc4SBrooks DavisEOF
234*b0d29bc4SBrooks Davis    # $_ is a bash variable.  To keep our tests stable, we override its value
235*b0d29bc4SBrooks Davis    # below to match the hardcoded value in run_tests.
236*b0d29bc4SBrooks Davis    env \
237*b0d29bc4SBrooks Davis        HOME="${real_cwd}" \
238*b0d29bc4SBrooks Davis        MOCK="mock1
239*b0d29bc4SBrooks Davishas multiple lines
240*b0d29bc4SBrooks Davisand terminates here" \
241*b0d29bc4SBrooks Davis        _='fake-value' \
242*b0d29bc4SBrooks Davis        "$(atf_get_srcdir)/helpers/dump_env" '    ' '        ' >>expout
243*b0d29bc4SBrooks Davis    cat >>expout <<EOF
244*b0d29bc4SBrooks Davis===> simple_all_pass:skip
245*b0d29bc4SBrooks DavisResult:     skipped: The reason for skipping is this
246*b0d29bc4SBrooks DavisStart time: YYYY-MM-DDTHH:MM:SS.ssssssZ
247*b0d29bc4SBrooks DavisEnd time:   YYYY-MM-DDTHH:MM:SS.ssssssZ
248*b0d29bc4SBrooks DavisDuration:   S.UUUs
249*b0d29bc4SBrooks Davis
250*b0d29bc4SBrooks DavisMetadata:
251*b0d29bc4SBrooks Davis    allowed_architectures is empty
252*b0d29bc4SBrooks Davis    allowed_platforms is empty
253*b0d29bc4SBrooks Davis    description is empty
254*b0d29bc4SBrooks Davis    has_cleanup = false
255*b0d29bc4SBrooks Davis    is_exclusive = false
256*b0d29bc4SBrooks Davis    required_configs is empty
257*b0d29bc4SBrooks Davis    required_disk_space = 0
258*b0d29bc4SBrooks Davis    required_files is empty
259*b0d29bc4SBrooks Davis    required_memory = 0
260*b0d29bc4SBrooks Davis    required_programs is empty
261*b0d29bc4SBrooks Davis    required_user is empty
262*b0d29bc4SBrooks Davis    timeout = 300
263*b0d29bc4SBrooks Davis
264*b0d29bc4SBrooks DavisStandard output:
265*b0d29bc4SBrooks DavisThis is the stdout of skip
266*b0d29bc4SBrooks Davis
267*b0d29bc4SBrooks DavisStandard error:
268*b0d29bc4SBrooks DavisThis is the stderr of skip
269*b0d29bc4SBrooks Davis===> Skipped tests
270*b0d29bc4SBrooks Davissimple_all_pass:skip  ->  skipped: The reason for skipping is this  [S.UUUs]
271*b0d29bc4SBrooks Davis===> Summary
272*b0d29bc4SBrooks DavisResults read from $(cat dbfile_name)
273*b0d29bc4SBrooks DavisTest cases: 2 total, 1 skipped, 0 expected failures, 0 broken, 0 failed
274*b0d29bc4SBrooks DavisStart time: YYYY-MM-DDTHH:MM:SS.ssssssZ
275*b0d29bc4SBrooks DavisEnd time:   YYYY-MM-DDTHH:MM:SS.ssssssZ
276*b0d29bc4SBrooks DavisTotal time: S.UUUs
277*b0d29bc4SBrooks DavisEOF
278*b0d29bc4SBrooks Davis    atf_check -s exit:0 -o file:expout -e empty -x kyua report --verbose \
279*b0d29bc4SBrooks Davis        "| ${utils_strip_times_but_not_ids}"
280*b0d29bc4SBrooks Davis}
281*b0d29bc4SBrooks Davis
282*b0d29bc4SBrooks Davis
283*b0d29bc4SBrooks Davisutils_test_case results_filter__empty
284*b0d29bc4SBrooks Davisresults_filter__empty_body() {
285*b0d29bc4SBrooks Davis    utils_install_times_wrapper
286*b0d29bc4SBrooks Davis
287*b0d29bc4SBrooks Davis    run_tests "mock1" dbfile_name1
288*b0d29bc4SBrooks Davis
289*b0d29bc4SBrooks Davis    cat >expout <<EOF
290*b0d29bc4SBrooks Davis===> Passed tests
291*b0d29bc4SBrooks Davissimple_all_pass:pass  ->  passed  [S.UUUs]
292*b0d29bc4SBrooks Davis===> Skipped tests
293*b0d29bc4SBrooks Davissimple_all_pass:skip  ->  skipped: The reason for skipping is this  [S.UUUs]
294*b0d29bc4SBrooks Davis===> Summary
295*b0d29bc4SBrooks DavisResults read from $(cat dbfile_name1)
296*b0d29bc4SBrooks DavisTest cases: 2 total, 1 skipped, 0 expected failures, 0 broken, 0 failed
297*b0d29bc4SBrooks DavisTotal time: S.UUUs
298*b0d29bc4SBrooks DavisEOF
299*b0d29bc4SBrooks Davis    atf_check -s exit:0 -o file:expout -e empty kyua report --results-filter=
300*b0d29bc4SBrooks Davis}
301*b0d29bc4SBrooks Davis
302*b0d29bc4SBrooks Davis
303*b0d29bc4SBrooks Davisutils_test_case results_filter__one
304*b0d29bc4SBrooks Davisresults_filter__one_body() {
305*b0d29bc4SBrooks Davis    utils_install_times_wrapper
306*b0d29bc4SBrooks Davis
307*b0d29bc4SBrooks Davis    run_tests "mock1" dbfile_name1
308*b0d29bc4SBrooks Davis
309*b0d29bc4SBrooks Davis    cat >expout <<EOF
310*b0d29bc4SBrooks Davis===> Passed tests
311*b0d29bc4SBrooks Davissimple_all_pass:pass  ->  passed  [S.UUUs]
312*b0d29bc4SBrooks Davis===> Summary
313*b0d29bc4SBrooks DavisResults read from $(cat dbfile_name1)
314*b0d29bc4SBrooks DavisTest cases: 2 total, 1 skipped, 0 expected failures, 0 broken, 0 failed
315*b0d29bc4SBrooks DavisTotal time: S.UUUs
316*b0d29bc4SBrooks DavisEOF
317*b0d29bc4SBrooks Davis    atf_check -s exit:0 -o file:expout -e empty kyua report \
318*b0d29bc4SBrooks Davis        --results-filter=passed
319*b0d29bc4SBrooks Davis}
320*b0d29bc4SBrooks Davis
321*b0d29bc4SBrooks Davis
322*b0d29bc4SBrooks Davisutils_test_case results_filter__multiple_all_match
323*b0d29bc4SBrooks Davisresults_filter__multiple_all_match_body() {
324*b0d29bc4SBrooks Davis    utils_install_times_wrapper
325*b0d29bc4SBrooks Davis
326*b0d29bc4SBrooks Davis    run_tests "mock1" dbfile_name1
327*b0d29bc4SBrooks Davis
328*b0d29bc4SBrooks Davis    cat >expout <<EOF
329*b0d29bc4SBrooks Davis===> Skipped tests
330*b0d29bc4SBrooks Davissimple_all_pass:skip  ->  skipped: The reason for skipping is this  [S.UUUs]
331*b0d29bc4SBrooks Davis===> Passed tests
332*b0d29bc4SBrooks Davissimple_all_pass:pass  ->  passed  [S.UUUs]
333*b0d29bc4SBrooks Davis===> Summary
334*b0d29bc4SBrooks DavisResults read from $(cat dbfile_name1)
335*b0d29bc4SBrooks DavisTest cases: 2 total, 1 skipped, 0 expected failures, 0 broken, 0 failed
336*b0d29bc4SBrooks DavisTotal time: S.UUUs
337*b0d29bc4SBrooks DavisEOF
338*b0d29bc4SBrooks Davis    atf_check -s exit:0 -o file:expout -e empty kyua report \
339*b0d29bc4SBrooks Davis        --results-filter=skipped,passed
340*b0d29bc4SBrooks Davis}
341*b0d29bc4SBrooks Davis
342*b0d29bc4SBrooks Davis
343*b0d29bc4SBrooks Davisutils_test_case results_filter__multiple_some_match
344*b0d29bc4SBrooks Davisresults_filter__multiple_some_match_body() {
345*b0d29bc4SBrooks Davis    utils_install_times_wrapper
346*b0d29bc4SBrooks Davis
347*b0d29bc4SBrooks Davis    run_tests "mock1" dbfile_name1
348*b0d29bc4SBrooks Davis
349*b0d29bc4SBrooks Davis    cat >expout <<EOF
350*b0d29bc4SBrooks Davis===> Skipped tests
351*b0d29bc4SBrooks Davissimple_all_pass:skip  ->  skipped: The reason for skipping is this  [S.UUUs]
352*b0d29bc4SBrooks Davis===> Summary
353*b0d29bc4SBrooks DavisResults read from $(cat dbfile_name1)
354*b0d29bc4SBrooks DavisTest cases: 2 total, 1 skipped, 0 expected failures, 0 broken, 0 failed
355*b0d29bc4SBrooks DavisTotal time: S.UUUs
356*b0d29bc4SBrooks DavisEOF
357*b0d29bc4SBrooks Davis    atf_check -s exit:0 -o file:expout -e empty kyua report \
358*b0d29bc4SBrooks Davis        --results-filter=skipped,xfail,broken,failed
359*b0d29bc4SBrooks Davis}
360*b0d29bc4SBrooks Davis
361*b0d29bc4SBrooks Davis
362*b0d29bc4SBrooks Davisatf_init_test_cases() {
363*b0d29bc4SBrooks Davis    atf_add_test_case default_behavior__ok
364*b0d29bc4SBrooks Davis    atf_add_test_case default_behavior__no_store
365*b0d29bc4SBrooks Davis
366*b0d29bc4SBrooks Davis    atf_add_test_case results_file__explicit
367*b0d29bc4SBrooks Davis    atf_add_test_case results_file__not_found
368*b0d29bc4SBrooks Davis
369*b0d29bc4SBrooks Davis    atf_add_test_case filter__ok
370*b0d29bc4SBrooks Davis    atf_add_test_case filter__ok_passed_excluded_by_default
371*b0d29bc4SBrooks Davis    atf_add_test_case filter__no_match
372*b0d29bc4SBrooks Davis
373*b0d29bc4SBrooks Davis    atf_add_test_case verbose
374*b0d29bc4SBrooks Davis
375*b0d29bc4SBrooks Davis    atf_add_test_case output__explicit
376*b0d29bc4SBrooks Davis
377*b0d29bc4SBrooks Davis    atf_add_test_case results_filter__empty
378*b0d29bc4SBrooks Davis    atf_add_test_case results_filter__one
379*b0d29bc4SBrooks Davis    atf_add_test_case results_filter__multiple_all_match
380*b0d29bc4SBrooks Davis    atf_add_test_case results_filter__multiple_some_match
381*b0d29bc4SBrooks Davis}
382