X-Git-Url: https://git.ozlabs.org/?a=blobdiff_plain;f=ccan%2Ftal%2Ftest%2Frun-destructor.c;h=7183f7c5b5a3daaff2e543d35e9f25c6d33366a2;hb=ba89419ac9074d930eec7ba72c378831c56ed060;hp=9d3a94e60b323a188b3f3f3bcb5d859ad942591f;hpb=0e34459a02e2615f50bac2767c7dce6632470946;p=ccan diff --git a/ccan/tal/test/run-destructor.c b/ccan/tal/test/run-destructor.c index 9d3a94e6..7183f7c5 100644 --- a/ccan/tal/test/run-destructor.c +++ b/ccan/tal/test/run-destructor.c @@ -24,7 +24,7 @@ static void destroy_child(char *p) destroy_count++; } -static void destroy_inc(char *p) +static void destroy_inc(char *p UNNEEDED) { destroy_count++; } @@ -33,16 +33,26 @@ int main(void) { char *child2; - plan_tests(12); + plan_tests(18); + destroy_count = 0; parent = tal(NULL, char); child = tal(parent, char); ok1(tal_add_destructor(parent, destroy_parent)); ok1(tal_add_destructor(child, destroy_child)); - tal_free(parent); ok1(destroy_count == 2); + destroy_count = 0; + parent = tal(NULL, char); + child = tal(parent, char); + ok1(tal_add_destructor(parent, destroy_parent)); + ok1(tal_add_destructor(child, destroy_child)); + ok1(tal_del_destructor(child, destroy_child)); + tal_free(parent); + ok1(destroy_count == 1); + + destroy_count = 0; parent = tal(NULL, char); child = tal(parent, char); child2 = tal(parent, char); @@ -51,7 +61,8 @@ int main(void) ok1(tal_add_destructor(child, destroy_inc)); ok1(tal_add_destructor(child2, destroy_inc)); tal_free(parent); - ok1(destroy_count == 6); + ok1(destroy_count == 4); + tal_cleanup(); return exit_status(); }