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