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