Starting from 2021-07-01, all LRZ GitLab users will be required to explicitly accept the GitLab Terms of Service. Please see the detailed information at https://doku.lrz.de/display/PUBLIC/GitLab and make sure that your projects conform to the requirements.

tst_LaTeX_grammar.py 1.38 KB
Newer Older
1 2
#!/usr/bin/python3

Eckhart Arnold's avatar
Eckhart Arnold committed
3
"""tst_LaTeX_grammar.py - runs the unit tests for the LaTeX grammar
4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21

Author: Eckhart Arnold <arnold@badw.de>

Copyright 2017 Bavarian Academy of Sciences and Humanities

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
"""

22
import sys
23 24 25

import DHParser.dsl

26
sys.path.extend(['../../', '../', './'])
27 28

from DHParser import testing
29 30

if not DHParser.dsl.recompile_grammar('LaTeX.ebnf', force=True):  # recompiles Grammar only if it has changed
31 32 33
    with open('LaTeX_ebnf_ERRORS.txt') as f:
        print(f.read())
    sys.exit(1)
34

35 36
from DHParser import toolkit
from LaTeXCompiler import get_grammar, get_transformer
37

38
with toolkit.logging(False):
39 40 41 42 43 44
    error_report = testing.grammar_suite('grammar_tests', get_grammar,
                                         get_transformer, report=True, verbose=True)
if error_report:
    print('\n')
    print(error_report)
    sys.exit(1)
Eckhart Arnold's avatar
Eckhart Arnold committed
45 46
else:
    print('\nSUCCESS! All tests passed :-)')