[PATCH 1/3] tests: extended message when leak in test is detected

Marek Ch mchqwerty at gmail.com
Wed Sep 18 08:29:48 PDT 2013


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



More information about the wayland-devel mailing list