blob: 601c5e69f65e2190fd501bc1ed3f84a0d65e611f [file] [log] [blame]
Pekka Paalanenbabb3b32019-11-01 14:02:15 +02001/*
2 * Copyright 2019 Collabora, Ltd.
3 *
4 * Permission is hereby granted, free of charge, to any person obtaining
5 * a copy of this software and associated documentation files (the
6 * "Software"), to deal in the Software without restriction, including
7 * without limitation the rights to use, copy, modify, merge, publish,
8 * distribute, sublicense, and/or sell copies of the Software, and to
9 * permit persons to whom the Software is furnished to do so, subject to
10 * the following conditions:
11 *
12 * The above copyright notice and this permission notice (including the
13 * next paragraph) shall be included in all copies or substantial
14 * portions of the Software.
15 *
16 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
20 * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
21 * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
22 * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
23 * SOFTWARE.
24 */
25
26#ifndef WESTON_TESTSUITE_DATA_H
27#define WESTON_TESTSUITE_DATA_H
28
29/** Standard return codes
30 *
31 * Both Autotools and Meson use these codes as test program exit codes
32 * to denote the test result for the whole process.
33 *
34 * \ingroup testharness
35 */
36enum test_result_code {
37 RESULT_OK = 0,
38 RESULT_SKIP = 77,
39 RESULT_FAIL = 1,
40 RESULT_HARD_ERROR = 99,
41};
42
43struct weston_test;
44struct weston_compositor;
45
46/** Weston test types
47 *
48 * \sa weston_test_harness_execute_standalone
49 * weston_test_harness_execute_as_plugin
50 * weston_test_harness_execute_as_client
51 *
52 * \ingroup testharness_private
53 */
54enum test_type {
55 TEST_TYPE_STANDALONE,
56 TEST_TYPE_PLUGIN,
57 TEST_TYPE_CLIENT,
58};
59
60/** Test harness specific data for running tests
61 *
62 * \ingroup testharness_private
63 */
64struct wet_testsuite_data {
65 void (*run)(struct wet_testsuite_data *);
66
67 /* test definitions */
68 const struct weston_test_entry *tests;
69 unsigned tests_count;
70 int case_index;
71 enum test_type type;
72 struct weston_compositor *compositor;
73
74 /* client thread control */
75 int thread_event_pipe;
76
77 /* informational run state */
78 int fixture_iteration;
Pekka Paalanend91e63d2021-02-15 14:43:14 +020079 const char *fixture_name;
Pekka Paalanenbabb3b32019-11-01 14:02:15 +020080
81 /* test counts */
82 unsigned counter;
83 unsigned passed;
84 unsigned skipped;
85 unsigned failed;
86 unsigned total;
87};
88
89#endif /* WESTON_TESTSUITE_DATA_H */