summaryrefslogtreecommitdiff
path: root/tests/util.c
diff options
context:
space:
mode:
authorEuAndreh <eu@euandre.org>2024-04-07 11:49:25 -0300
committerEuAndreh <eu@euandre.org>2024-04-07 11:49:25 -0300
commit381492a000454822398a8737c73ea586464ee56a (patch)
tree9e28124ba2373b157356f0d5172b60009a20041e /tests/util.c
parentsrc/lib.c: Print project metadata on pindaiba_main (diff)
downloadpindaiba-381492a000454822398a8737c73ea586464ee56a.tar.gz
pindaiba-381492a000454822398a8737c73ea586464ee56a.tar.xz
src/util.c: Add slurp(), with a simple test
Diffstat (limited to '')
-rw-r--r--tests/util.c66
1 files changed, 66 insertions, 0 deletions
diff --git a/tests/util.c b/tests/util.c
new file mode 100644
index 0000000..5e2e203
--- /dev/null
+++ b/tests/util.c
@@ -0,0 +1,66 @@
+#include "../src/util.c"
+
+#include <assert.h>
+
+#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);
+ test_ok();
+ }
+
+ rc = 0;
+out:
+ return rc;
+}
+
+
+int
+main(void) {
+ int rc = -1;
+
+ if (test_slurp()) {
+ logerr("test_slurp();\n");
+ goto out;
+ }
+
+ rc = 0;
+out:
+ return !!rc;
+}