[PATCH wayland 7/8] tests: add possibility to disable leak check for single test

Marek Chalupa mchqwerty at gmail.com
Fri Dec 19 05:53:06 PST 2014


In tests that are using external libraries (i. e. pthread) we
can get failure because of leaks in the external library.
Until we have some better solution (if ever), let these (and only these)
tests to disable leak checks.

Signed-off-by: Marek Chalupa <mchqwerty at gmail.com>
---
 tests/sanity-test.c | 13 +++++++++++++
 tests/test-runner.c |  2 ++
 tests/test-runner.h |  6 ++++++
 3 files changed, 21 insertions(+)

diff --git a/tests/sanity-test.c b/tests/sanity-test.c
index 468b80c..afe0155 100644
--- a/tests/sanity-test.c
+++ b/tests/sanity-test.c
@@ -81,6 +81,19 @@ FAIL_TEST(sanity_malloc_direct)
 	free(NULL);	/* NULL must not be counted */
 }
 
+TEST(disable_leak_checks)
+{
+	volatile void *mem;
+	assert(leak_check_enabled);
+	/* normally this should be on the beginning of the test.
+	 * Here we need to be sure, that the leak checks are
+	 * turned on */
+	DISABLE_LEAK_CHECKS;
+
+	mem = malloc(16);
+	assert(mem);
+}
+
 FAIL_TEST(sanity_malloc_indirect)
 {
 	struct wl_array array;
diff --git a/tests/test-runner.c b/tests/test-runner.c
index 01f772b..f37d1b9 100644
--- a/tests/test-runner.c
+++ b/tests/test-runner.c
@@ -175,6 +175,8 @@ check_leaks(int supposed_alloc, int supposed_fds)
 				num_fds - supposed_fds);
 			abort();
 		}
+	} else {
+		fprintf(stderr, "Leak checks disabled\n");
 	}
 }
 
diff --git a/tests/test-runner.h b/tests/test-runner.h
index 5963ab6..6054da5 100644
--- a/tests/test-runner.h
+++ b/tests/test-runner.h
@@ -62,4 +62,10 @@ test_usleep(useconds_t);
 void
 test_sleep(unsigned int);
 
+#define DISABLE_LEAK_CHECKS			\
+	do {					\
+		extern int leak_check_enabled;	\
+		leak_check_enabled = 0;		\
+	} while (0);
+
 #endif
-- 
2.1.0



More information about the wayland-devel mailing list