diff options
author | Peter Hutterer <peter.hutterer@who-t.net> | 2018-02-16 16:42:00 +1000 |
---|---|---|
committer | Peter Hutterer <peter.hutterer@who-t.net> | 2018-02-16 16:57:30 +1000 |
commit | 63880d6e1b6dc7614bd2022c4c350eb13326d09d (patch) | |
tree | e5f0d3c77677d780d09d633781615cf2a65ddb6e /test/test-udev.c | |
parent | 075e998b07503986cdd17e82bf0f0d695e21dc9e (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.c | 43 |
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); |