X-Git-Url: https://git.ozlabs.org/?p=ccan;a=blobdiff_plain;f=ccan%2Ftdb2%2Ftest%2Frun-57-die-during-transaction.c;h=42102ae732b3df5522b3bf26d92d05602bcd17a1;hp=6e9cb1e3e72598a0302696ae3eee7a8d079b8378;hb=fbae37ba91ec230e34be564084099726cc3a9d47;hpb=818ed29730b030ce79855fc35c212b51adff3180 diff --git a/ccan/tdb2/test/run-57-die-during-transaction.c b/ccan/tdb2/test/run-57-die-during-transaction.c index 6e9cb1e3..42102ae7 100644 --- a/ccan/tdb2/test/run-57-die-during-transaction.c +++ b/ccan/tdb2/test/run-57-die-during-transaction.c @@ -15,8 +15,9 @@ static int ftruncate_check(int fd, off_t length); /* There's a malloc inside transaction_setup_recovery, and valgrind complains * when we longjmp and leak it. */ -#define MAX_ALLOCATIONS 200 +#define MAX_ALLOCATIONS 10 static void *allocated[MAX_ALLOCATIONS]; +static unsigned max_alloc = 0; static void *malloc_noleak(size_t len) { @@ -25,6 +26,10 @@ static void *malloc_noleak(size_t len) for (i = 0; i < MAX_ALLOCATIONS; i++) if (!allocated[i]) { allocated[i] = malloc(len); + if (i > max_alloc) { + max_alloc = i; + diag("max_alloc: %i", max_alloc); + } return allocated[i]; } diag("Too many allocations!"); @@ -37,6 +42,10 @@ static void *realloc_noleak(void *p, size_t size) for (i = 0; i < MAX_ALLOCATIONS; i++) { if (allocated[i] == p) { + if (i > max_alloc) { + max_alloc = i; + diag("max_alloc: %i", max_alloc); + } return allocated[i] = realloc(p, size); } } @@ -270,6 +279,7 @@ int main(int argc, char *argv[]) plan_tests(24); unlock_callback = maybe_die; + external_agent_free = free_noleak; agent = prepare_external_agent(); if (!agent) err(1, "preparing agent");