aboutsummaryrefslogtreecommitdiffstats
path: root/eztester.h
diff options
context:
space:
mode:
authorJP Appel <jeanpierre.appel01@gmail.com>2024-07-20 18:24:56 -0400
committerJP Appel <jeanpierre.appel01@gmail.com>2024-07-20 18:24:56 -0400
commitb4de032767f13d2b6cfa2063b67fc3a74f3b1670 (patch)
treebb21fba93bc1b61511bb7486ca7e9222d1d2ba96 /eztester.h
parent2fc02538130df615ff061f4b4aa5a04a4d9405dd (diff)
added static target, first implementation of eztester
Diffstat (limited to 'eztester.h')
-rw-r--r--eztester.h51
1 files changed, 51 insertions, 0 deletions
diff --git a/eztester.h b/eztester.h
new file mode 100644
index 0000000..a8deb83
--- /dev/null
+++ b/eztester.h
@@ -0,0 +1,51 @@
+#pragma once
+
+#include <stddef.h>
+#include <stdio.h>
+
+// possible results of a test
+// error is always fatal
+typedef enum { TEST_PASS, TEST_FAIL, TEST_WARNING, TEST_ERROR } eztester_status;
+
+typedef enum { EXIT_ON_WARNING, CONTINUE_ALL, EXIT_ON_FAIL } eztester_behavior;
+
+typedef eztester_status(eztester_runner)();
+
+typedef struct {
+ eztester_runner *runner;
+ const char *name;
+} eztester_test;
+
+typedef struct {
+ eztester_test *tests;
+ size_t length;
+ size_t capacity;
+} eztester_list;
+
+eztester_list *eztester_create_list(const size_t capacity);
+void eztester_register(eztester_list *test_list, const eztester_test new_test);
+void eztester_run(eztester_list *test_list, const eztester_behavior behavior);
+void eztester_clear_list(eztester_list *test_list);
+void eztester_destroy_list(eztester_list *test_list);
+
+void eztester_test_print(const char *format, ...);
+
+/* Run a shell script found at file_path, it can read in from input and write to
+ * output
+ *
+ * Returns exit code of the command
+ * UNIMPLEMENTED!
+ */
+unsigned char ezteser_run_shell_script(const char *file_path, FILE *input,
+ FILE *output);
+
+// tests that always return an eztester_status
+
+// always return pass
+eztester_status eztester_always_pass_test();
+// always return warning
+eztester_status eztester_always_warn_test();
+// always return fail
+eztester_status eztester_always_fail_test();
+// always return error
+eztester_status eztester_always_error_test();