summaryrefslogtreecommitdiffstats
path: root/server/tests/common.c
diff options
context:
space:
mode:
Diffstat (limited to 'server/tests/common.c')
-rw-r--r--server/tests/common.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/server/tests/common.c b/server/tests/common.c
index 5b341abce..dad9dc66b 100644
--- a/server/tests/common.c
+++ b/server/tests/common.c
@@ -47,7 +47,7 @@ _check_leaks(TALLOC_CTX *ctx, size_t bytes, const char *location)
bytes_allocated = talloc_total_size(ctx);
if (bytes_allocated != bytes) {
fprintf(stderr, "Leak report for %s:\n", location);
- talloc_report_full(NULL, stderr);
+ talloc_report_full(ctx, stderr);
fail("%s: memory leaks detected, %d bytes still allocated",
location, bytes_allocated - bytes);
}
@@ -91,14 +91,17 @@ void
leak_check_setup(void)
{
talloc_enable_null_tracking();
+ global_talloc_context = talloc_new(NULL);
+ fail_unless(global_talloc_context != NULL, "talloc_new failed");
+ check_leaks_push(global_talloc_context);
}
void
leak_check_teardown(void)
{
+ check_leaks_pop(global_talloc_context);
if (snapshot_stack != NULL) {
fail("Exiting with a non-empty stack");
}
- talloc_free(talloc_autofree_context());
- check_leaks(NULL, 0);
+ check_leaks(global_talloc_context, 0);
}