tests: Add free-without-remove test
authorMarkus Ongyerth <wl@ongy.net>
Mon, 16 Apr 2018 20:01:00 +0000 (15:01 -0500)
committerDerek Foreman <derekf@osg.samsung.com>
Fri, 20 Apr 2018 18:19:13 +0000 (13:19 -0500)
[Derek Foreman <derekf@osg.samsung.com> moved this into resources-test]

Reviewed-by: Derek Foreman <derekf@osg.samsung.com>
tests/resources-test.c

index 76c9eb8..fa6ba2b 100644 (file)
@@ -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);
+}