summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Hutterer <peter.hutterer@who-t.net>2014-11-17 11:54:04 +1000
committerPeter Hutterer <peter.hutterer@who-t.net>2014-11-18 09:04:03 +1000
commitcf4adee09b0da4bfb2df2988d46ac95f90eeac6b (patch)
tree69d7b1a6955bb5fb5ddc9cfe498ba6d6026e7071
parentd68eb35378abad21f7f987896d80e684b3a7b306 (diff)
downloadlibevdev-cf4adee09b0da4bfb2df2988d46ac95f90eeac6b.tar.gz
test: add test case for grab calls on invalid devices
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
-rw-r--r--test/test-libevdev-init.c34
1 files changed, 34 insertions, 0 deletions
diff --git a/test/test-libevdev-init.c b/test/test-libevdev-init.c
index d45a319..06b924e 100644
--- a/test/test-libevdev-init.c
+++ b/test/test-libevdev-init.c
@@ -435,6 +435,39 @@ START_TEST(test_device_grab)
}
END_TEST
+START_TEST(test_device_grab_invalid_fd)
+{
+ struct uinput_device* uidev;
+ struct libevdev *dev;
+ int rc;
+
+ libevdev_set_log_function(test_logfunc_ignore_error, NULL);
+
+ dev = libevdev_new();
+ rc = libevdev_grab(dev, 0);
+ ck_assert_int_eq(rc, -EBADF);
+ libevdev_free(dev);
+
+ test_create_device(&uidev, &dev,
+ 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);
+ libevdev_change_fd(dev, -2);
+ rc = libevdev_grab(dev, 0);
+ ck_assert_int_eq(rc, -EBADF);
+
+ libevdev_set_log_function(test_logfunc_abort_on_error, NULL);
+
+ uinput_device_free(uidev);
+ libevdev_free(dev);
+}
+END_TEST
+
START_TEST(test_set_clock_id)
{
struct uinput_device* uidev;
@@ -560,6 +593,7 @@ libevdev_init_test(void)
tc = tcase_create("device grab");
tcase_add_test(tc, test_device_grab);
+ tcase_add_test(tc, test_device_grab_invalid_fd);
suite_add_tcase(s, tc);
tc = tcase_create("clock id");