diff options
Diffstat (limited to 'tests/util.c')
-rw-r--r-- | tests/util.c | 101 |
1 files changed, 32 insertions, 69 deletions
diff --git a/tests/util.c b/tests/util.c index a720123..260922a 100644 --- a/tests/util.c +++ b/tests/util.c @@ -6,76 +6,34 @@ #include "slurp.h" -static void -test_EXIT_USAGE(void) { - test_start("EXIT_USAGE"); - - { - testing("it is different that EXIT_SUCCESS and EXIT_FAILURE"); - assert(EXIT_USAGE != EXIT_SUCCESS); - assert(EXIT_USAGE != EXIT_FAILURE); - test_ok(); - } -} static int -test_freeit(void) { +test_slurp(void) { int rc = -1; - test_start("freeit()"); - - const char *ptr = NULL; - - { - testing("ptr is NULL afterwards"); - - ptr = malloc(1234U); - if (ptr == NULL) { - logerr("malloc(): %s", strerror(errno)); - goto out; - } - - assert(ptr != NULL); - freeit((void *)&ptr); - assert(ptr == NULL); - - test_ok(); - } - { - testing("tolerate be given a NULL pointer"); - - void *p = NULL; - freeit(NULL); - freeit(p); - freeit((void *)&p); + test_start("slurp()"); - test_ok(); - } + char *expected = NULL; + char *given = NULL; + size_t givenlen = 0U; - rc = 0; -out: - if (ptr != NULL) { - freeit((void *)&ptr); + FILE *file = fopen("/dev/null", "w"); + if (file == NULL) { + logerr("fopen(\"/dev/null\", \"w\")"); + goto out; } - return rc; -} - -static int -test_slurp(void) { - int rc = -1; - - char *given = NULL; - char *expected = NULL; + logerr_set_stream(file); { testing("non-existent file"); - const char *const filename = __FILE__ ".non-existant"; - const int ret_given = slurp(filename, &given); + const char filename[] = __FILE__ ".non-existant"; const int ret_expected = slurp_for_tests(filename, &expected); + const int ret_given = slurp(filename, &givenlen, &given); - assert(given == NULL); assert(expected == NULL); + assert(given == NULL); + assert(givenlen == 0U); assert(!!ret_given == !!ret_expected); test_ok(); @@ -83,7 +41,7 @@ test_slurp(void) { { testing("slurp() == slurp_for_tests()"); - if (slurp(__FILE__, &given)) { + if (slurp(__FILE__, &givenlen, &given)) { logerr("slurp()"); goto out; } @@ -93,23 +51,35 @@ test_slurp(void) { goto out; } - assert(given != NULL); assert(expected != NULL); + assert(given != NULL); + assert(givenlen == strlen(given)); assert(strcmp(given, expected) == 0); - freeit((void *)&given); - freeit((void *)&expected); + free(expected); + free(given); + expected = NULL; + given = NULL; test_ok(); } rc = 0; out: + logerr_set_stream(NULL); if (expected != NULL) { - freeit((void *)expected); + free(expected); + expected = NULL; } if (given != NULL) { - freeit((void *)&given); + free(given); + given = NULL; + } + if (file != NULL) { + if (fclose(file)) { + logerr("fclose(file)"); + rc = -1; + } } return rc; } @@ -119,18 +89,11 @@ int main(void) { int rc = EXIT_FAILURE; - test_EXIT_USAGE(); - if (test_slurp()) { logerr("test_slurp()"); goto out; } - if (test_freeit()) { - logerr("test_freeit()"); - goto out; - } - rc = EXIT_SUCCESS; out: return rc; |