From 8a53ee9b579fef9a75bd25f881827f28739a1f68 Mon Sep 17 00:00:00 2001 From: John MacFarlane Date: Thu, 2 Jun 2016 10:43:47 -0700 Subject: Added new roundtrip_tests.py. This replaces the old use of simple shell scripts. It is much faster, and more flexible. (We will be able to do custom normalization and skip certain tests.) --- test/roundtrip_tests.py | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 test/roundtrip_tests.py (limited to 'test/roundtrip_tests.py') diff --git a/test/roundtrip_tests.py b/test/roundtrip_tests.py new file mode 100644 index 0000000..8becb08 --- /dev/null +++ b/test/roundtrip_tests.py @@ -0,0 +1,38 @@ +import sys +from spec_tests import get_tests, do_test +from cmark import CMark +import argparse + +if __name__ == "__main__": + parser = argparse.ArgumentParser(description='Run cmark roundtrip tests.') + parser.add_argument('-p', '--program', dest='program', nargs='?', default=None, + help='program to test') + parser.add_argument('-s', '--spec', dest='spec', nargs='?', default='spec.txt', + help='path to spec') + parser.add_argument('-P', '--pattern', dest='pattern', nargs='?', + default=None, help='limit to sections matching regex pattern') + parser.add_argument('--library-dir', dest='library_dir', nargs='?', + default=None, help='directory containing dynamic library') + parser.add_argument('--no-normalize', dest='normalize', + action='store_const', const=False, default=True, + help='do not normalize HTML') + parser.add_argument('-n', '--number', type=int, default=None, + help='only consider the test with the given number') + args = parser.parse_args(sys.argv[1:]) + +spec = sys.argv[1] + +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) + else: + return [ec, result, err] + +tests = get_tests(args.spec) +result_counts = {'pass': 0, 'fail': 0, 'error': 0, 'skip': 0} +for test in tests: + do_test(converter, test, args.normalize, result_counts) + +exit(result_counts['fail'] + result_counts['error']) -- cgit v1.2.3