diff options
author | John MacFarlane <jgm@berkeley.edu> | 2016-06-02 10:43:47 -0700 |
---|---|---|
committer | John MacFarlane <jgm@berkeley.edu> | 2016-06-02 10:45:19 -0700 |
commit | 8a53ee9b579fef9a75bd25f881827f28739a1f68 (patch) | |
tree | a921525ef8a37e0e147f2b203acc2f951de7b28d /test/roundtrip_tests.py | |
parent | f4a82cf6a5f553c2c886de02c23b41f06f8a19c6 (diff) |
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.)
Diffstat (limited to 'test/roundtrip_tests.py')
-rw-r--r-- | test/roundtrip_tests.py | 38 |
1 files changed, 38 insertions, 0 deletions
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']) |