From 8dba3f7f3591f4271522835cb2057acf4ae56f53 Mon Sep 17 00:00:00 2001 From: Nick Wellnhofer Date: Tue, 18 Nov 2014 18:37:56 +0100 Subject: Start with tests for the C API The C API tests can be run individually via build/api_test/api_test Or together with the spec tests via cmake --build build --target test --- api_test/main.c | 57 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 api_test/main.c (limited to 'api_test/main.c') diff --git a/api_test/main.c b/api_test/main.c new file mode 100644 index 0000000..051d32b --- /dev/null +++ b/api_test/main.c @@ -0,0 +1,57 @@ +#include +#include +#include + +#include + +#include "harness.h" + +static void +create_tree(test_batch_runner *runner) +{ + cmark_node *doc = cmark_node_new(CMARK_NODE_DOCUMENT); + + cmark_node *p = cmark_node_new(CMARK_NODE_PARAGRAPH); + OK(runner, cmark_node_append_child(doc, p), "append1"); + INT_EQ(runner, cmark_node_check(doc), 0, "append1 consistent"); + + cmark_node *emph = cmark_node_new(CMARK_NODE_EMPH); + OK(runner, cmark_node_prepend_child(p, emph), "prepend1"); + INT_EQ(runner, cmark_node_check(doc), 0, "prepend1 consistent"); + + cmark_node *str1 = cmark_node_new(CMARK_NODE_STRING); + cmark_node_set_content(str1, "Hello, "); + OK(runner, cmark_node_prepend_child(p, str1), "prepend2"); + INT_EQ(runner, cmark_node_check(doc), 0, "prepend2 consistent"); + + cmark_node *str3 = cmark_node_new(CMARK_NODE_STRING); + cmark_node_set_content(str3, "!"); + OK(runner, cmark_node_append_child(p, str3), "append2"); + INT_EQ(runner, cmark_node_check(doc), 0, "append2 consistent"); + + cmark_node *str2 = cmark_node_new(CMARK_NODE_STRING); + cmark_node_set_content(str2, "world"); + OK(runner, cmark_node_append_child(emph, str2), "append3"); + INT_EQ(runner, cmark_node_check(doc), 0, "append3 consistent"); + + char *html = cmark_render_html(doc); + STR_EQ(runner, html, "

Hello, world!

\n", + "render_html"); + free(html); + + cmark_node_destroy(doc); +} + +int main() { + int retval; + test_batch_runner *runner = test_batch_runner_new(); + + create_tree(runner); + + test_print_summary(runner); + retval = test_ok(runner) ? 0 : 1; + free(runner); + + return retval; +} + -- cgit v1.2.3 From 1d39b50d8889155de11df40f7e89bec09e0c4681 Mon Sep 17 00:00:00 2001 From: Nick Wellnhofer Date: Tue, 18 Nov 2014 21:34:54 +0100 Subject: Fix api_test warnings --- api_test/main.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'api_test/main.c') diff --git a/api_test/main.c b/api_test/main.c index 051d32b..1ff606b 100644 --- a/api_test/main.c +++ b/api_test/main.c @@ -2,7 +2,8 @@ #include #include -#include +#include "cmark.h" +#include "node.h" #include "harness.h" @@ -34,7 +35,7 @@ create_tree(test_batch_runner *runner) OK(runner, cmark_node_append_child(emph, str2), "append3"); INT_EQ(runner, cmark_node_check(doc), 0, "append3 consistent"); - char *html = cmark_render_html(doc); + char *html = (char *)cmark_render_html(doc); STR_EQ(runner, html, "

Hello, world!

\n", "render_html"); free(html); -- cgit v1.2.3