From bacceb4c4813eac01192359991734119b04c3973 Mon Sep 17 00:00:00 2001 From: Peter Hutterer Date: Thu, 27 Jun 2013 10:23:23 +1000 Subject: [PATCH] test: add test case for device grabbing Signed-off-by: Peter Hutterer --- test/test-libevdev-init.c | 43 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) diff --git a/test/test-libevdev-init.c b/test/test-libevdev-init.c index b2bb125..abe1fc7 100644 --- a/test/test-libevdev-init.c +++ b/test/test-libevdev-init.c @@ -171,6 +171,45 @@ START_TEST(test_device_init_from_fd) } END_TEST +START_TEST(test_device_grab) +{ + struct uinput_device* uidev; + struct libevdev *dev; + int rc; + + rc = uinput_device_new_with_events(&uidev, + "test device", DEFAULT_IDS, + EV_SYN, SYN_REPORT, + EV_REL, REL_X, + EV_REL, REL_Y, + EV_REL, REL_WHEEL, + EV_KEY, BTN_LEFT, + EV_KEY, BTN_MIDDLE, + EV_KEY, BTN_RIGHT, + -1); + ck_assert_msg(rc == 0, "Failed to create uinput device: %s", strerror(-rc)); + + rc = libevdev_new_from_fd(uinput_device_get_fd(uidev), &dev); + ck_assert_msg(rc == 0, "Failed to init device: %s", strerror(-rc));; + + rc = libevdev_grab(dev, 0); + ck_assert_int_eq(rc, -EINVAL); + rc = libevdev_grab(dev, 1); + ck_assert_int_eq(rc, -EINVAL); + + rc = libevdev_grab(dev, LIBEVDEV_UNGRAB); + ck_assert_int_eq(rc, 0); + rc = libevdev_grab(dev, LIBEVDEV_GRAB); + ck_assert_int_eq(rc, 0); + rc = libevdev_grab(dev, LIBEVDEV_GRAB); + ck_assert_int_eq(rc, 0); + rc = libevdev_grab(dev, LIBEVDEV_UNGRAB); + ck_assert_int_eq(rc, 0); + + uinput_device_free(uidev); +} +END_TEST + Suite * libevdev_init_test(void) { @@ -192,5 +231,9 @@ libevdev_init_test(void) tcase_add_test(tc, test_device_init_from_fd); suite_add_tcase(s, tc); + tc = tcase_create("device grab"); + tcase_add_test(tc, test_device_grab); + suite_add_tcase(s, tc); + return s; }