diff options
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(); |
