X-Git-Url: http://git.ozlabs.org/?p=ccan;a=blobdiff_plain;f=ccan%2Ftal%2Fstr%2Ftest%2Frun.c;h=626434c31043382d63cb683dd0397c98f0426b08;hp=70ebbc92fd2041acc5df1ffbfd7dad4e79b1dd13;hb=55d814230f7fb628bb5303cd53498209c7928040;hpb=f103f73ff040a8700a2bbd47948277e7c484baa2 diff --git a/ccan/tal/str/test/run.c b/ccan/tal/str/test/run.c index 70ebbc92..626434c3 100644 --- a/ccan/tal/str/test/run.c +++ b/ccan/tal/str/test/run.c @@ -3,76 +3,86 @@ #include #include #include +#include "helper.h" #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[]) +int main(void) { char **split, *str; void *ctx; - plan_tests(65); - split = strsplit(NULL, "hello world", " ", STR_EMPTY_OK); + plan_tests(78); + split = tal_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); + ok1(tal_count(split) == 4); tal_free(split); - split = strsplit(NULL, "hello world", " ", STR_NO_EMPTY); + split = tal_strsplit(NULL, "hello world", " ", STR_NO_EMPTY); ok1(!strcmp(split[0], "hello")); ok1(!strcmp(split[1], "world")); ok1(split[2] == NULL); + ok1(tal_count(split) == 3); tal_free(split); - split = strsplit(NULL, " hello world", " ", STR_NO_EMPTY); + split = tal_strsplit(NULL, " hello world", " ", STR_NO_EMPTY); ok1(!strcmp(split[0], "hello")); ok1(!strcmp(split[1], "world")); ok1(split[2] == NULL); + ok1(tal_count(split) == 3); tal_free(split); - split = strsplit(NULL, "hello world", "o ", STR_EMPTY_OK); + split = tal_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); + ok1(tal_count(split) == 6); ctx = split; - split = strsplit(ctx, "hello world", "o ", STR_EMPTY_OK); + split = tal_strsplit(ctx, "hello world", "o ", STR_EMPTY_OK); ok1(tal_parent(split) == ctx); tal_free(ctx); - str = strjoin(NULL, (char **)substrings, ", ", STR_TRAIL); + str = tal_strjoin(NULL, (char **)substrings, ", ", STR_TRAIL); ok1(!strcmp(str, "far, bar, baz, b, ba, z, ar, ")); + ok1(tal_count(str) == strlen(str) + 1); ctx = str; - str = strjoin(ctx, (char **)substrings, "", STR_TRAIL); + str = tal_strjoin(ctx, (char **)substrings, "", STR_TRAIL); ok1(!strcmp(str, "farbarbazbbazar")); + ok1(tal_count(str) == strlen(str) + 1); ok1(tal_parent(str) == ctx); - str = strjoin(ctx, (char **)substrings, ", ", STR_NO_TRAIL); + str = tal_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(tal_count(str) == strlen(str) + 1); + str = tal_strjoin(ctx, (char **)substrings, "", STR_NO_TRAIL); ok1(!strcmp(str, "farbarbazbbazar")); ok1(tal_parent(str) == ctx); + ok1(tal_count(str) == strlen(str) + 1); tal_free(ctx); ctx = tal_strdup(NULL, "context"); /* Pass through NULLs from take. */ - ok1(strsplit(NULL, take(NULL), " ", STR_EMPTY_OK) == NULL); - ok1(strsplit(NULL, "foo", take(NULL), STR_EMPTY_OK) == NULL); + ok1(tal_strsplit(NULL, take(NULL), " ", STR_EMPTY_OK) == NULL); + ok1(tal_strsplit(NULL, "foo", take(NULL), STR_EMPTY_OK) == NULL); - /* strsplit take string. It reallocs it to same size, but + /* tal_strsplit take string. It reallocs it to same size, but * that sometimes causes a move, so we can't directly check * that split[0] == str. */ str = tal_strdup(ctx, "hello world"); ok1(tal_check(ctx, NULL)); ok1(tal_check(str, NULL)); - split = strsplit(ctx, take(str), " ", STR_EMPTY_OK); + ok1(tal_count(str) == strlen(str) + 1); + split = tal_strsplit(ctx, take(str), " ", STR_EMPTY_OK); ok1(tal_parent(split) == ctx); ok1(!strcmp(split[0], "hello")); ok1(!strcmp(split[1], "world")); @@ -81,11 +91,12 @@ int main(int argc, char *argv[]) ok1(tal_check(ctx, NULL)); tal_free(split); /* Previous free should get rid of str */ - ok1(!tal_first(ctx)); + ok1(no_children(ctx)); - /* strsplit take delims */ + /* tal_strsplit take delims */ str = tal_strdup(ctx, " "); - split = strsplit(ctx, "hello world", take(str), STR_EMPTY_OK); + ok1(tal_count(str) == strlen(str) + 1); + split = tal_strsplit(ctx, "hello world", take(str), STR_EMPTY_OK); ok1(tal_parent(split) == ctx); ok1(!strcmp(split[0], "hello")); ok1(!strcmp(split[1], "world")); @@ -94,11 +105,11 @@ int main(int argc, char *argv[]) ok1(tal_check(ctx, NULL)); tal_free(split); /* str is gone... */ - ok1(!tal_first(ctx)); + ok1(no_children(ctx)); - /* strsplit takes both. */ - split = strsplit(ctx, take(tal_strdup(NULL, "hello world")), - take(tal_strdup(NULL, " ")), STR_EMPTY_OK); + /* tal_strsplit takes both. */ + split = tal_strsplit(ctx, take(tal_strdup(NULL, "hello world")), + take(tal_strdup(NULL, " ")), STR_EMPTY_OK); ok1(tal_parent(split) == ctx); ok1(!strcmp(split[0], "hello")); ok1(!strcmp(split[1], "world")); @@ -107,46 +118,49 @@ int main(int argc, char *argv[]) ok1(tal_check(ctx, NULL)); tal_free(split); /* temp allocs are gone... */ - ok1(!tal_first(ctx)); + ok1(no_children(ctx)); - /* strjoin passthrough taken NULLs OK. */ - ok1(strjoin(ctx, take(NULL), "", STR_TRAIL) == NULL); - ok1(strjoin(ctx, take(NULL), "", STR_NO_TRAIL) == NULL); - ok1(strjoin(ctx, split, take(NULL), STR_TRAIL) == NULL); - ok1(strjoin(ctx, split, take(NULL), STR_NO_TRAIL) == NULL); + /* tal_strjoin passthrough taken NULLs OK. */ + ok1(tal_strjoin(ctx, take(NULL), "", STR_TRAIL) == NULL); + ok1(tal_strjoin(ctx, take(NULL), "", STR_NO_TRAIL) == NULL); + ok1(tal_strjoin(ctx, split, take(NULL), STR_TRAIL) == NULL); + ok1(tal_strjoin(ctx, split, take(NULL), STR_NO_TRAIL) == NULL); - /* strjoin take strings[] */ - split = strsplit(ctx, "hello world", " ", STR_EMPTY_OK); - str = strjoin(ctx, take(split), " there ", STR_NO_TRAIL); + /* tal_strjoin take strings[] */ + split = tal_strsplit(ctx, "hello world", " ", STR_EMPTY_OK); + str = tal_strjoin(ctx, take(split), " there ", STR_NO_TRAIL); ok1(!strcmp(str, "hello there world")); + ok1(tal_count(str) == strlen(str) + 1); ok1(tal_parent(str) == ctx); /* split is gone... */ - ok1(tal_first(ctx) == str && !tal_next(ctx, str)); + ok1(single_child(ctx, str)); tal_free(str); - ok1(!tal_first(ctx)); + ok1(no_children(ctx)); - /* strjoin take delim */ - split = strsplit(ctx, "hello world", " ", STR_EMPTY_OK); - str = strjoin(ctx, split, take(tal_strdup(ctx, " there ")), - STR_NO_TRAIL); + /* tal_strjoin take delim */ + split = tal_strsplit(ctx, "hello world", " ", STR_EMPTY_OK); + str = tal_strjoin(ctx, split, take(tal_strdup(ctx, " there ")), + STR_NO_TRAIL); ok1(!strcmp(str, "hello there world")); ok1(tal_parent(str) == ctx); + ok1(tal_count(str) == strlen(str) + 1); tal_free(split); /* tmp alloc is gone, str is only remainder. */ - ok1(tal_first(ctx) == str && !tal_next(ctx, str)); + ok1(single_child(ctx, str)); tal_free(str); - ok1(!tal_first(ctx)); + ok1(no_children(ctx)); - /* strjoin take both. */ - str = strjoin(ctx, take(strsplit(ctx, "hello world", " ", - STR_EMPTY_OK)), - take(tal_strdup(ctx, " there ")), STR_NO_TRAIL); + /* tal_strjoin take both. */ + str = tal_strjoin(ctx, take(tal_strsplit(ctx, "hello world", " ", + STR_EMPTY_OK)), + take(tal_strdup(ctx, " there ")), STR_NO_TRAIL); ok1(!strcmp(str, "hello there world")); + ok1(tal_count(str) == strlen(str) + 1); ok1(tal_parent(str) == ctx); /* tmp allocs are gone, str is only remainder. */ - ok1(tal_first(ctx) == str && !tal_next(ctx, str)); + ok1(single_child(ctx, str)); tal_free(str); - ok1(!tal_first(ctx)); + ok1(no_children(ctx)); tal_free(ctx); return exit_status();