[PATCH libinput v2 3/3] test: Add context reference counting test

Jonas Ådahl jadahl at gmail.com
Tue Jun 24 15:06:59 PDT 2014


This test relies on valgrind detecting the leak and use-after-free.

Signed-off-by: Jonas Ådahl <jadahl at gmail.com>
---

Changes since v1:

Assert return value sanity.

 test/misc.c | 20 ++++++++++++++++++++
 1 file changed, 20 insertions(+)

diff --git a/test/misc.c b/test/misc.c
index ad2e1f6..bea7e88 100644
--- a/test/misc.c
+++ b/test/misc.c
@@ -371,12 +371,32 @@ START_TEST(event_conversion_touch)
 }
 END_TEST
 
+START_TEST(context_ref_counting)
+{
+	struct libinput *li;
+
+	/* These tests rely on valgrind to detect memory leak and use after
+	 * free errors. */
+
+	li = libinput_path_create_context(&simple_interface, NULL);
+	ck_assert_notnull(li);
+	ck_assert_ptr_eq(libinput_unref(li), NULL);
+
+	li = libinput_path_create_context(&simple_interface, NULL);
+	ck_assert_notnull(li);
+	ck_assert_ptr_eq(libinput_ref(li), li);
+	ck_assert_ptr_eq(libinput_unref(li), li);
+	ck_assert_ptr_eq(libinput_unref(li), NULL);
+}
+END_TEST
+
 int main (int argc, char **argv) {
 	litest_add_no_device("events:conversion", event_conversion_device_notify);
 	litest_add_no_device("events:conversion", event_conversion_pointer);
 	litest_add_no_device("events:conversion", event_conversion_pointer_abs);
 	litest_add_no_device("events:conversion", event_conversion_key);
 	litest_add_no_device("events:conversion", event_conversion_touch);
+	litest_add_no_device("context:refcount", context_ref_counting);
 
 	return litest_run(argc, argv);
 }
-- 
1.9.1



More information about the wayland-devel mailing list