From 0b6145a386282cf3f40233a9ad4fb1d5893d931e Mon Sep 17 00:00:00 2001 From: EuAndreh Date: Mon, 22 Mar 2021 05:12:42 -0300 Subject: src/remembering.c: WIP more tests for mkdir_p --- src/remembering.c | 86 +++++++++++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 81 insertions(+), 5 deletions(-) (limited to 'src') diff --git a/src/remembering.c b/src/remembering.c index 706b522..a229788 100644 --- a/src/remembering.c +++ b/src/remembering.c @@ -23,9 +23,9 @@ static void testing(const char *message) { fprintf(stderr, "testing: %s...", message); } -void test_ok() { fprintf(stderr, " OK.\n"); } +static void test_ok() { fprintf(stderr, " OK.\n"); } -FILE *tmpfile() { +/* static */ FILE *tmpfile() { char filename[] = "remembering-test.XXXXXX"; errno = 0; @@ -45,6 +45,30 @@ FILE *tmpfile() { return f; } + +// static +char *tmpdir() { + char dirname[] = "remembering-test.XXXXXX"; + + errno = 0; + char *dircpy = malloc(strlen(dirname) + 1); + if (!dircpy) { + perror("malloc"); + return NULL; + } + + errno = 0; + char *dir = mkdtemp(dirname); + if (!dir) { + perror("mkdtemp"); + free(dircpy); + return NULL; + } + + strcpy(dircpy, dir); + + return dircpy; +} #endif static void print_usage(FILE *stream, char *name) { @@ -239,10 +263,56 @@ static int fallible_mkdir_p(char *path, mode_t mode, const char *const filename, #ifdef TEST static void mkdir_p_test() { + /* { - testing("mkdir_p"); + testing("mkdir_p a single directory"); + + char *dir = tmpdir(); + if (!dir) { + exit(EXIT_FAILURE); + } + + int ret = mkdir_p(dir, 0755); + if (ret) { + free(dir); + exit(EXIT_FAILURE); + } + + free(dir); test_ok(); } + */ + /* + { + testing("mkdir_p nested directories"); + + const char *const dir_suffix = "/a/b/c/d/e"; + char *dir_prefix = tmpdir(); + if (!dir_prefix) { + exit(EXIT_FAILURE); + } + + char *dir = malloc(strlen(dir_prefix) + strlen(dir_suffix) + 1); + if (!dir) { + free(dir_prefix); + exit(EXIT_FAILURE); + } + + strcpy(dir, dir_prefix); + strcat(dir, dir_suffix); + + int ret = mkdir_p(dir, 0755); + if (ret) { + free(dir); + free(dir_prefix); + exit(EXIT_FAILURE); + } + + free(dir); + free(dir_prefix); + test_ok(); + } + */ } #endif @@ -509,9 +579,14 @@ static void parse_ranked_line_test() { } char *value; - int rank; - int ret = parse_ranked_line(f, "0 command", &value, &rank); + int rank, ret; + + ret = parse_ranked_line(f, "0 command", &value, &rank); assert(ret == -1); + + ret = parse_ranked_line(f, "1", &value, &rank); + assert(ret == -1); + fclose(f); test_ok(); } @@ -601,6 +676,7 @@ static void parse_ranked_line_test() { assert(strcmp(value, "") == 0); assert(rank == 0); free(value); + test_ok(); } { -- cgit v1.2.3