1 /* 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 */ 36 enum test_result_code { 37 RESULT_OK = 0, 38 RESULT_SKIP = 77, 39 RESULT_FAIL = 1, 40 RESULT_HARD_ERROR = 99, 41 }; 42 43 struct weston_test; 44 struct 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 */ 54 enum 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 */ 64 struct 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; 79 80 /* test counts */ 81 unsigned counter; 82 unsigned passed; 83 unsigned skipped; 84 unsigned failed; 85 unsigned total; 86 }; 87 88 #endif /* WESTON_TESTSUITE_DATA_H */ 89