From: Jonas Ådahl Date: Tue, 24 Jun 2014 22:06:59 +0000 (+0200) Subject: test: Add context reference counting test X-Git-Tag: 0.4.0~13^2 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=89aa3ca176130104f2fc5c034400cbb4c41cf479;p=platform%2Fupstream%2Flibinput.git test: Add context reference counting test 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 --- 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); }