test: make the utils test a "pure" litest-runner test
authorPeter Hutterer <peter.hutterer@who-t.net>
Tue, 15 Oct 2024 05:46:07 +0000 (15:46 +1000)
committerMarge Bot <emma+marge@anholt.net>
Wed, 30 Oct 2024 23:20:42 +0000 (23:20 +0000)
Now that we have the runner let's use it directly for this set of simple
test.

Part-of: <https://gitlab.freedesktop.org/libinput/libinput/-/merge_requests/1067>

meson.build
test/test-utils.c

index d5715aec97aafbdd292337c5786e911af3d8d56a..8511976c92bd80d3bd2ec144def77fbc1dcd45fe 100644 (file)
@@ -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'))
index 60ab6147b4a64b9964242719dde632314bae152f..072bed57e74a3a328c0d311b9f4608bb944b54c8 100644 (file)
@@ -29,6 +29,7 @@
 #include <unistd.h>
 
 #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;
 }