diff options
author | Marek Ch <mchqwerty@gmail.com> | 2013-09-18 17:29:48 +0200 |
---|---|---|
committer | Kristian Høgsberg <krh@bitplanet.net> | 2013-09-21 11:36:33 -0700 |
commit | ec08c5c3e99d0167fcd2d7f808ed62a833f5e5d0 (patch) | |
tree | 0cbc1882d4f0e788d8009e9b290e792cbfc5e839 | |
parent | 5cf31443c50fd0c2b2ebe6059f725d1c554c3647 (diff) |
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.
-rw-r--r-- | tests/test-runner.c | 17 |
1 files 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); } |