cmark

My personal build of CMark ✏️

Commit
e59b38ee67eea5d62066df29edf025f53096f46e
Parent
8a53ee9b579fef9a75bd25f881827f28739a1f68
Author
John MacFarlane <jgm@berkeley.edu>
Date

roundtrip tests: remove spurious failures.

In the commonmark writer we separate lists, and lists and indented code, using a dummy HTML comment rather than two blank lines (this is more portable).

So in evaluating the round-trip tests, we now strip out these comments.

We also normalize HTML to avoid issues having to do with line breaks.

Diffstat

2 files changed, 10 insertions, 2 deletions

Status File Name N° Changes Insertions Deletions
Modified test/CMakeLists.txt 1 0 1
Modified test/roundtrip_tests.py 11 10 1
diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt
@@ -50,7 +50,6 @@ IF (PYTHONINTERP_FOUND)
     ${PYTHON_EXECUTABLE}
     "${CMAKE_CURRENT_SOURCE_DIR}/roundtrip_tests.py"
     "--spec" "${CMAKE_CURRENT_SOURCE_DIR}/spec.txt"
-    "--no-normalize"
     "--library-dir" "${CMAKE_CURRENT_BINARY_DIR}/../src"
     )
 
diff --git a/test/roundtrip_tests.py b/test/roundtrip_tests.py
@@ -1,3 +1,4 @@
+import re
 import sys
 from spec_tests import get_tests, do_test
 from cmark import CMark
@@ -26,7 +27,15 @@ def converter(md):
   cmark = CMark(prog=args.program, library_dir=args.library_dir)
   [ec, result, err] = cmark.to_commonmark(md)
   if ec == 0:
-    return cmark.to_html(result)
+    [ec, html, err] = cmark.to_html(result)
+    if ec == 0:
+        # In the commonmark writer we insert dummy HTML
+        # comments between lists, and between lists and code
+        # blocks.  Strip these out, since the spec uses
+        # two blank lines instead:
+        return [ec, re.sub('<!-- end list -->\n', '', html), '']
+    else:
+        return [ec, html, err]
   else:
     return [ec, result, err]