From 89aa3ca176130104f2fc5c034400cbb4c41cf479 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Jonas=20=C3=85dahl?= Date: Wed, 25 Jun 2014 00:06:59 +0200 Subject: [PATCH] test: Add context reference counting test MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit This test relies on valgrind detecting the leak and use-after-free. Signed-off-by: Jonas Ådahl Reviewed-by: Peter Hutterer Signed-off-by: Peter Hutterer --- test/misc.c | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/test/misc.c b/test/misc.c index ad2e1f66..bea7e889 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); } -- 2.34.1