summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarek Ch <mchqwerty@gmail.com>2013-09-18 17:29:48 +0200
committerKristian Høgsberg <krh@bitplanet.net>2013-09-21 11:36:33 -0700
commitec08c5c3e99d0167fcd2d7f808ed62a833f5e5d0 (patch)
tree0cbc1882d4f0e788d8009e9b290e792cbfc5e839
parent5cf31443c50fd0c2b2ebe6059f725d1c554c3647 (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.c17
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);
}