[PATCH libinput 2/5] test: simplify some checks in the path test

Peter Hutterer peter.hutterer at who-t.net
Fri Jan 6 06:30:19 UTC 2017


The first event is always a device added event, skip the loops that would
paper over this. If we ever change this, the tests *should* fail.

Signed-off-by: Peter Hutterer <peter.hutterer at who-t.net>
---
 test/path.c | 150 ++++++++++++++++++++++++++----------------------------------
 1 file changed, 64 insertions(+), 86 deletions(-)

diff --git a/test/path.c b/test/path.c
index 0890d3e..93c78dc 100644
--- a/test/path.c
+++ b/test/path.c
@@ -310,24 +310,16 @@ START_TEST(path_added_device)
 	struct libinput *li = dev->libinput;
 	struct libinput_event *event;
 	struct libinput_device *device;
+	enum libinput_event_type type;
 
 	libinput_dispatch(li);
 
-	while ((event = libinput_get_event(li))) {
-		enum libinput_event_type type;
-		type = libinput_event_get_type(event);
-
-		if (type == LIBINPUT_EVENT_DEVICE_ADDED) {
-			break;
-		}
-
-		libinput_event_destroy(event);
-	}
-
-	ck_assert(event != NULL);
-
+	event = libinput_get_event(li);
+	ck_assert_notnull(event);
+	type = libinput_event_get_type(event);
+	ck_assert_int_eq(type, LIBINPUT_EVENT_DEVICE_ADDED);
 	device = libinput_event_get_device(event);
-	ck_assert(device != NULL);
+	ck_assert_notnull(device);
 
 	libinput_event_destroy(event);
 }
@@ -339,23 +331,21 @@ START_TEST(path_add_device)
 	struct libinput *li = dev->libinput;
 	struct libinput_event *event;
 	struct libinput_device *device;
-	const char *sysname1 = NULL, *sysname2 = NULL;
+	char *sysname1 = NULL, *sysname2 = NULL;
+	enum libinput_event_type type;
 
 	libinput_dispatch(li);
 
-	while ((event = libinput_get_event(li))) {
-		enum libinput_event_type type;
-		type = libinput_event_get_type(event);
+	event = libinput_get_event(li);
+	ck_assert_notnull(event);
+	type = libinput_event_get_type(event);
+	ck_assert_int_eq(type, LIBINPUT_EVENT_DEVICE_ADDED);
+	device = libinput_event_get_device(event);
+	ck_assert_notnull(device);
+	sysname1 = strdup(libinput_device_get_sysname(device));
+	libinput_event_destroy(event);
 
-		if (type == LIBINPUT_EVENT_DEVICE_ADDED) {
-			ck_assert(sysname1 == NULL);
-			device = libinput_event_get_device(event);
-			ck_assert(device != NULL);
-			sysname1 = libinput_device_get_sysname(device);
-		}
-
-		libinput_event_destroy(event);
-	}
+	litest_assert_empty_queue(li);
 
 	device = libinput_path_add_device(li,
 					  libevdev_uinput_get_devnode(dev->uinput));
@@ -363,23 +353,19 @@ START_TEST(path_add_device)
 
 	libinput_dispatch(li);
 
-	while ((event = libinput_get_event(li))) {
-		enum libinput_event_type type;
-		type = libinput_event_get_type(event);
-
-		if (type == LIBINPUT_EVENT_DEVICE_ADDED) {
-			ck_assert(sysname2 == NULL);
-			device = libinput_event_get_device(event);
-			ck_assert(device != NULL);
-			sysname2 = libinput_device_get_sysname(device);
-		}
-
-		libinput_event_destroy(event);
-	}
+	event = libinput_get_event(li);
+	ck_assert_notnull(event);
+	type = libinput_event_get_type(event);
+	ck_assert_int_eq(type, LIBINPUT_EVENT_DEVICE_ADDED);
+	device = libinput_event_get_device(event);
+	ck_assert_notnull(device);
+	sysname2 = strdup(libinput_device_get_sysname(device));
+	libinput_event_destroy(event);
 
 	ck_assert_str_eq(sysname1, sysname2);
 
-	libinput_event_destroy(event);
+	free(sysname1);
+	free(sysname2);
 }
 END_TEST
 
@@ -411,21 +397,23 @@ START_TEST(path_device_sysname)
 	struct libinput_event *ev;
 	struct libinput_device *device;
 	const char *sysname;
