diff options
author | Peter Hutterer <peter.hutterer@who-t.net> | 2014-11-17 11:54:04 +1000 |
---|---|---|
committer | Peter Hutterer <peter.hutterer@who-t.net> | 2014-11-18 09:04:03 +1000 |
commit | cf4adee09b0da4bfb2df2988d46ac95f90eeac6b (patch) | |
tree | 69d7b1a6955bb5fb5ddc9cfe498ba6d6026e7071 | |
parent | d68eb35378abad21f7f987896d80e684b3a7b306 (diff) | |
download | libevdev-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.c | 34 |
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"); |