X-Git-Url: http://git.ozlabs.org/?a=blobdiff_plain;ds=sidebyside;f=ccan%2Fgrab_file%2Ftest%2Frun-grab.c;h=c9f242609697423e38483af5b0181a5cd9b3fbc9;hb=HEAD;hp=3c44ce055c498e2041209484ad930a7356a2e836;hpb=f3948bf8102ce5281460e6ed6053150a96d71a91;p=ccan diff --git a/ccan/grab_file/test/run-grab.c b/ccan/grab_file/test/run-grab.c index 3c44ce05..c9f24260 100644 --- a/ccan/grab_file/test/run-grab.c +++ b/ccan/grab_file/test/run-grab.c @@ -1,14 +1,36 @@ /* This is test for grab_file() function */ -#include "grab_file/grab_file.h" -#include -#include -#include -#include -#include "grab_file/grab_file.c" -#include "tap/tap.h" -#include "str_talloc/str_talloc.h" -#include "str/str.h" +#include +#include +#include +#include +#include +#include +#include +#include + +static char **strsplit(const void *ctx, const char *string, const char *delims) +{ + char **lines = NULL; + unsigned int max = 64, num = 0; + + lines = talloc_array(ctx, char *, max+1); + + while (*string != '\0') { + unsigned int len = strcspn(string, delims); + lines[num] = talloc_array(lines, char, len + 1); + memcpy(lines[num], string, len); + lines[num][len] = '\0'; + string += len; + string += strspn(string, delims) ? 1 : 0; + if (++num == max) + lines = talloc_realloc(ctx, lines, char *, max*=2 + 1); + } + lines[num] = NULL; + + /* Shrink, so talloc_get_size works */ + return talloc_realloc(ctx, lines, char *, num+1); +} int main(int argc, char *argv[]) @@ -19,20 +41,18 @@ main(int argc, char *argv[]) struct stat st; str = grab_file(NULL, "test/run-grab.c", NULL); - /* FIXME: run_tests runs us from top level dir. Kill this */ - if (!str) - str = grab_file(NULL, "ccan/grab_file/test/run-grab.c", NULL); - split = strsplit(NULL, str, "\n", NULL); + split = strsplit(str, str, "\n"); length = strlen(split[0]); - ok1(streq(split[0], "/* This is test for grab_file() function")); + ok1(!strcmp(split[0], "/* This is test for grab_file() function")); for (i = 1; split[i]; i++) length += strlen(split[i]); - ok1(streq(split[i-1], "/* End of grab_file() test */")); + ok1(!strcmp(split[i-1], "/* End of grab_file() test */")); if (stat("test/run-grab.c", &st) != 0) /* FIXME: ditto */ if (stat("ccan/grab_file/test/run-grab.c", &st) != 0) err(1, "Could not stat self"); ok1(st.st_size == length + i); + talloc_free(str); return 0; }