1 #include <ccan/tal/tal.h>
2 #include <ccan/tal/tal.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), 1, 0);
31 ok1(tal_parent(c) == parent);
33 c = tal_dup(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), 1, 0);
41 ok1(tal_parent(c) == NULL);
43 /* No leftover allocations. */
45 ok1(tal_first(parent) == NULL);
50 /* NULL pass-through. */
52 ok1(tal_dup(NULL, char, take(c), 5, 5) == NULL);