diff options
| author | JP Appel <jeanpierre.appel01@gmail.com> | 2024-07-20 18:24:56 -0400 |
|---|---|---|
| committer | JP Appel <jeanpierre.appel01@gmail.com> | 2024-07-20 18:24:56 -0400 |
| commit | b4de032767f13d2b6cfa2063b67fc3a74f3b1670 (patch) | |
| tree | bb21fba93bc1b61511bb7486ca7e9222d1d2ba96 /eztester.h | |
| parent | 2fc02538130df615ff061f4b4aa5a04a4d9405dd (diff) | |
added static target, first implementation of eztester
Diffstat (limited to 'eztester.h')
| -rw-r--r-- | eztester.h | 51 |
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(); |
