From 33430765303ffae6d2c74b47411bf73f3025e0c1 Mon Sep 17 00:00:00 2001 From: Peter Hutterer Date: Mon, 1 Jul 2013 13:12:20 +1000 Subject: [PATCH] test: add new helper function for absolute events Signed-off-by: Peter Hutterer --- test/test-common.c | 38 ++++++++++++++++++++++++++++++++++++++ test/test-common.h | 5 +++++ 2 files changed, 43 insertions(+) diff --git a/test/test-common.c b/test/test-common.c index 4db852d..608853e 100644 --- a/test/test-common.c +++ b/test/test-common.c @@ -56,3 +56,41 @@ int test_create_device(struct uinput_device **uidev_return, return rc == 0 ? rc : -errno; } +int test_create_abs_device(struct uinput_device **uidev_return, + struct libevdev **dev_return, + int nabs, + struct input_absinfo *abs, + ...) +{ + int rc, fd; + struct uinput_device *uidev; + struct libevdev *dev; + va_list args; + + uidev = uinput_device_new("test device"); + ck_assert(uidev != NULL); + + va_start(args, abs); + rc = uinput_device_set_event_bits_v(uidev, args); + va_end(args); + + while (--nabs >= 0) { + rc = uinput_device_set_abs_bit(uidev, abs[nabs].value, &abs[nabs]); + ck_assert_msg(rc == 0, "for abs field %d\n", nabs); + } + + rc = uinput_device_create(uidev); + ck_assert_msg(rc == 0, "Failed to create uinput device: %s", strerror(-rc)); + + fd = uinput_device_get_fd(uidev); + + rc = libevdev_new_from_fd(fd, &dev); + ck_assert_msg(rc == 0, "Failed to init device device: %s", strerror(-rc)); + rc = fcntl(fd, F_SETFL, O_NONBLOCK); + ck_assert_msg(rc == 0, "fcntl failed: %s", strerror(errno)); + + *uidev_return = uidev; + *dev_return = dev; + + return rc == 0 ? rc : -errno; +} diff --git a/test/test-common.h b/test/test-common.h index e545912..82e5429 100644 --- a/test/test-common.h +++ b/test/test-common.h @@ -34,5 +34,10 @@ int test_create_device(struct uinput_device **uidev, struct libevdev **dev, ...); +int test_create_abs_device(struct uinput_device **uidev, + struct libevdev **dev, + int nabs, + struct input_absinfo *abs, + ...); #endif /* _TEST_COMMON_H_ */ -- 2.7.4