1c243e490SMarcel Moolenaar // 2c243e490SMarcel Moolenaar // Automated Testing Framework (atf) 3c243e490SMarcel Moolenaar // 4c243e490SMarcel Moolenaar // Copyright (c) 2007 The NetBSD Foundation, Inc. 5c243e490SMarcel Moolenaar // All rights reserved. 6c243e490SMarcel Moolenaar // 7c243e490SMarcel Moolenaar // Redistribution and use in source and binary forms, with or without 8c243e490SMarcel Moolenaar // modification, are permitted provided that the following conditions 9c243e490SMarcel Moolenaar // are met: 10c243e490SMarcel Moolenaar // 1. Redistributions of source code must retain the above copyright 11c243e490SMarcel Moolenaar // notice, this list of conditions and the following disclaimer. 12c243e490SMarcel Moolenaar // 2. Redistributions in binary form must reproduce the above copyright 13c243e490SMarcel Moolenaar // notice, this list of conditions and the following disclaimer in the 14c243e490SMarcel Moolenaar // documentation and/or other materials provided with the distribution. 15c243e490SMarcel Moolenaar // 16c243e490SMarcel Moolenaar // THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND 17c243e490SMarcel Moolenaar // CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, 18c243e490SMarcel Moolenaar // INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 19c243e490SMarcel Moolenaar // MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 20c243e490SMarcel Moolenaar // IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS BE LIABLE FOR ANY 21c243e490SMarcel Moolenaar // DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 22c243e490SMarcel Moolenaar // DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE 23c243e490SMarcel Moolenaar // GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 24c243e490SMarcel Moolenaar // INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER 25c243e490SMarcel Moolenaar // IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR 26c243e490SMarcel Moolenaar // OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN 27c243e490SMarcel Moolenaar // IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 28c243e490SMarcel Moolenaar // 29c243e490SMarcel Moolenaar 30c243e490SMarcel Moolenaar extern "C" { 31c243e490SMarcel Moolenaar #include <signal.h> 32c243e490SMarcel Moolenaar #include <unistd.h> 33c243e490SMarcel Moolenaar } 34c243e490SMarcel Moolenaar 35c243e490SMarcel Moolenaar #include <cstdlib> 36c243e490SMarcel Moolenaar #include <fstream> 37c243e490SMarcel Moolenaar #include <iostream> 38c243e490SMarcel Moolenaar 39*a18eacbeSJulio Merino #include <atf-c++.hpp> 40c243e490SMarcel Moolenaar 41c243e490SMarcel Moolenaar #include "atf-c++/detail/fs.hpp" 42c243e490SMarcel Moolenaar 43c243e490SMarcel Moolenaar // ------------------------------------------------------------------------ 44c243e490SMarcel Moolenaar // Helper tests for "t_config". 45c243e490SMarcel Moolenaar // ------------------------------------------------------------------------ 46c243e490SMarcel Moolenaar 47c243e490SMarcel Moolenaar ATF_TEST_CASE(config_unset); 48c243e490SMarcel Moolenaar ATF_TEST_CASE_HEAD(config_unset) 49c243e490SMarcel Moolenaar { 50c243e490SMarcel Moolenaar set_md_var("descr", "Helper test case for the t_config test program"); 51c243e490SMarcel Moolenaar } 52c243e490SMarcel Moolenaar ATF_TEST_CASE_BODY(config_unset) 53c243e490SMarcel Moolenaar { 54c243e490SMarcel Moolenaar ATF_REQUIRE(!has_config_var("test")); 55c243e490SMarcel Moolenaar } 56c243e490SMarcel Moolenaar 57c243e490SMarcel Moolenaar ATF_TEST_CASE(config_empty); 58c243e490SMarcel Moolenaar ATF_TEST_CASE_HEAD(config_empty) 59c243e490SMarcel Moolenaar { 60c243e490SMarcel Moolenaar set_md_var("descr", "Helper test case for the t_config test program"); 61c243e490SMarcel Moolenaar } 62c243e490SMarcel Moolenaar ATF_TEST_CASE_BODY(config_empty) 63c243e490SMarcel Moolenaar { 64c243e490SMarcel Moolenaar ATF_REQUIRE_EQ(get_config_var("test"), ""); 65c243e490SMarcel Moolenaar } 66c243e490SMarcel Moolenaar 67c243e490SMarcel Moolenaar ATF_TEST_CASE(config_value); 68c243e490SMarcel Moolenaar ATF_TEST_CASE_HEAD(config_value) 69c243e490SMarcel Moolenaar { 70c243e490SMarcel Moolenaar set_md_var("descr", "Helper test case for the t_config test program"); 71c243e490SMarcel Moolenaar } 72c243e490SMarcel Moolenaar ATF_TEST_CASE_BODY(config_value) 73c243e490SMarcel Moolenaar { 74c243e490SMarcel Moolenaar ATF_REQUIRE_EQ(get_config_var("test"), "foo"); 75c243e490SMarcel Moolenaar } 76c243e490SMarcel Moolenaar 77c243e490SMarcel Moolenaar ATF_TEST_CASE(config_multi_value); 78c243e490SMarcel Moolenaar ATF_TEST_CASE_HEAD(config_multi_value) 79c243e490SMarcel Moolenaar { 80c243e490SMarcel Moolenaar set_md_var("descr", "Helper test case for the t_config test program"); 81c243e490SMarcel Moolenaar } 82c243e490SMarcel Moolenaar ATF_TEST_CASE_BODY(config_multi_value) 83c243e490SMarcel Moolenaar { 84c243e490SMarcel Moolenaar ATF_REQUIRE_EQ(get_config_var("test"), "foo bar"); 85c243e490SMarcel Moolenaar } 86c243e490SMarcel Moolenaar 87c243e490SMarcel Moolenaar // ------------------------------------------------------------------------ 88c243e490SMarcel Moolenaar // Helper tests for "t_expect". 89c243e490SMarcel Moolenaar // ------------------------------------------------------------------------ 90c243e490SMarcel Moolenaar 91c243e490SMarcel Moolenaar ATF_TEST_CASE_WITHOUT_HEAD(expect_pass_and_pass); 92c243e490SMarcel Moolenaar ATF_TEST_CASE_BODY(expect_pass_and_pass) 93c243e490SMarcel Moolenaar { 94c243e490SMarcel Moolenaar expect_pass(); 95c243e490SMarcel Moolenaar } 96c243e490SMarcel Moolenaar 97c243e490SMarcel Moolenaar ATF_TEST_CASE_WITHOUT_HEAD(expect_pass_but_fail_requirement); 98c243e490SMarcel Moolenaar ATF_TEST_CASE_BODY(expect_pass_but_fail_requirement) 99c243e490SMarcel Moolenaar { 100c243e490SMarcel Moolenaar expect_pass(); 101c243e490SMarcel Moolenaar fail("Some reason"); 102c243e490SMarcel Moolenaar } 103c243e490SMarcel Moolenaar 104c243e490SMarcel Moolenaar ATF_TEST_CASE_WITHOUT_HEAD(expect_pass_but_fail_check); 105c243e490SMarcel Moolenaar ATF_TEST_CASE_BODY(expect_pass_but_fail_check) 106c243e490SMarcel Moolenaar { 107c243e490SMarcel Moolenaar expect_pass(); 108c243e490SMarcel Moolenaar fail_nonfatal("Some reason"); 109c243e490SMarcel Moolenaar } 110c243e490SMarcel Moolenaar 111c243e490SMarcel Moolenaar ATF_TEST_CASE_WITHOUT_HEAD(expect_fail_and_fail_requirement); 112c243e490SMarcel Moolenaar ATF_TEST_CASE_BODY(expect_fail_and_fail_requirement) 113c243e490SMarcel Moolenaar { 114c243e490SMarcel Moolenaar expect_fail("Fail reason"); 115c243e490SMarcel Moolenaar fail("The failure"); 116c243e490SMarcel Moolenaar expect_pass(); 117c243e490SMarcel Moolenaar } 118c243e490SMarcel Moolenaar 119c243e490SMarcel Moolenaar ATF_TEST_CASE_WITHOUT_HEAD(expect_fail_and_fail_check); 120c243e490SMarcel Moolenaar ATF_TEST_CASE_BODY(expect_fail_and_fail_check) 121c243e490SMarcel Moolenaar { 122c243e490SMarcel Moolenaar expect_fail("Fail first"); 123c243e490SMarcel Moolenaar fail_nonfatal("abc"); 124c243e490SMarcel Moolenaar expect_pass(); 125c243e490SMarcel Moolenaar 126c243e490SMarcel Moolenaar expect_fail("And fail again"); 127c243e490SMarcel Moolenaar fail_nonfatal("def"); 128c243e490SMarcel Moolenaar expect_pass(); 129c243e490SMarcel Moolenaar } 130c243e490SMarcel Moolenaar 131c243e490SMarcel Moolenaar ATF_TEST_CASE_WITHOUT_HEAD(expect_fail_but_pass); 132c243e490SMarcel Moolenaar ATF_TEST_CASE_BODY(expect_fail_but_pass) 133c243e490SMarcel Moolenaar { 134c243e490SMarcel Moolenaar expect_fail("Fail first"); 135c243e490SMarcel Moolenaar fail_nonfatal("abc"); 136c243e490SMarcel Moolenaar expect_pass(); 137c243e490SMarcel Moolenaar 138c243e490SMarcel Moolenaar expect_fail("Will not fail"); 139c243e490SMarcel Moolenaar expect_pass(); 140c243e490SMarcel Moolenaar 141c243e490SMarcel Moolenaar expect_fail("And fail again"); 142c243e490SMarcel Moolenaar fail_nonfatal("def"); 143c243e490SMarcel Moolenaar expect_pass(); 144c243e490SMarcel Moolenaar } 145c243e490SMarcel Moolenaar 146c243e490SMarcel Moolenaar ATF_TEST_CASE_WITHOUT_HEAD(expect_exit_any_and_exit); 147c243e490SMarcel Moolenaar ATF_TEST_CASE_BODY(expect_exit_any_and_exit) 148c243e490SMarcel Moolenaar { 149c243e490SMarcel Moolenaar expect_exit(-1, "Call will exit"); 150c243e490SMarcel Moolenaar std::exit(EXIT_SUCCESS); 151c243e490SMarcel Moolenaar } 152c243e490SMarcel Moolenaar 153c243e490SMarcel Moolenaar ATF_TEST_CASE_WITHOUT_HEAD(expect_exit_code_and_exit); 154c243e490SMarcel Moolenaar ATF_TEST_CASE_BODY(expect_exit_code_and_exit) 155c243e490SMarcel Moolenaar { 156c243e490SMarcel Moolenaar expect_exit(123, "Call will exit"); 157c243e490SMarcel Moolenaar std::exit(123); 158c243e490SMarcel Moolenaar } 159c243e490SMarcel Moolenaar 160c243e490SMarcel Moolenaar ATF_TEST_CASE_WITHOUT_HEAD(expect_exit_but_pass); 161c243e490SMarcel Moolenaar ATF_TEST_CASE_BODY(expect_exit_but_pass) 162c243e490SMarcel Moolenaar { 163c243e490SMarcel Moolenaar expect_exit(-1, "Call won't exit"); 164c243e490SMarcel Moolenaar } 165c243e490SMarcel Moolenaar 166c243e490SMarcel Moolenaar ATF_TEST_CASE_WITHOUT_HEAD(expect_signal_any_and_signal); 167c243e490SMarcel Moolenaar ATF_TEST_CASE_BODY(expect_signal_any_and_signal) 168c243e490SMarcel Moolenaar { 169c243e490SMarcel Moolenaar expect_signal(-1, "Call will signal"); 170c243e490SMarcel Moolenaar ::kill(getpid(), SIGKILL); 171c243e490SMarcel Moolenaar } 172c243e490SMarcel Moolenaar 173c243e490SMarcel Moolenaar ATF_TEST_CASE_WITHOUT_HEAD(expect_signal_no_and_signal); 174c243e490SMarcel Moolenaar ATF_TEST_CASE_BODY(expect_signal_no_and_signal) 175c243e490SMarcel Moolenaar { 176c243e490SMarcel Moolenaar expect_signal(SIGHUP, "Call will signal"); 177c243e490SMarcel Moolenaar ::kill(getpid(), SIGHUP); 178c243e490SMarcel Moolenaar } 179c243e490SMarcel Moolenaar 180c243e490SMarcel Moolenaar ATF_TEST_CASE_WITHOUT_HEAD(expect_signal_but_pass); 181c243e490SMarcel Moolenaar ATF_TEST_CASE_BODY(expect_signal_but_pass) 182c243e490SMarcel Moolenaar { 183c243e490SMarcel Moolenaar expect_signal(-1, "Call won't signal"); 184c243e490SMarcel Moolenaar } 185c243e490SMarcel Moolenaar 186c243e490SMarcel Moolenaar ATF_TEST_CASE_WITHOUT_HEAD(expect_death_and_exit); 187c243e490SMarcel Moolenaar ATF_TEST_CASE_BODY(expect_death_and_exit) 188c243e490SMarcel Moolenaar { 189c243e490SMarcel Moolenaar expect_death("Exit case"); 190c243e490SMarcel Moolenaar std::exit(123); 191c243e490SMarcel Moolenaar } 192c243e490SMarcel Moolenaar 193c243e490SMarcel Moolenaar ATF_TEST_CASE_WITHOUT_HEAD(expect_death_and_signal); 194c243e490SMarcel Moolenaar ATF_TEST_CASE_BODY(expect_death_and_signal) 195c243e490SMarcel Moolenaar { 196c243e490SMarcel Moolenaar expect_death("Signal case"); 197c243e490SMarcel Moolenaar kill(getpid(), SIGKILL); 198c243e490SMarcel Moolenaar } 199c243e490SMarcel Moolenaar 200c243e490SMarcel Moolenaar ATF_TEST_CASE_WITHOUT_HEAD(expect_death_but_pass); 201c243e490SMarcel Moolenaar ATF_TEST_CASE_BODY(expect_death_but_pass) 202c243e490SMarcel Moolenaar { 203c243e490SMarcel Moolenaar expect_death("Call won't die"); 204c243e490SMarcel Moolenaar } 205c243e490SMarcel Moolenaar 206c243e490SMarcel Moolenaar ATF_TEST_CASE(expect_timeout_and_hang); 207c243e490SMarcel Moolenaar ATF_TEST_CASE_HEAD(expect_timeout_and_hang) 208c243e490SMarcel Moolenaar { 209c243e490SMarcel Moolenaar set_md_var("timeout", "1"); 210c243e490SMarcel Moolenaar } 211c243e490SMarcel Moolenaar ATF_TEST_CASE_BODY(expect_timeout_and_hang) 212c243e490SMarcel Moolenaar { 213c243e490SMarcel Moolenaar expect_timeout("Will overrun"); 214c243e490SMarcel Moolenaar ::sleep(5); 215c243e490SMarcel Moolenaar } 216c243e490SMarcel Moolenaar 217c243e490SMarcel Moolenaar ATF_TEST_CASE(expect_timeout_but_pass); 218c243e490SMarcel Moolenaar ATF_TEST_CASE_HEAD(expect_timeout_but_pass) 219c243e490SMarcel Moolenaar { 220c243e490SMarcel Moolenaar set_md_var("timeout", "1"); 221c243e490SMarcel Moolenaar } 222c243e490SMarcel Moolenaar ATF_TEST_CASE_BODY(expect_timeout_but_pass) 223c243e490SMarcel Moolenaar { 224c243e490SMarcel Moolenaar expect_timeout("Will just exit"); 225c243e490SMarcel Moolenaar } 226c243e490SMarcel Moolenaar 227c243e490SMarcel Moolenaar // ------------------------------------------------------------------------ 228c243e490SMarcel Moolenaar // Helper tests for "t_meta_data". 229c243e490SMarcel Moolenaar // ------------------------------------------------------------------------ 230c243e490SMarcel Moolenaar 231c243e490SMarcel Moolenaar ATF_TEST_CASE(metadata_no_descr); 232c243e490SMarcel Moolenaar ATF_TEST_CASE_HEAD(metadata_no_descr) 233c243e490SMarcel Moolenaar { 234c243e490SMarcel Moolenaar } 235c243e490SMarcel Moolenaar ATF_TEST_CASE_BODY(metadata_no_descr) 236c243e490SMarcel Moolenaar { 237c243e490SMarcel Moolenaar } 238c243e490SMarcel Moolenaar 239c243e490SMarcel Moolenaar ATF_TEST_CASE_WITHOUT_HEAD(metadata_no_head); 240c243e490SMarcel Moolenaar ATF_TEST_CASE_BODY(metadata_no_head) 241c243e490SMarcel Moolenaar { 242c243e490SMarcel Moolenaar } 243c243e490SMarcel Moolenaar 244c243e490SMarcel Moolenaar // ------------------------------------------------------------------------ 245c243e490SMarcel Moolenaar // Helper tests for "t_srcdir". 246c243e490SMarcel Moolenaar // ------------------------------------------------------------------------ 247c243e490SMarcel Moolenaar 248c243e490SMarcel Moolenaar ATF_TEST_CASE(srcdir_exists); 249c243e490SMarcel Moolenaar ATF_TEST_CASE_HEAD(srcdir_exists) 250c243e490SMarcel Moolenaar { 251c243e490SMarcel Moolenaar set_md_var("descr", "Helper test case for the t_srcdir test program"); 252c243e490SMarcel Moolenaar } 253c243e490SMarcel Moolenaar ATF_TEST_CASE_BODY(srcdir_exists) 254c243e490SMarcel Moolenaar { 255c243e490SMarcel Moolenaar if (!atf::fs::exists(atf::fs::path(get_config_var("srcdir")) / 256c243e490SMarcel Moolenaar "datafile")) 257c243e490SMarcel Moolenaar ATF_FAIL("Cannot find datafile"); 258c243e490SMarcel Moolenaar } 259c243e490SMarcel Moolenaar 260c243e490SMarcel Moolenaar // ------------------------------------------------------------------------ 261c243e490SMarcel Moolenaar // Helper tests for "t_result". 262c243e490SMarcel Moolenaar // ------------------------------------------------------------------------ 263c243e490SMarcel Moolenaar 264c243e490SMarcel Moolenaar ATF_TEST_CASE(result_pass); 265c243e490SMarcel Moolenaar ATF_TEST_CASE_HEAD(result_pass) { } 266c243e490SMarcel Moolenaar ATF_TEST_CASE_BODY(result_pass) 267c243e490SMarcel Moolenaar { 268c243e490SMarcel Moolenaar std::cout << "msg\n"; 269c243e490SMarcel Moolenaar } 270c243e490SMarcel Moolenaar 271c243e490SMarcel Moolenaar ATF_TEST_CASE(result_fail); 272c243e490SMarcel Moolenaar ATF_TEST_CASE_HEAD(result_fail) { } 273c243e490SMarcel Moolenaar ATF_TEST_CASE_BODY(result_fail) 274c243e490SMarcel Moolenaar { 275c243e490SMarcel Moolenaar std::cout << "msg\n"; 276c243e490SMarcel Moolenaar ATF_FAIL("Failure reason"); 277c243e490SMarcel Moolenaar } 278c243e490SMarcel Moolenaar 279c243e490SMarcel Moolenaar ATF_TEST_CASE(result_skip); 280c243e490SMarcel Moolenaar ATF_TEST_CASE_HEAD(result_skip) { } 281c243e490SMarcel Moolenaar ATF_TEST_CASE_BODY(result_skip) 282c243e490SMarcel Moolenaar { 283c243e490SMarcel Moolenaar std::cout << "msg\n"; 284c243e490SMarcel Moolenaar ATF_SKIP("Skipped reason"); 285c243e490SMarcel Moolenaar } 286c243e490SMarcel Moolenaar 287c243e490SMarcel Moolenaar ATF_TEST_CASE(result_newlines_fail); 288c243e490SMarcel Moolenaar ATF_TEST_CASE_HEAD(result_newlines_fail) 289c243e490SMarcel Moolenaar { 290c243e490SMarcel Moolenaar set_md_var("descr", "Helper test case for the t_result test program"); 291c243e490SMarcel Moolenaar } 292c243e490SMarcel Moolenaar ATF_TEST_CASE_BODY(result_newlines_fail) 293c243e490SMarcel Moolenaar { 294c243e490SMarcel Moolenaar ATF_FAIL("First line\nSecond line"); 295c243e490SMarcel Moolenaar } 296c243e490SMarcel Moolenaar 297c243e490SMarcel Moolenaar ATF_TEST_CASE(result_newlines_skip); 298c243e490SMarcel Moolenaar ATF_TEST_CASE_HEAD(result_newlines_skip) 299c243e490SMarcel Moolenaar { 300c243e490SMarcel Moolenaar set_md_var("descr", "Helper test case for the t_result test program"); 301c243e490SMarcel Moolenaar } 302c243e490SMarcel Moolenaar ATF_TEST_CASE_BODY(result_newlines_skip) 303c243e490SMarcel Moolenaar { 304c243e490SMarcel Moolenaar ATF_SKIP("First line\nSecond line"); 305c243e490SMarcel Moolenaar } 306c243e490SMarcel Moolenaar 307c243e490SMarcel Moolenaar ATF_TEST_CASE(result_exception); 308c243e490SMarcel Moolenaar ATF_TEST_CASE_HEAD(result_exception) { } 309c243e490SMarcel Moolenaar ATF_TEST_CASE_BODY(result_exception) 310c243e490SMarcel Moolenaar { 311c243e490SMarcel Moolenaar throw std::runtime_error("This is unhandled"); 312c243e490SMarcel Moolenaar } 313c243e490SMarcel Moolenaar 314c243e490SMarcel Moolenaar // ------------------------------------------------------------------------ 315c243e490SMarcel Moolenaar // Main. 316c243e490SMarcel Moolenaar // ------------------------------------------------------------------------ 317c243e490SMarcel Moolenaar 318c243e490SMarcel Moolenaar ATF_INIT_TEST_CASES(tcs) 319c243e490SMarcel Moolenaar { 320c243e490SMarcel Moolenaar // Add helper tests for t_config. 321c243e490SMarcel Moolenaar ATF_ADD_TEST_CASE(tcs, config_unset); 322c243e490SMarcel Moolenaar ATF_ADD_TEST_CASE(tcs, config_empty); 323c243e490SMarcel Moolenaar ATF_ADD_TEST_CASE(tcs, config_value); 324c243e490SMarcel Moolenaar ATF_ADD_TEST_CASE(tcs, config_multi_value); 325c243e490SMarcel Moolenaar 326c243e490SMarcel Moolenaar // Add helper tests for t_expect. 327c243e490SMarcel Moolenaar ATF_ADD_TEST_CASE(tcs, expect_pass_and_pass); 328c243e490SMarcel Moolenaar ATF_ADD_TEST_CASE(tcs, expect_pass_but_fail_requirement); 329c243e490SMarcel Moolenaar ATF_ADD_TEST_CASE(tcs, expect_pass_but_fail_check); 330c243e490SMarcel Moolenaar ATF_ADD_TEST_CASE(tcs, expect_fail_and_fail_requirement); 331c243e490SMarcel Moolenaar ATF_ADD_TEST_CASE(tcs, expect_fail_and_fail_check); 332c243e490SMarcel Moolenaar ATF_ADD_TEST_CASE(tcs, expect_fail_but_pass); 333c243e490SMarcel Moolenaar ATF_ADD_TEST_CASE(tcs, expect_exit_any_and_exit); 334c243e490SMarcel Moolenaar ATF_ADD_TEST_CASE(tcs, expect_exit_code_and_exit); 335c243e490SMarcel Moolenaar ATF_ADD_TEST_CASE(tcs, expect_exit_but_pass); 336c243e490SMarcel Moolenaar ATF_ADD_TEST_CASE(tcs, expect_signal_any_and_signal); 337c243e490SMarcel Moolenaar ATF_ADD_TEST_CASE(tcs, expect_signal_no_and_signal); 338c243e490SMarcel Moolenaar ATF_ADD_TEST_CASE(tcs, expect_signal_but_pass); 339c243e490SMarcel Moolenaar ATF_ADD_TEST_CASE(tcs, expect_death_and_exit); 340c243e490SMarcel Moolenaar ATF_ADD_TEST_CASE(tcs, expect_death_and_signal); 341c243e490SMarcel Moolenaar ATF_ADD_TEST_CASE(tcs, expect_death_but_pass); 342c243e490SMarcel Moolenaar ATF_ADD_TEST_CASE(tcs, expect_timeout_and_hang); 343c243e490SMarcel Moolenaar ATF_ADD_TEST_CASE(tcs, expect_timeout_but_pass); 344c243e490SMarcel Moolenaar 345c243e490SMarcel Moolenaar // Add helper tests for t_meta_data. 346c243e490SMarcel Moolenaar ATF_ADD_TEST_CASE(tcs, metadata_no_descr); 347c243e490SMarcel Moolenaar ATF_ADD_TEST_CASE(tcs, metadata_no_head); 348c243e490SMarcel Moolenaar 349c243e490SMarcel Moolenaar // Add helper tests for t_srcdir. 350c243e490SMarcel Moolenaar ATF_ADD_TEST_CASE(tcs, srcdir_exists); 351c243e490SMarcel Moolenaar 352c243e490SMarcel Moolenaar // Add helper tests for t_result. 353c243e490SMarcel Moolenaar ATF_ADD_TEST_CASE(tcs, result_pass); 354c243e490SMarcel Moolenaar ATF_ADD_TEST_CASE(tcs, result_fail); 355c243e490SMarcel Moolenaar ATF_ADD_TEST_CASE(tcs, result_skip); 356c243e490SMarcel Moolenaar ATF_ADD_TEST_CASE(tcs, result_newlines_fail); 357c243e490SMarcel Moolenaar ATF_ADD_TEST_CASE(tcs, result_newlines_skip); 358c243e490SMarcel Moolenaar ATF_ADD_TEST_CASE(tcs, result_exception); 359c243e490SMarcel Moolenaar } 360