[PATCH libevdev 4/4] test: drop devnode wrapper, use proper API call now

Peter Hutterer peter.hutterer at who-t.net
Wed Aug 14 21:12:40 PDT 2013


Signed-off-by: Peter Hutterer <peter.hutterer at who-t.net>
---
 test/test-common-uinput.c | 38 ++++----------------------------------
 test/test-uinput.c        | 16 ++++++----------
 2 files changed, 10 insertions(+), 44 deletions(-)

diff --git a/test/test-common-uinput.c b/test/test-common-uinput.c
index b8a5798..2a1776e 100644
--- a/test/test-common-uinput.c
+++ b/test/test-common-uinput.c
@@ -47,7 +47,6 @@ struct uinput_device
 {
 	struct libevdev *d; /* lazy, it has all the accessors */
 	struct libevdev_uinput *uidev;
-	char *devnode; /* path after creation */
 	int dev_fd; /* open fd to the devnode */
 	int uinput_fd;
 };
@@ -123,7 +122,6 @@ uinput_device_free(struct uinput_device *dev)
 	if (dev->dev_fd != -1)
 		close(dev->dev_fd);
 	libevdev_free(dev->d);
-	free(dev->devnode);
 	free(dev);
 }
 
@@ -133,40 +131,12 @@ uinput_device_get_fd(const struct uinput_device *dev)
 	return dev->dev_fd;
 }
 
-char* uinput_devnode_from_syspath(const char *syspath)
-{
-	DIR *dir;
-	struct dirent *dp;
-	struct udev *udev;
-	struct udev_device *udev_device;
-	char *devnode = NULL;
-
-	udev = udev_new();
-	dir = opendir(syspath);
-	while ((dp = readdir(dir)) && devnode == NULL) {
-		char *path;
-
-		if (strncmp(dp->d_name, "event", 5) != 0)
-			continue;
-
-		asprintf(&path, "%s/%s", syspath, dp->d_name);
-		udev_device = udev_device_new_from_syspath(udev, path);
-		devnode = strdup(udev_device_get_devnode(udev_device));
-		udev_device_unref(udev_device);
-		free(path);
-	}
-
-	closedir(dir);
-	udev_unref(udev);
-
-	return devnode;
-}
-
 int
 uinput_device_create(struct uinput_device* d)
 {
 	int rc;
 	int fd;
+	const char *devnode;
 
 	fd = open("/dev/uinput", O_RDWR);
 	if (fd < 0)
@@ -178,11 +148,11 @@ uinput_device_create(struct uinput_device* d)
 	if (rc != 0)
 		goto error;
 
-	d->devnode = uinput_devnode_from_syspath(libevdev_uinput_get_syspath(d->uidev));
-	if (d->devnode == NULL)
+	devnode = libevdev_uinput_get_devnode(d->uidev);
+	if (devnode == NULL)
 		goto error;
 
-	d->dev_fd = open(d->devnode, O_RDWR);
+	d->dev_fd = open(devnode, O_RDWR);
 	if (d->dev_fd == -1)
 		goto error;
 
diff --git a/test/test-uinput.c b/test/test-uinput.c
index 6186552..11e1624 100644
--- a/test/test-uinput.c
+++ b/test/test-uinput.c
@@ -39,7 +39,7 @@ START_TEST(test_uinput_create_device)
 	int fd, uinput_fd;
 	unsigned int type, code;
 	int rc;
-	char *devnode;
+	const char *devnode;
 
 	dev = libevdev_new();
 	ck_assert(dev != NULL);
@@ -56,7 +56,7 @@ START_TEST(test_uinput_create_device)
 	uinput_fd = libevdev_uinput_get_fd(uidev);
 	ck_assert_int_gt(uinput_fd, -1);
 
-	devnode = uinput_devnode_from_syspath(libevdev_uinput_get_syspath(uidev));
+	devnode = libevdev_uinput_get_devnode(uidev);
 	ck_assert(devnode != NULL);
 
 	fd = open(devnode, O_RDONLY);
@@ -79,7 +79,6 @@ START_TEST(test_uinput_create_device)
 	libevdev_free(dev2);
 	libevdev_uinput_destroy(uidev);
 	close(fd);
-	free(devnode);
 
 	/* uinput fd is managed, so make sure it did get closed */
 	ck_assert_int_eq(close(uinput_fd), -1);
@@ -95,7 +94,7 @@ START_TEST(test_uinput_create_device_from_fd)
 	int fd, fd2;
 	unsigned int type, code;
 	int rc;
-	char *devnode;
+	const char *devnode;
 
 	dev = libevdev_new();
 	ck_assert(dev != NULL);
@@ -114,7 +113,7 @@ START_TEST(test_uinput_create_device_from_fd)
 
 	ck_assert_int_eq(libevdev_uinput_get_fd(uidev), fd);
 
-	devnode = uinput_devnode_from_syspath(libevdev_uinput_get_syspath(uidev));
+	devnode = libevdev_uinput_get_devnode(uidev);
 	ck_assert(devnode != NULL);
 
 	fd2 = open(devnode, O_RDONLY);
@@ -138,7 +137,6 @@ START_TEST(test_uinput_create_device_from_fd)
 	libevdev_uinput_destroy(uidev);
 	close(fd);
 	close(fd2);
-	free(devnode);
 }
 END_TEST
 
@@ -253,7 +251,7 @@ START_TEST(test_uinput_events)
 	struct libevdev_uinput *uidev;
 	int fd, fd2;
 	int rc;
-	char *devnode;
+	const char *devnode;
 	int i;
 	const int nevents = 5;
 	struct input_event events[] = { {{0, 0}, EV_REL, REL_X, 1},
@@ -280,7 +278,7 @@ START_TEST(test_uinput_events)
 	ck_assert_int_eq(rc, 0);
 	ck_assert(uidev != NULL);
 
-	devnode = uinput_devnode_from_syspath(libevdev_uinput_get_syspath(uidev));
+	devnode = libevdev_uinput_get_devnode(uidev);
 	ck_assert(devnode != NULL);
 
 	fd2 = open(devnode, O_RDONLY);
@@ -297,8 +295,6 @@ START_TEST(test_uinput_events)
 		ck_assert_int_eq(events[i].value, events_read[i].value);
 	}
 
-
-	free(devnode);
 	libevdev_free(dev);
 	libevdev_uinput_destroy(uidev);
 	close(fd);
-- 
1.8.2.1



More information about the Input-tools mailing list