summaryrefslogtreecommitdiffstats
path: root/debian/uncrustify-trinity/uncrustify-trinity-0.78.0/tests/run_format_tests.py
blob: 671188c25d4625836dfbd9509984984ab3ee7e0c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
#!/usr/bin/env python
#
# Reads tests from the .test files on the command line (or the built-in set)
# and runs them, or writes a CTest script to run them.
#
# * @author  Ben Gardner        October 2009
# * @author  Guy Maurel         October 2015
# * @author  Matthew Woehlke    June 2018
#

import argparse
import os
import sys

import test_uncrustify as tu


# -----------------------------------------------------------------------------
def main(argv):
    parser = argparse.ArgumentParser(description='Run uncrustify format tests')
    tu.add_format_tests_arguments(parser)
    args = tu.parse_args(parser)

    # Read tests
    tests = []
    print('Tests: {!s}'.format(args.tests))
    for group in args.tests:
        tests_file = os.path.join(tu.test_dir, '{}.test'.format(group))
        tests += tu.read_format_tests(tests_file, group)

    if args.write_ctest:
        tu.config.python_exe = args.python
        tu.config.uncrustify_exe = tu.fixup_ctest_path(
            tu.config.uncrustify_exe, args.cmake_config)

        with open(args.write_ctest, 'wt') as f:
            for test in tests:
                test.print_as_ctest(f)

    else:
        if args.select:
            s = tu.Selector(args.select)
        else:
            s = None

        counts = tu.run_tests(tests, args, s)
        tu.report(counts)

        if counts['failing'] > 0:
            sys.exit(2)
        if counts['mismatch'] > 0 or counts['unstable'] > 0:
            sys.exit(1)


# %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

if __name__ == '__main__':
    sys.exit(main(sys.argv))