diff options
| author | Cody Logan <cody@lokken.dev> | 2023-11-28 17:15:27 -0800 |
|---|---|---|
| committer | Cody Logan <cody@lokken.dev> | 2023-11-28 17:15:27 -0800 |
| commit | a9dacce3f986e28e5ca16268ebfa57566cfc65cf (patch) | |
| tree | 5bbb53bba3c85062b8261677b6ec47f72ad98979 /test-convert-markdown.c | |
| parent | 9253b30c0dd8180366ee884c6404b23772c57997 (diff) | |
| download | convert-markdown-a9dacce3f986e28e5ca16268ebfa57566cfc65cf.tar.gz convert-markdown-a9dacce3f986e28e5ca16268ebfa57566cfc65cf.zip | |
Initial attempts at testing
Diffstat (limited to 'test-convert-markdown.c')
| -rw-r--r-- | test-convert-markdown.c | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/test-convert-markdown.c b/test-convert-markdown.c new file mode 100644 index 0000000..5925184 --- /dev/null +++ b/test-convert-markdown.c @@ -0,0 +1,51 @@ +#include "parse-file.h" + +static int test_parse_file(const char* testname, const char* input, const char* output) { + FILE* instream = tmpfile(); + FILE* outstream = tmpfile(); + + /* for some reason, input isn't properly written to instream */ + fprintf(instream, "%s\n", input); + + const int length = strlen(output) + 1; + char buffer[length]; + + /* TODO: use instream instead of stdin */ + _parse_file(stdin, outstream); + const int tmp_length = ftell(outstream) + 1; + rewind(outstream); + + fgets(buffer, length, outstream); + fclose(instream); + fclose(outstream); + + if (strcmp(buffer, output) == 0 && tmp_length == length) { + printf("%s test succeeded\n", testname); + return 0; + } else { + printf("%s test failed\n", testname); + printf("%s !=\n%s\n", buffer, output); + return 1; + } +} + +int main(void) { + printf("=============\nRunning Tests\n=============\n"); + + int errors = 0; + errors += test_parse_file("1. Header", "# header", "<h1 id=\"header\">header</h1>\n"); + //errors += test_parse_file("2. Bold", "*bold*", "<strong>bold</strong>\n"); + + printf("\n============\nTest Summary\n============\n"); + + switch (errors) { + case 0: + printf("All tests succeeded\n"); + break; + case 1: + printf("One test failed\n"); + break; + default: + printf("%i tests failed\n", errors); + } +} |
