From fe35ee039b64d8a585a9766b293b1393b4f8c787 Mon Sep 17 00:00:00 2001 From: dinesh Date: Tue, 12 Aug 2008 14:24:10 +0530 Subject: [PATCH] test case for grab_file --- ccan/string/test/run-grab.c | 25 +++++++++++++++++++++++++ ccan/string/test/run.c | 15 +++++++++++++-- tools/create_dep_tar | Bin 0 -> 50678 bytes 3 files changed, 38 insertions(+), 2 deletions(-) create mode 100644 ccan/string/test/run-grab.c create mode 100755 tools/create_dep_tar diff --git a/ccan/string/test/run-grab.c b/ccan/string/test/run-grab.c new file mode 100644 index 00000000..cfd8b9b4 --- /dev/null +++ b/ccan/string/test/run-grab.c @@ -0,0 +1,25 @@ +/* This is test for grab_file() function */ + +/* + * Example: + * + * void *grab_file(const void *ctx, const char *filename) + * { + * int fd; + * char *buffer; + * + * if (streq(filename, "-")) + * fd = dup(STDIN_FILENO); + * else + * fd = open(filename, O_RDONLY, 0); + * + * if (fd < 0) + * return NULL; + * + * buffer = grab_fd(ctx, fd); + * close_noerr(fd); + * return buffer; + * } + */ + +/* End of grab_file() test */ diff --git a/ccan/string/test/run.c b/ccan/string/test/run.c index 02403d24..f68e7ec5 100644 --- a/ccan/string/test/run.c +++ b/ccan/string/test/run.c @@ -27,6 +27,8 @@ int main(int argc, char *argv[]) char **split, *str; void *ctx; char *strings[NUM_SUBSTRINGS * NUM_SUBSTRINGS]; + int length; + struct stat st; n = 0; for (i = 0; i < NUM_SUBSTRINGS; i++) { @@ -115,7 +117,16 @@ int main(int argc, char *argv[]) ok1(talloc_parent(str) == ctx); talloc_free(ctx); - - + str = grab_file(NULL, "ccan/string/test/run-grab.c"); + split = strsplit(NULL, str, "\n", NULL); + length = strlen(split[0]); + ok1(streq(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 */")); + if (stat("ccan/string/test/run-grab.c", &st) != 0) + err(1, "Could not stat self"); + ok1(st.st_size == length); + return exit_status(); } diff --git a/tools/create_dep_tar b/tools/create_dep_tar new file mode 100755 index 0000000000000000000000000000000000000000..d34281290cdc57dfc7a9b1ef3177e6f55012d27c GIT binary patch literal 50678 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 literal 0 HcmV?d00001 -- 2.39.2