MCPcopy Index your code
hub / github.com/commonmark/cmark / iterator_delete

Function iterator_delete

api_test/main.c:312–346  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

310}
311
312static void iterator_delete(test_batch_runner *runner) {
313 static const char md[] = "a *b* c\n"
314 "\n"
315 "* item1\n"
316 "* item2\n"
317 "\n"
318 "a `b` c\n"
319 "\n"
320 "* item1\n"
321 "* item2\n";
322 cmark_node *doc = cmark_parse_document(md, sizeof(md) - 1, CMARK_OPT_DEFAULT);
323 cmark_iter *iter = cmark_iter_new(doc);
324 cmark_event_type ev_type;
325
326 while ((ev_type = cmark_iter_next(iter)) != CMARK_EVENT_DONE) {
327 cmark_node *node = cmark_iter_get_node(iter);
328 // Delete list, emph, and code nodes.
329 if ((ev_type == CMARK_EVENT_EXIT && node->type == CMARK_NODE_LIST) ||
330 (ev_type == CMARK_EVENT_EXIT && node->type == CMARK_NODE_EMPH) ||
331 (ev_type == CMARK_EVENT_ENTER && node->type == CMARK_NODE_CODE)) {
332 cmark_node_free(node);
333 }
334 }
335
336 char *html = cmark_render_html(doc, CMARK_OPT_DEFAULT);
337 static const char expected[] = "<p>a c</p>\n"
338 "<p>a c</p>\n";
339 STR_EQ(runner, html, expected, "iterate and delete nodes");
340
341 cmark_mem *allocator = cmark_get_default_mem_allocator();
342
343 allocator->free(html);
344 cmark_iter_free(iter);
345 cmark_node_free(doc);
346}
347
348static void create_tree(test_batch_runner *runner) {
349 char *html;

Callers 1

mainFunction · 0.85

Calls 9

cmark_parse_documentFunction · 0.85
cmark_iter_newFunction · 0.85
cmark_iter_nextFunction · 0.85
cmark_iter_get_nodeFunction · 0.85
cmark_node_freeFunction · 0.85
cmark_render_htmlFunction · 0.85
STR_EQFunction · 0.85
cmark_iter_freeFunction · 0.85

Tested by

no test coverage detected