1 #include <ccan/tal/talloc/talloc.h>
2 #include <ccan/tal/talloc/talloc.c>
3 #include <ccan/tap/tap.h>
11 /* We can take NULL. */
12 ok1(take(NULL) == NULL);
14 ok1(taken(NULL)); /* Undoes take() */
18 parent = tal(NULL, char);
21 ok1(take(parent) == parent);
22 ok1(is_taken(parent));
23 ok1(taken(parent)); /* Undoes take() */
24 ok1(!is_taken(parent));
27 c = tal(parent, char);
29 c = tal_dup(parent, char, take(c));
31 ok1(tal_parent(c) == parent);
33 c = tal_dup_arr(parent, char, take(c), 1, 2);
36 ok1(tal_parent(c) == parent);
38 /* dup must reparent child. */
39 c = tal_dup(NULL, char, take(c));
41 ok1(tal_parent(c) == NULL);
43 /* No leftover allocations. */
45 ok1(talloc_total_blocks(parent) == 1);
50 /* NULL pass-through. */
52 ok1(tal_dup_arr(NULL, char, take(c), 5, 5) == NULL);