strmap: allow const arguments to strset_iterate().
[ccan] / ccan / strmap / test / run-iterate-const.c
1 #include <ccan/strmap/strmap.h>
2 #include <ccan/strmap/strmap.c>
3 #include <ccan/tap/tap.h>
4
5 static bool found = false;
6
7 /* Make sure const args work. */
8 static bool find_string(const char *str, char *member, const char *cmp)
9 {
10         if (strcmp(member, cmp) == 0)
11                 found = true;
12         return false;
13 }
14
15 int main(void)
16 {
17         struct strmap_charp {
18                 STRMAP_MEMBERS(char *);
19         } map;
20
21         plan_tests(3);
22
23         strmap_init(&map);
24         ok1(strmap_add(&map, "hello", "hello"));
25         ok1(strmap_add(&map, "world", "world"));
26         strmap_iterate(&map, find_string, (const char *)"hello");
27         ok1(found);
28         strmap_clear(&map);
29
30         /* This exits depending on whether all tests passed */
31         return exit_status();
32 }