summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarkus Ongyerth <wl@ongy.net>2018-04-16 15:01:00 -0500
committerDerek Foreman <derekf@osg.samsung.com>2018-04-20 13:19:13 -0500
commit0e6ac72288f884ba0321c285a65578492c706534 (patch)
tree7d509a81678a096a1cae79a4e9cf99d734c56e93
parent5e0f7ad1bfcaadcc9cfaa1bd3fa78a1442b873a2 (diff)
downloadwayland-0e6ac72288f884ba0321c285a65578492c706534.tar.gz
tests: Add free-without-remove test
[Derek Foreman <derekf@osg.samsung.com> moved this into resources-test] Reviewed-by: Derek Foreman <derekf@osg.samsung.com>
-rw-r--r--tests/resources-test.c24
1 files changed, 24 insertions, 0 deletions
diff --git a/tests/resources-test.c b/tests/resources-test.c
index 76c9eb8..fa6ba2b 100644
--- a/tests/resources-test.c
+++ b/tests/resources-test.c
@@ -182,3 +182,27 @@ TEST(create_resource_with_same_id)
wl_display_destroy(display);
close(s[1]);
}
+
+static void
+display_destroy_notify(struct wl_listener *l, void *data)
+{
+ l->link.prev = l->link.next = NULL;
+}
+
+TEST(free_without_remove)
+{
+ struct wl_display *display;
+ struct wl_listener a, b;
+
+ display = wl_display_create();
+ a.notify = display_destroy_notify;
+ b.notify = display_destroy_notify;
+
+ wl_display_add_destroy_listener(display, &a);
+ wl_display_add_destroy_listener(display, &b);
+
+ wl_display_destroy(display);
+
+ assert(a.link.next == a.link.prev && a.link.next == NULL);
+ assert(b.link.next == b.link.prev && b.link.next == NULL);
+}