X-Git-Url: http://git.ozlabs.org/?p=ccan;a=blobdiff_plain;f=ccan%2Ftal%2Fstr%2Ftest%2Frun.c;fp=ccan%2Ftal%2Fstr%2Ftest%2Frun.c;h=755bceaf3755b08b9807642eab80fb5becf56bae;hp=0000000000000000000000000000000000000000;hb=d873aaec1339baf45c37db7cbaa2d687656343ba;hpb=d379e0ae835bdd047a5d277f7ded41f180134e27;ds=sidebyside diff --git a/ccan/tal/str/test/run.c b/ccan/tal/str/test/run.c new file mode 100644 index 00000000..755bceaf --- /dev/null +++ b/ccan/tal/str/test/run.c @@ -0,0 +1,65 @@ +#include +#include +#include +#include +#include + +#define ARRAY_SIZE(arr) (sizeof(arr) / sizeof(arr[0])) + +static const char *substrings[] += { "far", "bar", "baz", "b", "ba", "z", "ar", NULL }; + +int main(int argc, char *argv[]) +{ + char **split, *str; + void *ctx; + + plan_tests(24); + split = strsplit(NULL, "hello world", " ", STR_EMPTY_OK); + ok1(!strcmp(split[0], "hello")); + ok1(!strcmp(split[1], "")); + ok1(!strcmp(split[2], "world")); + ok1(split[3] == NULL); + tal_free(split); + + split = strsplit(NULL, "hello world", " ", STR_NO_EMPTY); + ok1(!strcmp(split[0], "hello")); + ok1(!strcmp(split[1], "world")); + ok1(split[2] == NULL); + tal_free(split); + + split = strsplit(NULL, " hello world", " ", STR_NO_EMPTY); + ok1(!strcmp(split[0], "hello")); + ok1(!strcmp(split[1], "world")); + ok1(split[2] == NULL); + tal_free(split); + + split = strsplit(NULL, "hello world", "o ", STR_EMPTY_OK); + ok1(!strcmp(split[0], "hell")); + ok1(!strcmp(split[1], "")); + ok1(!strcmp(split[2], "")); + ok1(!strcmp(split[3], "w")); + ok1(!strcmp(split[4], "rld")); + ok1(split[5] == NULL); + + ctx = split; + split = strsplit(ctx, "hello world", "o ", STR_EMPTY_OK); + ok1(tal_parent(split) == ctx); + tal_free(ctx); + + str = strjoin(NULL, (char **)substrings, ", ", STR_TRAIL); + ok1(!strcmp(str, "far, bar, baz, b, ba, z, ar, ")); + ctx = str; + str = strjoin(ctx, (char **)substrings, "", STR_TRAIL); + ok1(!strcmp(str, "farbarbazbbazar")); + ok1(tal_parent(str) == ctx); + str = strjoin(ctx, (char **)substrings, ", ", STR_NO_TRAIL); + ok1(tal_parent(str) == ctx); + ok1(!strcmp(str, "far, bar, baz, b, ba, z, ar")); + str = strjoin(ctx, (char **)substrings, "", STR_NO_TRAIL); + ok1(!strcmp(str, "farbarbazbbazar")); + ok1(tal_parent(str) == ctx); + tal_free(ctx); + + return exit_status(); +}