summaryrefslogtreecommitdiff
path: root/tests/util.c
diff options
context:
space:
mode:
Diffstat (limited to 'tests/util.c')
-rw-r--r--tests/util.c101
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;