The libinput test suite is based on
[Check](http://check.sourceforge.net/doc/check_html/) and runs automatically
during `make check`. Check itself is wrapped into a libinput-specific test
-suite called *litest*. Tests are found in `$srcdir/test/`, the test binaries are
-prefixed with `test-` and can be run individually.
+suite called *litest*. Tests are found in `$srcdir/test/`, the main test
+suite is `libinput-test-suite-runner`.
@section test-config X.Org config to avoid interference
Each test function is (usually) run with one or more specific devices.
The `--list` commandline argument shows the list of suites and tests.
@code
-$ ./test/test-device --list
+$ ./test/libinput-test-suite-runner --list
device:wheel:
wheel only
blackwidow
basic shell-style function name matching. For example:
@code
-$ ./test/test-touchpad --filter-test="*1fg_tap*"
+$ ./test/libinput-test-suite-runner --filter-test="*1fg_tap*"
@endcode
The `--filter-device` argument enables selective running of tests through
litest-specific shortnames, see the output of `--list`. For example:
@code
-$ ./test/test-touchpad --filter-device="synaptics*"
+$ ./test/libinput-test-suite-runner --filter-device="synaptics*"
@endcode
The `--filter-group` argument enables selective running of test groups
litest-specific test groups, see the output of `--list`. For example:
@code
-$ ./test/test-touchpad --filter-group="touchpad:*hover*"
+$ ./test/libinput-test-suite-runner --filter-group="touchpad:*hover*"
@endcode
The `--filter-device` and `--filter-group` arguments can be combined with
environment variable, if set, also enables verbose mode.
@code
-$ ./test/test-device --verbose
+$ ./test/libinput-test-suite-runner --verbose
$ LITEST_VERBOSE=1 make check
@endcode
liblitest_la_CFLAGS += $(LIBUNWIND_CFLAGS)
endif
-run_tests = \
- test-touchpad \
- test-touchpad-tap \
- test-touchpad-buttons \
- test-pad \
- test-tablet \
- test-device \
- test-gestures \
- test-pointer \
- test-touch \
- test-trackball \
- test-trackpoint \
- test-udev \
- test-path \
- test-log \
- test-misc \
- test-keyboard \
- test-litest-selftest
+run_tests = libinput-test-suite-runner \
+ test-litest-selftest
build_tests = \
test-build-cxx \
.NOTPARALLEL:
-test_udev_SOURCES = udev.c
-test_udev_LDADD = $(TEST_LIBS)
-test_udev_LDFLAGS = -no-install
-
-test_path_SOURCES = path.c
-test_path_LDADD = $(TEST_LIBS)
-test_path_LDFLAGS = -no-install
-
-test_pointer_SOURCES = pointer.c
-test_pointer_LDADD = $(TEST_LIBS)
-test_pointer_LDFLAGS = -no-install
-
-test_touch_SOURCES = touch.c
-test_touch_LDADD = $(TEST_LIBS)
-test_touch_LDFLAGS = -no-install
-
-test_log_SOURCES = log.c
-test_log_LDADD = $(TEST_LIBS)
-test_log_LDFLAGS = -no-install
-
-test_tablet_SOURCES = tablet.c
-test_tablet_LDADD = $(TEST_LIBS)
-test_tablet_LDFLAGS = -static
-
-test_pad_SOURCES = pad.c
-test_pad_LDADD = $(TEST_LIBS)
-test_pad_LDFLAGS = -static
-
-test_touchpad_SOURCES = touchpad.c
-test_touchpad_LDADD = $(TEST_LIBS)
-test_touchpad_LDFLAGS = -no-install
-
-test_touchpad_tap_SOURCES = touchpad-tap.c
-test_touchpad_tap_LDADD = $(TEST_LIBS)
-test_touchpad_tap_LDFLAGS = -no-install
-
-test_touchpad_buttons_SOURCES = touchpad-buttons.c
-test_touchpad_buttons_LDADD = $(TEST_LIBS)
-test_touchpad_buttons_LDFLAGS = -no-install
-
-test_trackpoint_SOURCES = trackpoint.c
-test_trackpoint_LDADD = $(TEST_LIBS)
-test_trackpoint_LDFLAGS = -no-install
-
-test_trackball_SOURCES = trackball.c
-test_trackball_LDADD = $(TEST_LIBS)
-test_trackball_LDFLAGS = -no-install
-
-test_misc_SOURCES = misc.c
-test_misc_CFLAGS= $(AM_CFLAGS) -DLIBINPUT_LT_VERSION="\"$(LIBINPUT_LT_VERSION)\""
-test_misc_LDADD = $(TEST_LIBS)
-test_misc_LDFLAGS = -no-install
-
-test_keyboard_SOURCES = keyboard.c
-test_keyboard_LDADD = $(TEST_LIBS)
-test_keyboard_LDFLAGS = -no-install
-
-test_device_SOURCES = device.c
-test_device_LDADD = $(TEST_LIBS)
-test_device_LDFLAGS = -no-install
-
-test_gestures_SOURCES = gestures.c
-test_gestures_LDADD = $(TEST_LIBS)
-test_gestures_LDFLAGS = -no-install
+libinput_test_suite_runner_SOURCES = udev.c \
+ path.c \
+ pointer.c \
+ touch.c \
+ log.c \
+ tablet.c \
+ pad.c \
+ touchpad.c \
+ touchpad-tap.c \
+ touchpad-buttons.c \
+ trackpoint.c \
+ trackball.c \
+ misc.c \
+ keyboard.c \
+ device.c \
+ gestures.c
+
+libinput_test_suite_runner_CFLAGS = $(AM_CFLAGS) -DLIBINPUT_LT_VERSION="\"$(LIBINPUT_LT_VERSION)\""
+libinput_test_suite_runner_LDADD = $(TEST_LIBS)
+libinput_test_suite_runner_LDFLAGS = -no-install
test_litest_selftest_SOURCES = litest-selftest.c litest.c litest-int.h litest.h
test_litest_selftest_CFLAGS = -DLITEST_DISABLE_BACKTRACE_LOGGING -DLITEST_NO_MAIN $(liblitest_la_CFLAGS)
END_TEST
void
-litest_setup_tests(void)
+litest_setup_tests_device(void)
{
struct range abs_range = { 0, ABS_MISC };
struct range abs_mt_range = { ABS_MT_SLOT + 1, ABS_CNT };
END_TEST
void
-litest_setup_tests(void)
+litest_setup_tests_gestures(void)
{
/* N, NE, ... */
struct range cardinals = { 0, 8 };
END_TEST
void
-litest_setup_tests(void)
+litest_setup_tests_keyboard(void)
{
litest_add_no_device("keyboard:seat key count", keyboard_seat_key_count);
litest_add_no_device("keyboard:key counting", keyboard_ignore_no_pressed_release);
if (mode == LITEST_MODE_ERROR)
return EXIT_FAILURE;
- litest_setup_tests();
+ litest_setup_tests_udev();
+ litest_setup_tests_path();
+ litest_setup_tests_pointer();
+ litest_setup_tests_touch();
+ litest_setup_tests_log();
+ litest_setup_tests_tablet();
+ litest_setup_tests_pad();
+ litest_setup_tests_touchpad();
+ litest_setup_tests_touchpad_tap();
+ litest_setup_tests_touchpad_buttons();
+ litest_setup_tests_trackpoint();
+ litest_setup_tests_trackball();
+ litest_setup_tests_misc();
+ litest_setup_tests_keyboard();
+ litest_setup_tests_device();
+ litest_setup_tests_gestures();
if (mode == LITEST_MODE_LIST) {
litest_list_tests(&all_tests);
#include <libinput.h>
#include <math.h>
+extern void litest_setup_tests_udev(void);
+extern void litest_setup_tests_path(void);
+extern void litest_setup_tests_pointer(void);
+extern void litest_setup_tests_touch(void);
+extern void litest_setup_tests_log(void);
+extern void litest_setup_tests_tablet(void);
+extern void litest_setup_tests_pad(void);
+extern void litest_setup_tests_touchpad(void);
+extern void litest_setup_tests_touchpad_tap(void);
+extern void litest_setup_tests_touchpad_buttons(void);
+extern void litest_setup_tests_trackpoint(void);
+extern void litest_setup_tests_trackball(void);
+extern void litest_setup_tests_misc(void);
+extern void litest_setup_tests_keyboard(void);
+extern void litest_setup_tests_device(void);
+extern void litest_setup_tests_gestures(void);
+
void
litest_fail_condition(const char *file,
int line,
void *func,
const struct range *range);
-extern void
-litest_setup_tests(void);
-
struct litest_device *
litest_create_device(enum litest_device_type which);
END_TEST
void
-litest_setup_tests(void)
+litest_setup_tests_log(void)
{
litest_add_no_device("log:defaults", log_default_priority);
litest_add_no_device("log:logging", log_handler_invoked);
END_TEST
void
-litest_setup_tests(void)
+litest_setup_tests_misc(void)
{
litest_add_no_device("events:conversion", event_conversion_device_notify);
litest_add_for_device("events:conversion", event_conversion_pointer, LITEST_MOUSE);
END_TEST
void
-litest_setup_tests(void)
+litest_setup_tests_pad(void)
{
litest_add("pad:cap", pad_cap, LITEST_TABLET_PAD, LITEST_ANY);
litest_add("pad:cap", pad_no_cap, LITEST_ANY, LITEST_TABLET_PAD);
END_TEST
void
-litest_setup_tests(void)
+litest_setup_tests_path(void)
{
litest_add_no_device("path:create", path_create_NULL);
litest_add_no_device("path:create", path_create_invalid);
END_TEST
void
-litest_setup_tests(void)
+litest_setup_tests_pointer(void)
{
struct range axis_range = {ABS_X, ABS_Y + 1};
struct range compass = {0, 7}; /* cardinal directions */
END_TEST
void
-litest_setup_tests(void)
+litest_setup_tests_tablet(void)
{
litest_add("tablet:tool", tool_ref, LITEST_TABLET | LITEST_TOOL_SERIAL, LITEST_ANY);
litest_add_no_device("tablet:tool", tool_capabilities);
END_TEST
void
-litest_setup_tests(void)
+litest_setup_tests_touch(void)
{
struct range axes = { ABS_X, ABS_Y + 1};
END_TEST
void
-litest_setup_tests(void)
+litest_setup_tests_touchpad_buttons(void)
{
litest_add("touchpad:clickfinger", touchpad_1fg_clickfinger, LITEST_CLICKPAD, LITEST_ANY);
litest_add("touchpad:clickfinger", touchpad_1fg_clickfinger_no_touch, LITEST_CLICKPAD, LITEST_ANY);
END_TEST
void
-litest_setup_tests(void)
+litest_setup_tests_touchpad_tap(void)
{
struct range multitap_range = {3, 8};
END_TEST
void
-litest_setup_tests(void)
+litest_setup_tests_touchpad(void)
{
struct range axis_range = {ABS_X, ABS_Y + 1};
END_TEST
void
-litest_setup_tests(void)
+litest_setup_tests_trackball(void)
{
litest_add("trackball:rotation", trackball_rotation_config_defaults, LITEST_TRACKBALL, LITEST_ANY);
litest_add("trackball:rotation", trackball_rotation_config_invalid_range, LITEST_TRACKBALL, LITEST_ANY);
END_TEST
void
-litest_setup_tests(void)
+litest_setup_tests_trackpoint(void)
{
litest_add("trackpoint:middlebutton", trackpoint_middlebutton, LITEST_POINTINGSTICK, LITEST_ANY);
litest_add("trackpoint:middlebutton", trackpoint_middlebutton_noscroll, LITEST_POINTINGSTICK, LITEST_ANY);
END_TEST
void
-litest_setup_tests(void)
+litest_setup_tests_udev(void)
{
litest_add_no_device("udev:create", udev_create_NULL);
litest_add_no_device("udev:create", udev_create_seat0);