diff options
author | Markus Ongyerth <wl@ongy.net> | 2018-04-16 15:01:00 -0500 |
---|---|---|
committer | Derek Foreman <derekf@osg.samsung.com> | 2018-04-20 13:19:13 -0500 |
commit | 0e6ac72288f884ba0321c285a65578492c706534 (patch) | |
tree | 7d509a81678a096a1cae79a4e9cf99d734c56e93 | |
parent | 5e0f7ad1bfcaadcc9cfaa1bd3fa78a1442b873a2 (diff) | |
download | wayland-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.c | 24 |
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); +} |