From 0cfde0f95fc5c2bcea9b31b0700e4c81be9235e0 Mon Sep 17 00:00:00 2001 From: Peter Hutterer Date: Tue, 15 Oct 2024 15:46:07 +1000 Subject: [PATCH] test: make the utils test a "pure" litest-runner test Now that we have the runner let's use it directly for this set of simple test. Part-of: --- meson.build | 6 +-- test/test-utils.c | 122 +++++++++++++++++++++++++++------------------- 2 files changed, 74 insertions(+), 54 deletions(-) diff --git a/meson.build b/meson.build index d5715aec..8511976c 100644 --- a/meson.build +++ b/meson.build @@ -869,8 +869,8 @@ if get_option('tests') meson.current_build_dir() / '90-libinput-fuzz-override-litest.rules') + def_no_main = '-DLITEST_NO_MAIN' if dep_check.found() - def_no_main = '-DLITEST_NO_MAIN' def_disable_backtrace = '-DLITEST_DISABLE_BACKTRACE_LOGGING' defs_litest_selftest = [ def_no_main, @@ -904,9 +904,6 @@ if get_option('tests') suite : ['all']) test_utils_sources = [ - # We need one test device for __start_test_session to exist - # Could be fixed, but for now: meh - 'test/litest-device-mouse.c', 'test/test-utils.c', 'test/litest-runner.c', 'test/litest.c', @@ -914,6 +911,7 @@ if get_option('tests') test_utils = executable('libinput-test-utils', test_utils_sources, include_directories : [includes_src, includes_include], + c_args : [def_no_main], dependencies : deps_litest, install_dir : libinput_tool_path, install : get_option('install-tests')) diff --git a/test/test-utils.c b/test/test-utils.c index 60ab6147..072bed57 100644 --- a/test/test-utils.c +++ b/test/test-utils.c @@ -29,6 +29,7 @@ #include #include "litest.h" +#include "litest-runner.h" #include "util-list.h" #include "util-strings.h" #include "util-time.h" @@ -1825,55 +1826,76 @@ START_TEST(stringbuf_test) } END_TEST -TEST_COLLECTION(utils) +int main(void) { - litest_add_deviceless(array_for_each); - - litest_add_deviceless(bitfield_helpers); - litest_add_deviceless(matrix_helpers); - litest_add_deviceless(ratelimit_helpers); - litest_add_deviceless(dpi_parser); - litest_add_deviceless(wheel_click_parser); - litest_add_deviceless(wheel_click_count_parser); - litest_add_deviceless(dimension_prop_parser); - litest_add_deviceless(reliability_prop_parser); - litest_add_deviceless(calibration_prop_parser); - litest_add_deviceless(range_prop_parser); - litest_add_deviceless(boolean_prop_parser); - litest_add_deviceless(evcode_prop_parser); - litest_add_deviceless(input_prop_parser); - litest_add_deviceless(evdev_abs_parser); - litest_add_deviceless(safe_atoi_test); - litest_add_deviceless(safe_atoi_base_16_test); - litest_add_deviceless(safe_atoi_base_8_test); - litest_add_deviceless(safe_atou_test); - litest_add_deviceless(safe_atou_base_16_test); - litest_add_deviceless(safe_atou_base_8_test); - litest_add_deviceless(safe_atod_test); - litest_add_deviceless(strsplit_test); - litest_add_deviceless(strv_for_each_test); - litest_add_deviceless(double_array_from_string_test); - litest_add_deviceless(strargv_test); - litest_add_deviceless(kvsplit_double_test); - litest_add_deviceless(strjoin_test); - litest_add_deviceless(strstrip_test); - litest_add_deviceless(strendswith_test); - litest_add_deviceless(strstartswith_test); - litest_add_deviceless(strsanitize_test); - litest_add_deviceless(time_conversion); - litest_add_deviceless(human_time); - - litest_add_deviceless(list_test_insert); - litest_add_deviceless(list_test_append); - litest_add_deviceless(list_test_foreach); - litest_add_deviceless(strverscmp_test); - litest_add_deviceless(streq_test); - litest_add_deviceless(strneq_test); - litest_add_deviceless(trunkname_test); - litest_add_deviceless(basename_test); - - litest_add_deviceless(absinfo_normalize_value_test); - - litest_add_deviceless(range_test); - litest_add_deviceless(stringbuf_test); + struct litest_runner *runner = litest_runner_new(); + + /* not worth forking the tests here */ + litest_runner_set_num_parallel(runner, 0); + +#define ADD_TEST(func_) do { \ + struct litest_runner_test_description tdesc = { \ + .func = func_, \ + };\ + snprintf(tdesc.name, sizeof(tdesc.name), # func_); \ + litest_runner_add_test(runner, &tdesc); \ +} while(0) + + ADD_TEST(array_for_each); + + ADD_TEST(bitfield_helpers); + ADD_TEST(matrix_helpers); + ADD_TEST(ratelimit_helpers); + ADD_TEST(dpi_parser); + ADD_TEST(wheel_click_parser); + ADD_TEST(wheel_click_count_parser); + ADD_TEST(dimension_prop_parser); + ADD_TEST(reliability_prop_parser); + ADD_TEST(calibration_prop_parser); + ADD_TEST(range_prop_parser); + ADD_TEST(boolean_prop_parser); + ADD_TEST(evcode_prop_parser); + ADD_TEST(input_prop_parser); + ADD_TEST(evdev_abs_parser); + ADD_TEST(safe_atoi_test); + ADD_TEST(safe_atoi_base_16_test); + ADD_TEST(safe_atoi_base_8_test); + ADD_TEST(safe_atou_test); + ADD_TEST(safe_atou_base_16_test); + ADD_TEST(safe_atou_base_8_test); + ADD_TEST(safe_atod_test); + ADD_TEST(strsplit_test); + ADD_TEST(strv_for_each_test); + ADD_TEST(double_array_from_string_test); + ADD_TEST(strargv_test); + ADD_TEST(kvsplit_double_test); + ADD_TEST(strjoin_test); + ADD_TEST(strstrip_test); + ADD_TEST(strendswith_test); + ADD_TEST(strstartswith_test); + ADD_TEST(strsanitize_test); + ADD_TEST(time_conversion); + ADD_TEST(human_time); + + ADD_TEST(list_test_insert); + ADD_TEST(list_test_append); + ADD_TEST(list_test_foreach); + ADD_TEST(strverscmp_test); + ADD_TEST(streq_test); + ADD_TEST(strneq_test); + ADD_TEST(trunkname_test); + ADD_TEST(basename_test); + + ADD_TEST(absinfo_normalize_value_test); + + ADD_TEST(range_test); + ADD_TEST(stringbuf_test); + + enum litest_runner_result result = litest_runner_run_tests(runner); + litest_runner_destroy(runner); + + if (result == LITEST_SKIP) + return 77; + + return result - LITEST_PASS; } -- 2.34.1