aboutsummaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorMarek Chalupa <mchqwerty@gmail.com>2014-11-21 11:18:33 +0100
committerPekka Paalanen <pekka.paalanen@collabora.co.uk>2014-12-01 12:34:23 +0200
commite118c111783f89635986fecdd7990ce7dcb1363b (patch)
treef5d167816b6cc9a9c2c03dc9b6e0333e8d3dee77 /tests
parenttests: split queue-test testcases (diff)
downloadwayland-e118c111783f89635986fecdd7990ce7dcb1363b.tar
wayland-e118c111783f89635986fecdd7990ce7dcb1363b.tar.gz
wayland-e118c111783f89635986fecdd7990ce7dcb1363b.tar.bz2
wayland-e118c111783f89635986fecdd7990ce7dcb1363b.tar.lz
wayland-e118c111783f89635986fecdd7990ce7dcb1363b.tar.xz
wayland-e118c111783f89635986fecdd7990ce7dcb1363b.tar.zst
wayland-e118c111783f89635986fecdd7990ce7dcb1363b.zip
tests: fix memory leak
We didn't free the struct client that we got from client_connect() Signed-off-by: Marek Chalupa <mchqwerty@gmail.com> Acked-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Diffstat (limited to 'tests')
-rw-r--r--tests/display-test.c23
-rw-r--r--tests/test-compositor.c1
2 files changed, 14 insertions, 10 deletions
diff --git a/tests/display-test.c b/tests/display-test.c
index d5f4d00..f9889a8 100644
--- a/tests/display-test.c
+++ b/tests/display-test.c
@@ -155,6 +155,14 @@ bind_seat(struct wl_client *client, void *data,
}
static void
+client_disconnect_nocheck(struct client *c)
+{
+ wl_proxy_destroy((struct wl_proxy *) c->tc);
+ wl_display_disconnect(c->wl_display);
+ free(c);
+}
+
+static void
post_error_main(void)
{
struct client *c = client_connect();
@@ -170,8 +178,7 @@ post_error_main(void)
/* don't call client_disconnect(c), because then the test would be
* aborted due to checks for error in this function */
wl_proxy_destroy((struct wl_proxy *) seat);
- wl_proxy_destroy((struct wl_proxy *) c->tc);
- wl_display_disconnect(c->wl_display);
+ client_disconnect_nocheck(c);
}
TEST(post_error_to_one_client)
@@ -224,8 +231,7 @@ post_error_main3(void)
/* don't call client_disconnect(c), because then the test would be
* aborted due to checks for error in this function */
wl_proxy_destroy((struct wl_proxy *) seat);
- wl_proxy_destroy((struct wl_proxy *) c->tc);
- wl_display_disconnect(c->wl_display);
+ client_disconnect_nocheck(c);
}
/* all the testcases could be in one TEST, but splitting it
@@ -294,8 +300,7 @@ post_nomem_main(void)
assert(wl_display_get_error(c->wl_display) == ENOMEM);
wl_proxy_destroy((struct wl_proxy *) seat);
- wl_proxy_destroy((struct wl_proxy *) c->tc);
- wl_display_disconnect(c->wl_display);
+ client_disconnect_nocheck(c);
}
TEST(post_nomem_tst)
@@ -413,8 +418,7 @@ threading_post_err(void)
test_set_timeout(3);
pthread_join(thread, NULL);
- wl_proxy_destroy((struct wl_proxy *) c->tc);
- wl_display_disconnect(c->wl_display);
+ client_disconnect_nocheck(c);
}
TEST(threading_errors_tst)
@@ -565,8 +569,7 @@ threading_read_after_error(void)
test_set_timeout(3);
pthread_join(thread, NULL);
- wl_proxy_destroy((struct wl_proxy *) c->tc);
- wl_display_disconnect(c->wl_display);
+ client_disconnect_nocheck(c);
}
TEST(threading_read_after_error_tst)
diff --git a/tests/test-compositor.c b/tests/test-compositor.c
index 3248e2d..6f86a85 100644
--- a/tests/test-compositor.c
+++ b/tests/test-compositor.c
@@ -452,6 +452,7 @@ client_disconnect(struct client *c)
wl_proxy_destroy((struct wl_proxy *) c->tc);
wl_display_disconnect(c->wl_display);
+ free(c);
}
/* num is number of clients that requests to stop display.