From: Peter Hutterer Date: Fri, 30 Aug 2013 00:12:30 +0000 (+1000) Subject: test: add a test for uinput device properties X-Git-Tag: libevdev-0.4~32 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=e372c4a6bd82026aecf615062871818e989c6484;p=platform%2Fupstream%2Flibevdev.git test: add a test for uinput device properties Specifically, test for INPUT_PROP_MAX, which is a valid property value Signed-off-by: Peter Hutterer Reviewed-by: Benjamin Tissoires --- diff --git a/test/test-uinput.c b/test/test-uinput.c index 75e7fc0..9a2e078 100644 --- a/test/test-uinput.c +++ b/test/test-uinput.c @@ -323,6 +323,48 @@ START_TEST(test_uinput_events) } END_TEST +START_TEST(test_uinput_properties) +{ + struct libevdev *dev, *dev2; + struct libevdev_uinput *uidev; + int fd; + int rc; + const char *devnode; + + dev = libevdev_new(); + ck_assert(dev != NULL); + libevdev_set_name(dev, TEST_DEVICE_NAME); + libevdev_enable_event_type(dev, EV_SYN); + libevdev_enable_event_type(dev, EV_REL); + libevdev_enable_event_type(dev, EV_KEY); + libevdev_enable_event_code(dev, EV_REL, REL_X, NULL); + libevdev_enable_event_code(dev, EV_REL, REL_Y, NULL); + libevdev_enable_event_code(dev, EV_KEY, BTN_LEFT, NULL); + libevdev_enable_property(dev, INPUT_PROP_BUTTONPAD); + libevdev_enable_property(dev, INPUT_PROP_MAX); + + rc = libevdev_uinput_create_from_device(dev, LIBEVDEV_UINPUT_OPEN_MANAGED, &uidev); + ck_assert_int_eq(rc, 0); + ck_assert(uidev != NULL); + + devnode = libevdev_uinput_get_devnode(uidev); + ck_assert(devnode != NULL); + + fd = open(devnode, O_RDONLY); + ck_assert_int_gt(fd, -1); + rc = libevdev_new_from_fd(fd, &dev2); + ck_assert_int_eq(rc, 0); + + ck_assert(libevdev_has_property(dev2, INPUT_PROP_BUTTONPAD)); + ck_assert(libevdev_has_property(dev2, INPUT_PROP_MAX)); + + libevdev_free(dev); + libevdev_free(dev2); + libevdev_uinput_destroy(uidev); + close(fd); +} +END_TEST + Suite * uinput_suite(void) { @@ -340,5 +382,9 @@ uinput_suite(void) tcase_add_test(tc, test_uinput_events); suite_add_tcase(s, tc); + tc = tcase_create("device properties"); + tcase_add_test(tc, test_uinput_properties); + suite_add_tcase(s, tc); + return s; }