#include "../src/util.c" #include #include "../src/testing.h" #include "slurp.h" static int test_slurp(void) { int rc = -1; char *given = NULL; char *expected = NULL; { testing("non-existent file"); const char *const filename = __FILE__ ".non-existant"; const int ret_given = slurp(filename, &given); const int ret_expected = slurp_for_tests(filename, &expected); assert(given == NULL); assert(expected == NULL); assert(!!ret_given == !!ret_expected); test_ok(); } { testing("slurp() == slurp_for_tests()"); if (slurp(__FILE__, &given)) { logerr("slurp(__FILE__, &given);\n"); goto out; } if (slurp_for_tests(__FILE__, &expected)) { logerr("slurp_for_tests(__FILE__, &expected);\n"); goto out; } assert(given != NULL); assert(expected != NULL); assert(strcmp(given, expected) == 0); free(given); given = NULL; free(expected); expected = NULL; test_ok(); } rc = 0; out: if (expected != NULL) { free(expected); } if (given != NULL) { free(given); } return rc; } static int test_freeit(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\n", strerror(errno)); goto out; } assert(ptr != NULL); freeit((void *)&ptr); assert(ptr == NULL); test_ok(); } rc = 0; out: if (ptr != NULL) { freeit((void *)&ptr); } return rc; } int main(void) { int rc = -1; if (test_slurp()) { logerr("test_slurp();\n"); goto out; } if (test_freeit()) { logerr("test_freeit();\n"); goto out; } rc = 0; out: return !!rc; }