X-Git-Url: http://git.ozlabs.org/?p=ccan;a=blobdiff_plain;f=ccan%2Ftalloc%2Ftest%2Frun-external-alloc.c;h=0dc9346075a84a49a53a39ca47d76de6873e7a73;hp=fb1e17e95f1e14301b2d132b34dd0f0672fff67d;hb=bf57898eae29d70a166bf2df5c84601729f039ac;hpb=794a6678aa37e8864845c72b14213ca44b9e159e diff --git a/ccan/talloc/test/run-external-alloc.c b/ccan/talloc/test/run-external-alloc.c index fb1e17e9..0dc93460 100644 --- a/ccan/talloc/test/run-external-alloc.c +++ b/ccan/talloc/test/run-external-alloc.c @@ -1,8 +1,10 @@ -#include "talloc/talloc.c" -#include "tap/tap.h" +#include +#include #include -static int ext_alloc_count, ext_free_count, ext_realloc_count; +/* Much testing already done in run.c */ + +static int ext_alloc_count, ext_free_count, ext_realloc_count, lock_count, unlock_count; static void *expected_parent; static void *ext_realloc(const void *parent, void *ptr, size_t size) @@ -17,13 +19,23 @@ static void *ext_realloc(const void *parent, void *ptr, size_t size) return realloc(ptr, size); } +static void ext_lock(const void *ctx) +{ + lock_count++; +} + +static void ext_unlock(void) +{ + unlock_count++; +} + int main(void) { char *p, *p2, *head; - plan_tests(12); + plan_tests(15); expected_parent = NULL; - head = talloc_add_external(NULL, ext_realloc); + head = talloc_add_external(NULL, ext_realloc, ext_lock, ext_unlock); assert(head); ok1(ext_alloc_count == 1); @@ -50,5 +62,11 @@ int main(void) talloc_free(p); ok1(ext_free_count == 2); + expected_parent = NULL; + talloc_free(head); + ok1(ext_free_count == 3); + + ok1(lock_count == unlock_count); + return exit_status(); }