1679bf189SMarcel Moolenaar // Copyright (c) 2007 The NetBSD Foundation, Inc.
2679bf189SMarcel Moolenaar // All rights reserved.
3679bf189SMarcel Moolenaar //
4679bf189SMarcel Moolenaar // Redistribution and use in source and binary forms, with or without
5679bf189SMarcel Moolenaar // modification, are permitted provided that the following conditions
6679bf189SMarcel Moolenaar // are met:
7679bf189SMarcel Moolenaar // 1. Redistributions of source code must retain the above copyright
8679bf189SMarcel Moolenaar // notice, this list of conditions and the following disclaimer.
9679bf189SMarcel Moolenaar // 2. Redistributions in binary form must reproduce the above copyright
10679bf189SMarcel Moolenaar // notice, this list of conditions and the following disclaimer in the
11679bf189SMarcel Moolenaar // documentation and/or other materials provided with the distribution.
12679bf189SMarcel Moolenaar //
13679bf189SMarcel Moolenaar // THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND
14679bf189SMarcel Moolenaar // CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
15679bf189SMarcel Moolenaar // INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
16679bf189SMarcel Moolenaar // MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
17679bf189SMarcel Moolenaar // IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS BE LIABLE FOR ANY
18679bf189SMarcel Moolenaar // DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
19679bf189SMarcel Moolenaar // DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
20679bf189SMarcel Moolenaar // GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
21679bf189SMarcel Moolenaar // INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
22679bf189SMarcel Moolenaar // IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
23679bf189SMarcel Moolenaar // OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
24679bf189SMarcel Moolenaar // IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
25679bf189SMarcel Moolenaar
26679bf189SMarcel Moolenaar extern "C" {
27679bf189SMarcel Moolenaar #include <signal.h>
28679bf189SMarcel Moolenaar #include <unistd.h>
29679bf189SMarcel Moolenaar }
30679bf189SMarcel Moolenaar
31679bf189SMarcel Moolenaar #include <cstdlib>
32679bf189SMarcel Moolenaar #include <fstream>
33679bf189SMarcel Moolenaar #include <iostream>
34679bf189SMarcel Moolenaar
35b2b6e97cSJulio Merino #include <atf-c++.hpp>
36679bf189SMarcel Moolenaar
37679bf189SMarcel Moolenaar #include "atf-c++/detail/fs.hpp"
38679bf189SMarcel Moolenaar
39679bf189SMarcel Moolenaar // ------------------------------------------------------------------------
40679bf189SMarcel Moolenaar // Helper tests for "t_config".
41679bf189SMarcel Moolenaar // ------------------------------------------------------------------------
42679bf189SMarcel Moolenaar
43679bf189SMarcel Moolenaar ATF_TEST_CASE(config_unset);
ATF_TEST_CASE_HEAD(config_unset)44679bf189SMarcel Moolenaar ATF_TEST_CASE_HEAD(config_unset)
45679bf189SMarcel Moolenaar {
46679bf189SMarcel Moolenaar set_md_var("descr", "Helper test case for the t_config test program");
47679bf189SMarcel Moolenaar }
ATF_TEST_CASE_BODY(config_unset)48679bf189SMarcel Moolenaar ATF_TEST_CASE_BODY(config_unset)
49679bf189SMarcel Moolenaar {
50679bf189SMarcel Moolenaar ATF_REQUIRE(!has_config_var("test"));
51679bf189SMarcel Moolenaar }
52679bf189SMarcel Moolenaar
53679bf189SMarcel Moolenaar ATF_TEST_CASE(config_empty);
ATF_TEST_CASE_HEAD(config_empty)54679bf189SMarcel Moolenaar ATF_TEST_CASE_HEAD(config_empty)
55679bf189SMarcel Moolenaar {
56679bf189SMarcel Moolenaar set_md_var("descr", "Helper test case for the t_config test program");
57679bf189SMarcel Moolenaar }
ATF_TEST_CASE_BODY(config_empty)58679bf189SMarcel Moolenaar ATF_TEST_CASE_BODY(config_empty)
59679bf189SMarcel Moolenaar {
60679bf189SMarcel Moolenaar ATF_REQUIRE_EQ(get_config_var("test"), "");
61679bf189SMarcel Moolenaar }
62679bf189SMarcel Moolenaar
63679bf189SMarcel Moolenaar ATF_TEST_CASE(config_value);
ATF_TEST_CASE_HEAD(config_value)64679bf189SMarcel Moolenaar ATF_TEST_CASE_HEAD(config_value)
65679bf189SMarcel Moolenaar {
66679bf189SMarcel Moolenaar set_md_var("descr", "Helper test case for the t_config test program");
67679bf189SMarcel Moolenaar }
ATF_TEST_CASE_BODY(config_value)68679bf189SMarcel Moolenaar ATF_TEST_CASE_BODY(config_value)
69679bf189SMarcel Moolenaar {
70679bf189SMarcel Moolenaar ATF_REQUIRE_EQ(get_config_var("test"), "foo");
71679bf189SMarcel Moolenaar }
72679bf189SMarcel Moolenaar
73679bf189SMarcel Moolenaar ATF_TEST_CASE(config_multi_value);
ATF_TEST_CASE_HEAD(config_multi_value)74679bf189SMarcel Moolenaar ATF_TEST_CASE_HEAD(config_multi_value)
75679bf189SMarcel Moolenaar {
76679bf189SMarcel Moolenaar set_md_var("descr", "Helper test case for the t_config test program");
77679bf189SMarcel Moolenaar }
ATF_TEST_CASE_BODY(config_multi_value)78679bf189SMarcel Moolenaar ATF_TEST_CASE_BODY(config_multi_value)
79679bf189SMarcel Moolenaar {
80679bf189SMarcel Moolenaar ATF_REQUIRE_EQ(get_config_var("test"), "foo bar");
81679bf189SMarcel Moolenaar }
82679bf189SMarcel Moolenaar
83679bf189SMarcel Moolenaar // ------------------------------------------------------------------------
84679bf189SMarcel Moolenaar // Helper tests for "t_expect".
85679bf189SMarcel Moolenaar // ------------------------------------------------------------------------
86679bf189SMarcel Moolenaar
87679bf189SMarcel Moolenaar ATF_TEST_CASE_WITHOUT_HEAD(expect_pass_and_pass);
ATF_TEST_CASE_BODY(expect_pass_and_pass)88679bf189SMarcel Moolenaar ATF_TEST_CASE_BODY(expect_pass_and_pass)
89679bf189SMarcel Moolenaar {
90679bf189SMarcel Moolenaar expect_pass();
91679bf189SMarcel Moolenaar }
92679bf189SMarcel Moolenaar
93679bf189SMarcel Moolenaar ATF_TEST_CASE_WITHOUT_HEAD(expect_pass_but_fail_requirement);
ATF_TEST_CASE_BODY(expect_pass_but_fail_requirement)94679bf189SMarcel Moolenaar ATF_TEST_CASE_BODY(expect_pass_but_fail_requirement)
95679bf189SMarcel Moolenaar {
96679bf189SMarcel Moolenaar expect_pass();
97679bf189SMarcel Moolenaar fail("Some reason");
98679bf189SMarcel Moolenaar }
99679bf189SMarcel Moolenaar
100679bf189SMarcel Moolenaar ATF_TEST_CASE_WITHOUT_HEAD(expect_pass_but_fail_check);
ATF_TEST_CASE_BODY(expect_pass_but_fail_check)101679bf189SMarcel Moolenaar ATF_TEST_CASE_BODY(expect_pass_but_fail_check)
102679bf189SMarcel Moolenaar {
103679bf189SMarcel Moolenaar expect_pass();
104679bf189SMarcel Moolenaar fail_nonfatal("Some reason");
105679bf189SMarcel Moolenaar }
106679bf189SMarcel Moolenaar
107679bf189SMarcel Moolenaar ATF_TEST_CASE_WITHOUT_HEAD(expect_fail_and_fail_requirement);
ATF_TEST_CASE_BODY(expect_fail_and_fail_requirement)108679bf189SMarcel Moolenaar ATF_TEST_CASE_BODY(expect_fail_and_fail_requirement)
109679bf189SMarcel Moolenaar {
110679bf189SMarcel Moolenaar expect_fail("Fail reason");
111679bf189SMarcel Moolenaar fail("The failure");
112679bf189SMarcel Moolenaar expect_pass();
113679bf189SMarcel Moolenaar }
114679bf189SMarcel Moolenaar
115679bf189SMarcel Moolenaar ATF_TEST_CASE_WITHOUT_HEAD(expect_fail_and_fail_check);
ATF_TEST_CASE_BODY(expect_fail_and_fail_check)116679bf189SMarcel Moolenaar ATF_TEST_CASE_BODY(expect_fail_and_fail_check)
117679bf189SMarcel Moolenaar {
118679bf189SMarcel Moolenaar expect_fail("Fail first");
119679bf189SMarcel Moolenaar fail_nonfatal("abc");
120679bf189SMarcel Moolenaar expect_pass();
121679bf189SMarcel Moolenaar
122679bf189SMarcel Moolenaar expect_fail("And fail again");
123679bf189SMarcel Moolenaar fail_nonfatal("def");
124679bf189SMarcel Moolenaar expect_pass();
125679bf189SMarcel Moolenaar }
126679bf189SMarcel Moolenaar
127679bf189SMarcel Moolenaar ATF_TEST_CASE_WITHOUT_HEAD(expect_fail_but_pass);
ATF_TEST_CASE_BODY(expect_fail_but_pass)128679bf189SMarcel Moolenaar ATF_TEST_CASE_BODY(expect_fail_but_pass)
129679bf189SMarcel Moolenaar {
130679bf189SMarcel Moolenaar expect_fail("Fail first");
131679bf189SMarcel Moolenaar fail_nonfatal("abc");
132679bf189SMarcel Moolenaar expect_pass();
133679bf189SMarcel Moolenaar
134679bf189SMarcel Moolenaar expect_fail("Will not fail");
135679bf189SMarcel Moolenaar expect_pass();
136679bf189SMarcel Moolenaar
137679bf189SMarcel Moolenaar expect_fail("And fail again");
138679bf189SMarcel Moolenaar fail_nonfatal("def");
139679bf189SMarcel Moolenaar expect_pass();
140679bf189SMarcel Moolenaar }
141679bf189SMarcel Moolenaar
142679bf189SMarcel Moolenaar ATF_TEST_CASE_WITHOUT_HEAD(expect_exit_any_and_exit);
ATF_TEST_CASE_BODY(expect_exit_any_and_exit)143679bf189SMarcel Moolenaar ATF_TEST_CASE_BODY(expect_exit_any_and_exit)
144679bf189SMarcel Moolenaar {
145679bf189SMarcel Moolenaar expect_exit(-1, "Call will exit");
146679bf189SMarcel Moolenaar std::exit(EXIT_SUCCESS);
147679bf189SMarcel Moolenaar }
148679bf189SMarcel Moolenaar
149679bf189SMarcel Moolenaar ATF_TEST_CASE_WITHOUT_HEAD(expect_exit_code_and_exit);
ATF_TEST_CASE_BODY(expect_exit_code_and_exit)150679bf189SMarcel Moolenaar ATF_TEST_CASE_BODY(expect_exit_code_and_exit)
151679bf189SMarcel Moolenaar {
152679bf189SMarcel Moolenaar expect_exit(123, "Call will exit");
153679bf189SMarcel Moolenaar std::exit(123);
154679bf189SMarcel Moolenaar }
155679bf189SMarcel Moolenaar
156679bf189SMarcel Moolenaar ATF_TEST_CASE_WITHOUT_HEAD(expect_exit_but_pass);
ATF_TEST_CASE_BODY(expect_exit_but_pass)157679bf189SMarcel Moolenaar ATF_TEST_CASE_BODY(expect_exit_but_pass)
158679bf189SMarcel Moolenaar {
159679bf189SMarcel Moolenaar expect_exit(-1, "Call won't exit");
160679bf189SMarcel Moolenaar }
161679bf189SMarcel Moolenaar
162679bf189SMarcel Moolenaar ATF_TEST_CASE_WITHOUT_HEAD(expect_signal_any_and_signal);
ATF_TEST_CASE_BODY(expect_signal_any_and_signal)163679bf189SMarcel Moolenaar ATF_TEST_CASE_BODY(expect_signal_any_and_signal)
164679bf189SMarcel Moolenaar {
165679bf189SMarcel Moolenaar expect_signal(-1, "Call will signal");
166679bf189SMarcel Moolenaar ::kill(getpid(), SIGKILL);
167679bf189SMarcel Moolenaar }
168679bf189SMarcel Moolenaar
169679bf189SMarcel Moolenaar ATF_TEST_CASE_WITHOUT_HEAD(expect_signal_no_and_signal);
ATF_TEST_CASE_BODY(expect_signal_no_and_signal)170679bf189SMarcel Moolenaar ATF_TEST_CASE_BODY(expect_signal_no_and_signal)
171679bf189SMarcel Moolenaar {
172679bf189SMarcel Moolenaar expect_signal(SIGHUP, "Call will signal");
173679bf189SMarcel Moolenaar ::kill(getpid(), SIGHUP);
174679bf189SMarcel Moolenaar }
175679bf189SMarcel Moolenaar
176679bf189SMarcel Moolenaar ATF_TEST_CASE_WITHOUT_HEAD(expect_signal_but_pass);
ATF_TEST_CASE_BODY(expect_signal_but_pass)177679bf189SMarcel Moolenaar ATF_TEST_CASE_BODY(expect_signal_but_pass)
178679bf189SMarcel Moolenaar {
179679bf189SMarcel Moolenaar expect_signal(-1, "Call won't signal");
180679bf189SMarcel Moolenaar }
181679bf189SMarcel Moolenaar
182679bf189SMarcel Moolenaar ATF_TEST_CASE_WITHOUT_HEAD(expect_death_and_exit);
ATF_TEST_CASE_BODY(expect_death_and_exit)183679bf189SMarcel Moolenaar ATF_TEST_CASE_BODY(expect_death_and_exit)
184679bf189SMarcel Moolenaar {
185679bf189SMarcel Moolenaar expect_death("Exit case");
186679bf189SMarcel Moolenaar std::exit(123);
187679bf189SMarcel Moolenaar }
188679bf189SMarcel Moolenaar
189679bf189SMarcel Moolenaar ATF_TEST_CASE_WITHOUT_HEAD(expect_death_and_signal);
ATF_TEST_CASE_BODY(expect_death_and_signal)190679bf189SMarcel Moolenaar ATF_TEST_CASE_BODY(expect_death_and_signal)
191679bf189SMarcel Moolenaar {
192679bf189SMarcel Moolenaar expect_death("Signal case");
193679bf189SMarcel Moolenaar kill(getpid(), SIGKILL);
194679bf189SMarcel Moolenaar }
195679bf189SMarcel Moolenaar
196679bf189SMarcel Moolenaar ATF_TEST_CASE_WITHOUT_HEAD(expect_death_but_pass);
ATF_TEST_CASE_BODY(expect_death_but_pass)197679bf189SMarcel Moolenaar ATF_TEST_CASE_BODY(expect_death_but_pass)
198679bf189SMarcel Moolenaar {
199679bf189SMarcel Moolenaar expect_death("Call won't die");
200679bf189SMarcel Moolenaar }
201679bf189SMarcel Moolenaar
202679bf189SMarcel Moolenaar ATF_TEST_CASE(expect_timeout_and_hang);
ATF_TEST_CASE_HEAD(expect_timeout_and_hang)203679bf189SMarcel Moolenaar ATF_TEST_CASE_HEAD(expect_timeout_and_hang)
204679bf189SMarcel Moolenaar {
205679bf189SMarcel Moolenaar set_md_var("timeout", "1");
206679bf189SMarcel Moolenaar }
ATF_TEST_CASE_BODY(expect_timeout_and_hang)207679bf189SMarcel Moolenaar ATF_TEST_CASE_BODY(expect_timeout_and_hang)
208679bf189SMarcel Moolenaar {
209679bf189SMarcel Moolenaar expect_timeout("Will overrun");
210679bf189SMarcel Moolenaar ::sleep(5);
211679bf189SMarcel Moolenaar }
212679bf189SMarcel Moolenaar
213679bf189SMarcel Moolenaar ATF_TEST_CASE(expect_timeout_but_pass);
ATF_TEST_CASE_HEAD(expect_timeout_but_pass)214679bf189SMarcel Moolenaar ATF_TEST_CASE_HEAD(expect_timeout_but_pass)
215679bf189SMarcel Moolenaar {
216679bf189SMarcel Moolenaar set_md_var("timeout", "1");
217679bf189SMarcel Moolenaar }
ATF_TEST_CASE_BODY(expect_timeout_but_pass)218679bf189SMarcel Moolenaar ATF_TEST_CASE_BODY(expect_timeout_but_pass)
219679bf189SMarcel Moolenaar {
220679bf189SMarcel Moolenaar expect_timeout("Will just exit");
221679bf189SMarcel Moolenaar }
222679bf189SMarcel Moolenaar
223679bf189SMarcel Moolenaar // ------------------------------------------------------------------------
224679bf189SMarcel Moolenaar // Helper tests for "t_meta_data".
225679bf189SMarcel Moolenaar // ------------------------------------------------------------------------
226679bf189SMarcel Moolenaar
227679bf189SMarcel Moolenaar ATF_TEST_CASE(metadata_no_descr);
ATF_TEST_CASE_HEAD(metadata_no_descr)228679bf189SMarcel Moolenaar ATF_TEST_CASE_HEAD(metadata_no_descr)
229679bf189SMarcel Moolenaar {
230679bf189SMarcel Moolenaar }
ATF_TEST_CASE_BODY(metadata_no_descr)231679bf189SMarcel Moolenaar ATF_TEST_CASE_BODY(metadata_no_descr)
232679bf189SMarcel Moolenaar {
233679bf189SMarcel Moolenaar }
234679bf189SMarcel Moolenaar
235679bf189SMarcel Moolenaar ATF_TEST_CASE_WITHOUT_HEAD(metadata_no_head);
ATF_TEST_CASE_BODY(metadata_no_head)236679bf189SMarcel Moolenaar ATF_TEST_CASE_BODY(metadata_no_head)
237679bf189SMarcel Moolenaar {
238679bf189SMarcel Moolenaar }
239679bf189SMarcel Moolenaar
240679bf189SMarcel Moolenaar // ------------------------------------------------------------------------
241679bf189SMarcel Moolenaar // Helper tests for "t_srcdir".
242679bf189SMarcel Moolenaar // ------------------------------------------------------------------------
243679bf189SMarcel Moolenaar
244679bf189SMarcel Moolenaar ATF_TEST_CASE(srcdir_exists);
ATF_TEST_CASE_HEAD(srcdir_exists)245679bf189SMarcel Moolenaar ATF_TEST_CASE_HEAD(srcdir_exists)
246679bf189SMarcel Moolenaar {
247679bf189SMarcel Moolenaar set_md_var("descr", "Helper test case for the t_srcdir test program");
248679bf189SMarcel Moolenaar }
ATF_TEST_CASE_BODY(srcdir_exists)249679bf189SMarcel Moolenaar ATF_TEST_CASE_BODY(srcdir_exists)
250679bf189SMarcel Moolenaar {
251679bf189SMarcel Moolenaar if (!atf::fs::exists(atf::fs::path(get_config_var("srcdir")) /
252679bf189SMarcel Moolenaar "datafile"))
253679bf189SMarcel Moolenaar ATF_FAIL("Cannot find datafile");
254679bf189SMarcel Moolenaar }
255679bf189SMarcel Moolenaar
256679bf189SMarcel Moolenaar // ------------------------------------------------------------------------
257679bf189SMarcel Moolenaar // Helper tests for "t_result".
258679bf189SMarcel Moolenaar // ------------------------------------------------------------------------
259679bf189SMarcel Moolenaar
260679bf189SMarcel Moolenaar ATF_TEST_CASE(result_pass);
ATF_TEST_CASE_HEAD(result_pass)261679bf189SMarcel Moolenaar ATF_TEST_CASE_HEAD(result_pass) { }
ATF_TEST_CASE_BODY(result_pass)262679bf189SMarcel Moolenaar ATF_TEST_CASE_BODY(result_pass)
263679bf189SMarcel Moolenaar {
264679bf189SMarcel Moolenaar std::cout << "msg\n";
265679bf189SMarcel Moolenaar }
266679bf189SMarcel Moolenaar
267679bf189SMarcel Moolenaar ATF_TEST_CASE(result_fail);
ATF_TEST_CASE_HEAD(result_fail)268679bf189SMarcel Moolenaar ATF_TEST_CASE_HEAD(result_fail) { }
ATF_TEST_CASE_BODY(result_fail)269679bf189SMarcel Moolenaar ATF_TEST_CASE_BODY(result_fail)
270679bf189SMarcel Moolenaar {
271679bf189SMarcel Moolenaar std::cout << "msg\n";
272679bf189SMarcel Moolenaar ATF_FAIL("Failure reason");
273679bf189SMarcel Moolenaar }
274679bf189SMarcel Moolenaar
275679bf189SMarcel Moolenaar ATF_TEST_CASE(result_skip);
ATF_TEST_CASE_HEAD(result_skip)276679bf189SMarcel Moolenaar ATF_TEST_CASE_HEAD(result_skip) { }
ATF_TEST_CASE_BODY(result_skip)277679bf189SMarcel Moolenaar ATF_TEST_CASE_BODY(result_skip)
278679bf189SMarcel Moolenaar {
279679bf189SMarcel Moolenaar std::cout << "msg\n";
280679bf189SMarcel Moolenaar ATF_SKIP("Skipped reason");
281679bf189SMarcel Moolenaar }
282679bf189SMarcel Moolenaar
283679bf189SMarcel Moolenaar ATF_TEST_CASE(result_newlines_fail);
ATF_TEST_CASE_HEAD(result_newlines_fail)284679bf189SMarcel Moolenaar ATF_TEST_CASE_HEAD(result_newlines_fail)
285679bf189SMarcel Moolenaar {
286679bf189SMarcel Moolenaar set_md_var("descr", "Helper test case for the t_result test program");
287679bf189SMarcel Moolenaar }
ATF_TEST_CASE_BODY(result_newlines_fail)288679bf189SMarcel Moolenaar ATF_TEST_CASE_BODY(result_newlines_fail)
289679bf189SMarcel Moolenaar {
290679bf189SMarcel Moolenaar ATF_FAIL("First line\nSecond line");
291679bf189SMarcel Moolenaar }
292679bf189SMarcel Moolenaar
293679bf189SMarcel Moolenaar ATF_TEST_CASE(result_newlines_skip);
ATF_TEST_CASE_HEAD(result_newlines_skip)294679bf189SMarcel Moolenaar ATF_TEST_CASE_HEAD(result_newlines_skip)
295679bf189SMarcel Moolenaar {
296679bf189SMarcel Moolenaar set_md_var("descr", "Helper test case for the t_result test program");
297679bf189SMarcel Moolenaar }
ATF_TEST_CASE_BODY(result_newlines_skip)298679bf189SMarcel Moolenaar ATF_TEST_CASE_BODY(result_newlines_skip)
299679bf189SMarcel Moolenaar {
300679bf189SMarcel Moolenaar ATF_SKIP("First line\nSecond line");
301679bf189SMarcel Moolenaar }
302679bf189SMarcel Moolenaar
303679bf189SMarcel Moolenaar ATF_TEST_CASE(result_exception);
ATF_TEST_CASE_HEAD(result_exception)304679bf189SMarcel Moolenaar ATF_TEST_CASE_HEAD(result_exception) { }
ATF_TEST_CASE_BODY(result_exception)305679bf189SMarcel Moolenaar ATF_TEST_CASE_BODY(result_exception)
306679bf189SMarcel Moolenaar {
307679bf189SMarcel Moolenaar throw std::runtime_error("This is unhandled");
308679bf189SMarcel Moolenaar }
309679bf189SMarcel Moolenaar
310679bf189SMarcel Moolenaar // ------------------------------------------------------------------------
311679bf189SMarcel Moolenaar // Main.
312679bf189SMarcel Moolenaar // ------------------------------------------------------------------------
313679bf189SMarcel Moolenaar
ATF_INIT_TEST_CASES(tcs)314679bf189SMarcel Moolenaar ATF_INIT_TEST_CASES(tcs)
315679bf189SMarcel Moolenaar {
316679bf189SMarcel Moolenaar // Add helper tests for t_config.
317679bf189SMarcel Moolenaar ATF_ADD_TEST_CASE(tcs, config_unset);
318679bf189SMarcel Moolenaar ATF_ADD_TEST_CASE(tcs, config_empty);
319679bf189SMarcel Moolenaar ATF_ADD_TEST_CASE(tcs, config_value);
320679bf189SMarcel Moolenaar ATF_ADD_TEST_CASE(tcs, config_multi_value);
321679bf189SMarcel Moolenaar
322679bf189SMarcel Moolenaar // Add helper tests for t_expect.
323679bf189SMarcel Moolenaar ATF_ADD_TEST_CASE(tcs, expect_pass_and_pass);
324679bf189SMarcel Moolenaar ATF_ADD_TEST_CASE(tcs, expect_pass_but_fail_requirement);
325679bf189SMarcel Moolenaar ATF_ADD_TEST_CASE(tcs, expect_pass_but_fail_check);
326679bf189SMarcel Moolenaar ATF_ADD_TEST_CASE(tcs, expect_fail_and_fail_requirement);
327679bf189SMarcel Moolenaar ATF_ADD_TEST_CASE(tcs, expect_fail_and_fail_check);
328679bf189SMarcel Moolenaar ATF_ADD_TEST_CASE(tcs, expect_fail_but_pass);
329679bf189SMarcel Moolenaar ATF_ADD_TEST_CASE(tcs, expect_exit_any_and_exit);
330679bf189SMarcel Moolenaar ATF_ADD_TEST_CASE(tcs, expect_exit_code_and_exit);
331679bf189SMarcel Moolenaar ATF_ADD_TEST_CASE(tcs, expect_exit_but_pass);
332679bf189SMarcel Moolenaar ATF_ADD_TEST_CASE(tcs, expect_signal_any_and_signal);
333679bf189SMarcel Moolenaar ATF_ADD_TEST_CASE(tcs, expect_signal_no_and_signal);
334679bf189SMarcel Moolenaar ATF_ADD_TEST_CASE(tcs, expect_signal_but_pass);
335679bf189SMarcel Moolenaar ATF_ADD_TEST_CASE(tcs, expect_death_and_exit);
336679bf189SMarcel Moolenaar ATF_ADD_TEST_CASE(tcs, expect_death_and_signal);
337679bf189SMarcel Moolenaar ATF_ADD_TEST_CASE(tcs, expect_death_but_pass);
338679bf189SMarcel Moolenaar ATF_ADD_TEST_CASE(tcs, expect_timeout_and_hang);
339679bf189SMarcel Moolenaar ATF_ADD_TEST_CASE(tcs, expect_timeout_but_pass);
340679bf189SMarcel Moolenaar
341679bf189SMarcel Moolenaar // Add helper tests for t_meta_data.
342679bf189SMarcel Moolenaar ATF_ADD_TEST_CASE(tcs, metadata_no_descr);
343679bf189SMarcel Moolenaar ATF_ADD_TEST_CASE(tcs, metadata_no_head);
344679bf189SMarcel Moolenaar
345679bf189SMarcel Moolenaar // Add helper tests for t_srcdir.
346679bf189SMarcel Moolenaar ATF_ADD_TEST_CASE(tcs, srcdir_exists);
347679bf189SMarcel Moolenaar
348679bf189SMarcel Moolenaar // Add helper tests for t_result.
349679bf189SMarcel Moolenaar ATF_ADD_TEST_CASE(tcs, result_pass);
350679bf189SMarcel Moolenaar ATF_ADD_TEST_CASE(tcs, result_fail);
351679bf189SMarcel Moolenaar ATF_ADD_TEST_CASE(tcs, result_skip);
352679bf189SMarcel Moolenaar ATF_ADD_TEST_CASE(tcs, result_newlines_fail);
353679bf189SMarcel Moolenaar ATF_ADD_TEST_CASE(tcs, result_newlines_skip);
354679bf189SMarcel Moolenaar ATF_ADD_TEST_CASE(tcs, result_exception);
355679bf189SMarcel Moolenaar }
356