You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
59 lines
1.6 KiB
59 lines
1.6 KiB
#!/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))
|