+	enum libinput_event_type type;
 
 	libinput_dispatch(dev->libinput);
 
-	while ((ev = libinput_get_event(dev->libinput))) {
-		if (libinput_event_get_type(ev) != LIBINPUT_EVENT_DEVICE_ADDED)
-			continue;
+	ev = libinput_get_event(dev->libinput);
+	ck_assert_notnull(ev);
+	type = libinput_event_get_type(ev);
+	ck_assert_int_eq(type, LIBINPUT_EVENT_DEVICE_ADDED);
+	device = libinput_event_get_device(ev);
+	ck_assert_notnull(device);
+	sysname = libinput_device_get_sysname(device);
 
-		device = libinput_event_get_device(ev);
-		sysname = libinput_device_get_sysname(device);
-		ck_assert(sysname != NULL && strlen(sysname) > 1);
-		ck_assert(strchr(sysname, '/') == NULL);
-		ck_assert_int_eq(strncmp(sysname, "event", 5), 0);
+	ck_assert(sysname != NULL && strlen(sysname) > 1);
+	ck_assert(strchr(sysname, '/') == NULL);
+	ck_assert_int_eq(strncmp(sysname, "event", 5), 0);
 
-		libinput_event_destroy(ev);
-	}
+	libinput_event_destroy(ev);
 }
 END_TEST
 
@@ -865,6 +853,7 @@ START_TEST(path_seat_recycle)
 	int data = 0;
 	int found = 0;
 	void *user_data;
+	enum libinput_event_type type;
 
 	uinput = litest_create_uinput_device("test device", NULL,
 					     EV_KEY, BTN_LEFT,
@@ -881,27 +870,21 @@ START_TEST(path_seat_recycle)
 	ck_assert(device != NULL);
 
 	libinput_dispatch(li);
-	while ((ev = libinput_get_event(li))) {
-		switch (libinput_event_get_type(ev)) {
-		case LIBINPUT_EVENT_DEVICE_ADDED:
-			if (saved_seat)
-				break;
-
-			device = libinput_event_get_device(ev);
-			ck_assert(device != NULL);
-			saved_seat = libinput_device_get_seat(device);
-			libinput_seat_set_user_data(saved_seat, &data);
-			libinput_seat_ref(saved_seat);
-			break;
-		default:
-			break;
-		}
-
-		libinput_event_destroy(ev);
-	}
 
+	ev = libinput_get_event(li);
+	ck_assert_notnull(ev);
+	type = libinput_event_get_type(ev);
+	ck_assert_int_eq(type, LIBINPUT_EVENT_DEVICE_ADDED);
+	device = libinput_event_get_device(ev);
+	ck_assert(device != NULL);
+	saved_seat = libinput_device_get_seat(device);
+	libinput_seat_set_user_data(saved_seat, &data);
+	libinput_seat_ref(saved_seat);
+	libinput_event_destroy(ev);
 	ck_assert(saved_seat != NULL);
 
+	litest_assert_empty_queue(li);
+
 	libinput_suspend(li);
 
 	litest_drain_events(li);
@@ -909,26 +892,21 @@ START_TEST(path_seat_recycle)
 	libinput_resume(li);
 
 	libinput_dispatch(li);
-	while ((ev = libinput_get_event(li))) {
-		switch (libinput_event_get_type(ev)) {
-		case LIBINPUT_EVENT_DEVICE_ADDED:
-			device = libinput_event_get_device(ev);
-			ck_assert(device != NULL);
+	ev = libinput_get_event(li);
+	ck_assert_notnull(ev);
+	type = libinput_event_get_type(ev);
+	ck_assert_int_eq(type, LIBINPUT_EVENT_DEVICE_ADDED);
+	device = libinput_event_get_device(ev);
+	ck_assert(device != NULL);
 
-			seat = libinput_device_get_seat(device);
-			user_data = libinput_seat_get_user_data(seat);
-			if (user_data == &data) {
-				found = 1;
-				ck_assert(seat == saved_seat);
-			}
-			break;
-		default:
-			break;
-		}
-
-		libinput_event_destroy(ev);
+	seat = libinput_device_get_seat(device);
+	user_data = libinput_seat_get_user_data(seat);
+	if (user_data == &data) {
+		found = 1;
+		ck_assert(seat == saved_seat);
 	}
 
+	libinput_event_destroy(ev);
 	ck_assert(found == 1);
 
 	libinput_unref(li);
-- 
2.9.3



More information about the wayland-devel mailing list