summaryrefslogtreecommitdiff
path: root/test/test-udev.c
diff options
context:
space:
mode:
authorPeter Hutterer <peter.hutterer@who-t.net>2018-02-16 16:42:00 +1000
committerPeter Hutterer <peter.hutterer@who-t.net>2018-02-16 16:57:30 +1000
commit63880d6e1b6dc7614bd2022c4c350eb13326d09d (patch)
treee5f0d3c77677d780d09d633781615cf2a65ddb6e /test/test-udev.c
parent075e998b07503986cdd17e82bf0f0d695e21dc9e (diff)
udev: fix segfault when resuming before assigning a seat
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Diffstat (limited to 'test/test-udev.c')
-rw-r--r--test/test-udev.c43
1 files changed, 43 insertions, 0 deletions
diff --git a/test/test-udev.c b/test/test-udev.c
index 9eaff0bf..b3922824 100644
--- a/test/test-udev.c
+++ b/test/test-udev.c
@@ -394,6 +394,47 @@ START_TEST(udev_suspend_resume)
}
END_TEST
+START_TEST(udev_resume_before_seat)
+{
+ struct libinput *li;
+ struct udev *udev;
+ int rc;
+
+ udev = udev_new();
+ ck_assert(udev != NULL);
+
+ li = libinput_udev_create_context(&simple_interface, NULL, udev);
+ ck_assert(li != NULL);
+
+ rc = libinput_resume(li);
+ ck_assert_int_eq(rc, 0);
+
+ libinput_unref(li);
+ udev_unref(udev);
+}
+END_TEST
+
+START_TEST(udev_suspend_resume_before_seat)
+{
+ struct libinput *li;
+ struct udev *udev;
+ int rc;
+
+ udev = udev_new();
+ ck_assert(udev != NULL);
+
+ li = libinput_udev_create_context(&simple_interface, NULL, udev);
+ ck_assert(li != NULL);
+
+ libinput_suspend(li);
+ rc = libinput_resume(li);
+ ck_assert_int_eq(rc, 0);
+
+ libinput_unref(li);
+ udev_unref(udev);
+}
+END_TEST
+
START_TEST(udev_device_sysname)
{
struct libinput *li;
@@ -619,6 +660,8 @@ litest_setup_tests_udev(void)
litest_add_for_device("udev:suspend", udev_double_suspend, LITEST_SYNAPTICS_CLICKPAD_X220);
litest_add_for_device("udev:suspend", udev_double_resume, LITEST_SYNAPTICS_CLICKPAD_X220);
litest_add_for_device("udev:suspend", udev_suspend_resume, LITEST_SYNAPTICS_CLICKPAD_X220);
+ litest_add_for_device("udev:suspend", udev_resume_before_seat, LITEST_SYNAPTICS_CLICKPAD_X220);
+ litest_add_for_device("udev:suspend", udev_suspend_resume_before_seat, LITEST_SYNAPTICS_CLICKPAD_X220);
litest_add_for_device("udev:device events", udev_device_sysname, LITEST_SYNAPTICS_CLICKPAD_X220);
litest_add_for_device("udev:seat", udev_seat_recycle, LITEST_SYNAPTICS_CLICKPAD_X220);