When memory or fd leak is detected, print how many blocks of memory were
allocated and not freed, respectively how many files were opened/unclosed.
---
 tests/test-runner.c | 17 ++++++++++++++---
 1 file changed, 14 insertions(+), 3 deletions(-)

diff --git a/tests/test-runner.c b/tests/test-runner.c
index 9c6865a..8f3d5d3 100644
--- a/tests/test-runner.c
+++ b/tests/test-runner.c
@@ -111,13 +111,24 @@ static void
 run_test(const struct test *t)
 {
        int cur_alloc = num_alloc;
-       int cur_fds;
+       int cur_fds, num_fds;
 
        cur_fds = count_open_fds();
        t->run();
        if (leak_check_enabled) {
-               assert(cur_alloc == num_alloc && "memory leak detected in 
test.");
-               assert(cur_fds == count_open_fds() && "fd leak detected");
+               if (cur_alloc != num_alloc) {
+                       fprintf(stderr, "Memory leak detected in test. "
+                               "Allocated %d blocks, unfreed %d\n", num_alloc,
+                               num_alloc - cur_alloc);
+                       abort();
+               }
+               num_fds = count_open_fds();
+               if (cur_fds != num_fds) {
+                       fprintf(stderr, "fd leak detected in test. "
+                               "Opened %d files, unclosed %d\n", num_fds,
+                               num_fds - cur_fds);
+                       abort();
+               }
        }
        exit(EXIT_SUCCESS);
 }
-- 
1.8.3.1

_______________________________________________
wayland-devel mailing list
wayland-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/wayland-devel

Reply via email to