aboutsummaryrefslogtreecommitdiff
path: root/test-convert-markdown.c
diff options
context:
space:
mode:
authorCody Logan <cody@lokken.dev>2023-11-28 17:15:27 -0800
committerCody Logan <cody@lokken.dev>2023-11-28 17:15:27 -0800
commita9dacce3f986e28e5ca16268ebfa57566cfc65cf (patch)
tree5bbb53bba3c85062b8261677b6ec47f72ad98979 /test-convert-markdown.c
parent9253b30c0dd8180366ee884c6404b23772c57997 (diff)
downloadconvert-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.c51
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);
+ }
+}