mirror of
https://gitlab.freedesktop.org/libevdev/libevdev.git
synced 2026-05-08 08:58:06 +02:00
test: automate test suite handling
Move all tests to a special section, then loop through that section to fetch all test suite. The result is that new tests only need to add the source files without having to update everything else as well. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
This commit is contained in:
parent
bc5c72571d
commit
83ce8eb5be
9 changed files with 29 additions and 30 deletions
|
|
@ -28,6 +28,20 @@
|
||||||
#ifndef _TEST_COMMON_H_
|
#ifndef _TEST_COMMON_H_
|
||||||
#define _TEST_COMMON_H_
|
#define _TEST_COMMON_H_
|
||||||
|
|
||||||
|
struct libevdev_test {
|
||||||
|
const char *name;
|
||||||
|
Suite* (*setup)(void);
|
||||||
|
} __attribute__((aligned(16)));
|
||||||
|
|
||||||
|
#define TEST_SUITE(name) \
|
||||||
|
static Suite* (name##_setup)(void); \
|
||||||
|
static const struct libevdev_test _test \
|
||||||
|
__attribute__((used)) \
|
||||||
|
__attribute__((section ("test_section"))) = { \
|
||||||
|
#name, name##_setup \
|
||||||
|
}; \
|
||||||
|
static Suite* (name##_setup)(void)
|
||||||
|
|
||||||
#define TEST_DEVICE_NAME "libevdev test device"
|
#define TEST_DEVICE_NAME "libevdev test device"
|
||||||
|
|
||||||
#include "test-common-uinput.h"
|
#include "test-common-uinput.h"
|
||||||
|
|
|
||||||
|
|
@ -131,8 +131,7 @@ START_TEST(test_properties_invalid)
|
||||||
}
|
}
|
||||||
END_TEST
|
END_TEST
|
||||||
|
|
||||||
Suite *
|
TEST_SUITE(event_code_suite)
|
||||||
event_code_suite(void)
|
|
||||||
{
|
{
|
||||||
Suite *s = suite_create("Event codes");
|
Suite *s = suite_create("Event codes");
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -271,8 +271,7 @@ START_TEST(test_event_code)
|
||||||
}
|
}
|
||||||
END_TEST
|
END_TEST
|
||||||
|
|
||||||
Suite *
|
TEST_SUITE(event_name_suite)
|
||||||
event_name_suite(void)
|
|
||||||
{
|
{
|
||||||
Suite *s = suite_create("Event names");
|
Suite *s = suite_create("Event names");
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -326,8 +326,7 @@ START_TEST(test_queue_set_num_elements)
|
||||||
}
|
}
|
||||||
END_TEST
|
END_TEST
|
||||||
|
|
||||||
Suite *
|
TEST_SUITE(queue_suite)
|
||||||
queue_suite(void)
|
|
||||||
{
|
{
|
||||||
Suite *s = suite_create("Event queue");
|
Suite *s = suite_create("Event queue");
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -2140,8 +2140,7 @@ START_TEST(test_event_mt_value_setters_current_slot)
|
||||||
}
|
}
|
||||||
END_TEST
|
END_TEST
|
||||||
|
|
||||||
Suite *
|
TEST_SUITE(libevdev_events)
|
||||||
libevdev_events(void)
|
|
||||||
{
|
{
|
||||||
Suite *s = suite_create("libevdev event tests");
|
Suite *s = suite_create("libevdev event tests");
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1142,8 +1142,7 @@ START_TEST(test_led_same)
|
||||||
}
|
}
|
||||||
END_TEST
|
END_TEST
|
||||||
|
|
||||||
Suite *
|
TEST_SUITE(has_events)
|
||||||
libevdev_has_event_test(void)
|
|
||||||
{
|
{
|
||||||
Suite *s = suite_create("libevdev_has_event tests");
|
Suite *s = suite_create("libevdev_has_event tests");
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -683,8 +683,7 @@ START_TEST(test_clock_id_events)
|
||||||
}
|
}
|
||||||
END_TEST
|
END_TEST
|
||||||
|
|
||||||
Suite *
|
TEST_SUITE(libevdev_init_test)
|
||||||
libevdev_init_test(void)
|
|
||||||
{
|
{
|
||||||
Suite *s = suite_create("libevdev init tests");
|
Suite *s = suite_create("libevdev init tests");
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -32,14 +32,6 @@
|
||||||
|
|
||||||
#include "test-common.h"
|
#include "test-common.h"
|
||||||
|
|
||||||
extern Suite *event_name_suite(void);
|
|
||||||
extern Suite *event_code_suite(void);
|
|
||||||
extern Suite *libevdev_init_test(void);
|
|
||||||
extern Suite *queue_suite(void);
|
|
||||||
extern Suite *libevdev_has_event_test(void);
|
|
||||||
extern Suite *libevdev_events(void);
|
|
||||||
extern Suite *uinput_suite(void);
|
|
||||||
|
|
||||||
static int
|
static int
|
||||||
is_debugger_attached(void)
|
is_debugger_attached(void)
|
||||||
{
|
{
|
||||||
|
|
@ -68,8 +60,11 @@ is_debugger_attached(void)
|
||||||
return rc;
|
return rc;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
extern const struct libevdev_test __start_test_section, __stop_test_section;
|
||||||
|
|
||||||
int main(void)
|
int main(void)
|
||||||
{
|
{
|
||||||
|
const struct libevdev_test *t;
|
||||||
const struct rlimit corelimit = {0, 0};
|
const struct rlimit corelimit = {0, 0};
|
||||||
int failed;
|
int failed;
|
||||||
|
|
||||||
|
|
@ -86,14 +81,11 @@ int main(void)
|
||||||
|
|
||||||
libevdev_set_log_function(test_logfunc_abort_on_error, NULL);
|
libevdev_set_log_function(test_logfunc_abort_on_error, NULL);
|
||||||
|
|
||||||
Suite *s = libevdev_has_event_test();
|
SRunner *sr = srunner_create(NULL);
|
||||||
SRunner *sr = srunner_create(s);
|
for (t = &__start_test_section; t < &__stop_test_section; t++) {
|
||||||
srunner_add_suite(sr, libevdev_events());
|
srunner_add_suite(sr, t->setup());
|
||||||
srunner_add_suite(sr, libevdev_init_test());
|
}
|
||||||
srunner_add_suite(sr, queue_suite());
|
|
||||||
srunner_add_suite(sr, event_name_suite());
|
|
||||||
srunner_add_suite(sr, event_code_suite());
|
|
||||||
srunner_add_suite(sr, uinput_suite());
|
|
||||||
srunner_run_all(sr, CK_NORMAL);
|
srunner_run_all(sr, CK_NORMAL);
|
||||||
|
|
||||||
failed = srunner_ntests_failed(sr);
|
failed = srunner_ntests_failed(sr);
|
||||||
|
|
|
||||||
|
|
@ -368,8 +368,7 @@ START_TEST(test_uinput_properties)
|
||||||
}
|
}
|
||||||
END_TEST
|
END_TEST
|
||||||
|
|
||||||
Suite *
|
TEST_SUITE(uinput_suite)
|
||||||
uinput_suite(void)
|
|
||||||
{
|
{
|
||||||
Suite *s = suite_create("libevdev uinput device tests");
|
Suite *s = suite_create("libevdev uinput device tests");
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue