]> git.ozlabs.org Git - ccan/blob - ccan/tal/test/run-iter.c
tal: add del_destructor().
[ccan] / ccan / tal / test / run-iter.c
1 #include <ccan/tal/tal.h>
2 #include <ccan/tal/tal.c>
3 #include <ccan/tap/tap.h>
4
5 #define NUM 1000
6
7 int main(void)
8 {
9         char *p[NUM] = { NULL }, *iter;
10         int i;
11
12         plan_tests(NUM + 1 + NUM);
13
14         /* Create a random tree */
15         for (i = 0; i < NUM; i++) {
16                 p[i] = tal(p[rand() % (i + 1)], char);
17                 *p[i] = '0';
18         }
19
20         i = 0;
21         for (iter = tal_first(NULL); iter; iter = tal_next(NULL, iter)) {
22                 i++;
23                 ok1(*iter == '0');
24                 *iter = '1';
25         }
26         ok1(i == NUM);
27
28         for (i = NUM-1; i >= 0; i--) {
29                 ok1(*p[i] == '1');
30                 tal_free(p[i]);
31         }
32         return exit_status();
33 }