From 1b8fbbd843ddeb5fc81c9303db9c590a436d499b Mon Sep 17 00:00:00 2001 From: William Casarin Date: Mon, 9 Jul 2018 12:10:32 -0700 Subject: progress --- ccan/tal/test/run-groups-grow.c | 48 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 ccan/tal/test/run-groups-grow.c (limited to 'ccan/tal/test/run-groups-grow.c') diff --git a/ccan/tal/test/run-groups-grow.c b/ccan/tal/test/run-groups-grow.c new file mode 100644 index 0000000..ea379c0 --- /dev/null +++ b/ccan/tal/test/run-groups-grow.c @@ -0,0 +1,48 @@ +#define CCAN_TAL_DEBUG +#include +#include +#include + +static size_t num_allocated; + +static void *alloc_account(size_t len) +{ + num_allocated++; + return malloc(len); +} + +static void free_account(void *p) +{ + num_allocated--; + return free(p); +} + +#define NUM_ALLOCS 1000 + +int main(void) +{ + void *p, *c[NUM_ALLOCS]; + int i; + size_t allocated_after_first; + + plan_tests(1); + + tal_set_backend(alloc_account, NULL, free_account, NULL); + + p = tal(NULL, char); + c[0] = tal(p, char); + + allocated_after_first = num_allocated; + for (i = 1; i < NUM_ALLOCS; i++) + c[i] = tal(p, char); + + /* Now free them all. */ + for (i = 0; i < NUM_ALLOCS; i++) + tal_free(c[i]); + + /* We can expect some residue from having any child, but limited! */ + ok1(num_allocated <= allocated_after_first); + tal_free(p); + tal_cleanup(); + return exit_status(); +} -- cgit v1.2.3