1 #include <ccan/tal/str/str.h>
4 #include <ccan/tal/str/str.c>
5 #include <ccan/tap/tap.h>
7 #define ARRAY_SIZE(arr) (sizeof(arr) / sizeof(arr[0]))
9 static const char *substrings[]
10 = { "far", "bar", "baz", "b", "ba", "z", "ar", NULL };
12 int main(int argc, char *argv[])
18 split = strsplit(NULL, "hello world", " ", STR_EMPTY_OK);
19 ok1(!strcmp(split[0], "hello"));
20 ok1(!strcmp(split[1], ""));
21 ok1(!strcmp(split[2], "world"));
22 ok1(split[3] == NULL);
25 split = strsplit(NULL, "hello world", " ", STR_NO_EMPTY);
26 ok1(!strcmp(split[0], "hello"));
27 ok1(!strcmp(split[1], "world"));
28 ok1(split[2] == NULL);
31 split = strsplit(NULL, " hello world", " ", STR_NO_EMPTY);
32 ok1(!strcmp(split[0], "hello"));
33 ok1(!strcmp(split[1], "world"));
34 ok1(split[2] == NULL);
37 split = strsplit(NULL, "hello world", "o ", STR_EMPTY_OK);
38 ok1(!strcmp(split[0], "hell"));
39 ok1(!strcmp(split[1], ""));
40 ok1(!strcmp(split[2], ""));
41 ok1(!strcmp(split[3], "w"));
42 ok1(!strcmp(split[4], "rld"));
43 ok1(split[5] == NULL);
46 split = strsplit(ctx, "hello world", "o ", STR_EMPTY_OK);
47 ok1(tal_parent(split) == ctx);
50 str = strjoin(NULL, (char **)substrings, ", ", STR_TRAIL);
51 ok1(!strcmp(str, "far, bar, baz, b, ba, z, ar, "));
53 str = strjoin(ctx, (char **)substrings, "", STR_TRAIL);
54 ok1(!strcmp(str, "farbarbazbbazar"));
55 ok1(tal_parent(str) == ctx);
56 str = strjoin(ctx, (char **)substrings, ", ", STR_NO_TRAIL);
57 ok1(tal_parent(str) == ctx);
58 ok1(!strcmp(str, "far, bar, baz, b, ba, z, ar"));
59 str = strjoin(ctx, (char **)substrings, "", STR_NO_TRAIL);
60 ok1(!strcmp(str, "farbarbazbbazar"));
61 ok1(tal_parent(str) == ctx);