From ec08c5c3e99d0167fcd2d7f808ed62a833f5e5d0 Mon Sep 17 00:00:00 2001 From: Marek Ch Date: Wed, 18 Sep 2013 17:29:48 +0200 Subject: [PATCH] tests: extended message when leak in test is detected 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 9c6865a4..8f3d5d37 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); }