From: Peter Hutterer Date: Wed, 26 Jun 2019 22:31:01 +0000 (+1000) Subject: meson: run the test suite per group X-Git-Tag: 1.13.901~4 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=7b9affcf4b42a203d64a42eeb63e8aaab49a317f;p=platform%2Fupstream%2Flibinput.git meson: run the test suite per group We can't run this in parallel so it doesn't gain us any speed advantage. If anything, it'll be slower because it's more setup time in between. But: meson doesn't display the result until the test suite finished, so having this broken up into smaller chunks means we're more likely to see a general failure early. And the failure should be quicker to reproduce as well. Signed-off-by: Peter Hutterer --- diff --git a/meson.build b/meson.build index 363fcd41..ce0c4fc2 100644 --- a/meson.build +++ b/meson.build @@ -897,10 +897,22 @@ if get_option('tests') install_dir : dir_man1, ) - test('libinput-test-suite-runner', - libinput_test_runner, - suite : ['all', 'valgrind', 'root', 'hardware'], - timeout : 1200) + # Update this list and the one in litest.c when new group names are + # required + groups = [ + 'config', 'context', 'device', 'events', 'gestures', 'keyboard', 'lid', + 'log', 'misc', 'pad', 'path', 'pointer', 'quirks', 'switch', 'tablet', + 'tablet-mode', 'tap', 'timer', 'totem', 'touch', 'touchpad', 'trackball', + 'trackpoint', 'udev', + ] + foreach group : groups + test('libinput-test-suite-@0@'.format(group), + libinput_test_runner, + suite : ['all', 'valgrind', 'root', 'hardware'], + args : ['--filter-group=@0@:*'.format(group)], + is_parallel : false, + timeout : 1200) + endforeach test('libinput-test-deviceless', libinput_test_runner, diff --git a/test/litest.c b/test/litest.c index 6521cbf3..b31a3f48 100644 --- a/test/litest.c +++ b/test/litest.c @@ -381,6 +381,25 @@ static struct suite * get_suite(const char *name) { struct suite *s; + /* this is the list meson calls, ensure we don't miss out on tests */ + const char * allowed_suites[] = { + "config:", "context:", "device:", "events:", "gestures:", + "keyboard:", "lid:", "log:", "misc:", "pad:", "path:", + "pointer:", "quirks:", "switch:", "tablet:", "tablet-mode:", + "tap:", "timer:", "totem:", "touch:", "touchpad:", + "trackball:", "trackpoint:", "udev:", + }; + const char **allowed; + bool found = false; + + ARRAY_FOR_EACH(allowed_suites, allowed) { + if (strneq(name, *allowed, strlen(*allowed))) { + found = true; + break; + } + } + if (!found) + litest_abort_msg("Suite name '%s' is not allowed\n", name); list_for_each(s, &all_tests, node) { if (streq(s->name, name))