summaryrefslogtreecommitdiffstats
path: root/debian/uncrustify-trinity/uncrustify-trinity-0.78.0/tests/cli/test_cli_options.py
diff options
context:
space:
mode:
Diffstat (limited to 'debian/uncrustify-trinity/uncrustify-trinity-0.78.0/tests/cli/test_cli_options.py')
-rwxr-xr-xdebian/uncrustify-trinity/uncrustify-trinity-0.78.0/tests/cli/test_cli_options.py940
1 files changed, 0 insertions, 940 deletions
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.78.0/tests/cli/test_cli_options.py b/debian/uncrustify-trinity/uncrustify-trinity-0.78.0/tests/cli/test_cli_options.py
deleted file mode 100755
index 4416e379..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.78.0/tests/cli/test_cli_options.py
+++ /dev/null
@@ -1,940 +0,0 @@
-#!/usr/bin/python
-
-"""
-test_cli_options.py
-
-Tests output generated by Uncrustifys commandline options
-(excluding actual source code formatting)
-
-:author: DanielChumak
-:license: GPL v2+
-"""
-
-from __future__ import print_function
-
-import sys
-from sys import stderr, argv, exit as sys_exit
-from os import makedirs, remove, name as os_name
-from os.path import dirname, relpath, abspath, isdir, isfile, join as path_join, split as path_split
-from shutil import rmtree, copyfile
-from subprocess import Popen, PIPE
-from io import open
-from datetime import date
-import re
-import difflib
-import argparse
-import pprint
-#import traceback
-
-if os_name == 'nt':
- EX_OK = 0
- EX_USAGE = 64
- EX_SOFTWARE = 70
- NULL_DEVICE = 'nul'
-else:
- from os import EX_OK, EX_USAGE, EX_SOFTWARE
- NULL_DEVICE = '/dev/null'
-
-RE_CALLSTACK = r'\[CallStack:( \w+:\w+(, \w+:\w+)*|-DEBUG NOT SET-)?\]'
-RE_DO_SPACE = (r'\n\ndo_space : WARNING: unrecognized do_space:'
- r'\n[^\n]+\n[^\n]+\n')
-
-
-def eprint(*args, **kwargs):
- """
- print() wrapper that sets file=stderr
- """
- print(*args, file=stderr, **kwargs)
-
-
-def decode_out(text):
- text = text.decode('utf-8')
- text = text.replace(u'\r\n', u'\n')
- text = text.replace(u'\r', u'\n')
- return text
-
-
-def proc(bin_path, args_arr=()):
- """
- simple Popen wrapper to return std out/err utf8 strings
-
-
- Parameters
- ----------------------------------------------------------------------------
- :param bin_path: string
- path to the binary that is going to be called
-
- :param args_arr : list/tuple
- all needed arguments
-
-
- :return: string, string
- ----------------------------------------------------------------------------
- generated output of both stdout and stderr
-
- >>> proc("echo", "test")
- 'test'
- """
- if not isfile(bin_path):
- eprint("bin 1 is not a file: %s" % bin_path)
- return False
-
- # call uncrustify, hold output in memory
- call_arr = [bin_path]
- call_arr.extend(args_arr)
- proc = Popen(call_arr, stdout=PIPE, stderr=PIPE)
-
- out_txt, err_txt = proc.communicate()
-
- return decode_out(out_txt), decode_out(err_txt)
-
-
-def write_to_output_path(output_path, result_str):
- """
- writes the contents of result_str to the output path
- """
- print("Auto appending differences to: " + output_path)
-
- '''
- newline = None: this outputs \r\n
- newline = "\r": this outputs \r
- newline = "\n": this outputs \n
- newline = "" : this outputs \n
- For the sake of consistency, all newlines are now being written out as \n
- However, if the result_str itself contains \r\n, then \r\n will be output
- as this code doesn't post process the data being written out
- '''
- with open(output_path, 'w', encoding="utf-8", newline="\n") as f:
- f.write(result_str)
-
-
-def get_file_content(fp):
- """
- returns file content as an utf8 string or None if fp is not a file
-
-
- Parameters
- ----------------------------------------------------------------------------
- :param fp: string
- path of the file that will be read
-
-
- :return: string or None
- ----------------------------------------------------------------------------
- the file content
-
- """
- #print("3-1: fp is "+fp)
- #print("3-1b: gen_result_path is "+gen_result_path)
- out = None
-
- if isfile(fp):
- #print("A: "+abspath(fp))
- #print("2a is a file: %s" % fp)
- with open(fp, encoding="utf-8", newline="\n") as f:
- out = f.read()
- #else:
- #print("B: "+abspath(fp))
- #print("2bx is Not a file: %s" % fp)
- #for line in traceback.format_stack():
- # print(line.strip())
- #print("2bx+ is Not a file: %s" % fp)
-
- return out
-
-
-def check_generated_output(gen_expected_path, gen_result_path,
- result_manip=None, program_args=None):
- """
- compares the content of two files,
-
- is intended to compare a file that was generated during a call of Uncrustify
- with a file that has the expected content
-
-
- Parameters
- ----------------------------------------------------------------------------
- :param gen_expected_path: string
- path to a file that will be compared with the generated file
-
- :param gen_result_path: string
- path to the file that will be generated by Uncrustify
-
- :param result_manip: lambda OR list or tuple of lambdas
- optional lambda function(s) that will be applied (before the comparison)
- on the content of the generated file,
- the lambda function(s) should accept one string parameter
-
- :param program_args: tuple of options
- a collection of multiple options used to add extra functionality to the
- script (i.e. auto apply changes or show diffs on command line)
-
- :return: bool
- ----------------------------------------------------------------------------
- True or False depending on whether both files have the same content
-
- >>> check_generated_output("/dev/null", "/dev/null")
- True
- """
-
- #print("2-1: gen_expected_path is "+gen_expected_path)
- #print("2-2: gen_result_path is "+gen_result_path)
- gen_exp_txt = get_file_content(gen_expected_path)
- #print("2-3: gen_exp_txt is ")
- #+gen_exp_txt)
- if gen_exp_txt is None:
- return False
-
- gen_res_txt = get_file_content(gen_result_path)
- #print("2-4: gen_res_txt is "+gen_res_txt)
- if gen_res_txt is None:
- return False
-
- #print("2: result_manip is "+result_manip)
- #if result_manip is not None:
- # print("2-5: result_manip is "+result_manip)
- #else:
- # print("2-6: result_manip is None")
- if result_manip is not None:
- if type(result_manip) is list or type(result_manip) is tuple:
- for m in result_manip:
- gen_res_txt = m(gen_res_txt)
- else:
- gen_res_txt = result_manip(gen_res_txt)
-
- #print("2-7: gen_res_txt is ")
- #print(gen_res_txt)
- #print("2-8: gen_exp_txt is ")
- #print(gen_exp_txt)
- if gen_res_txt != gen_exp_txt:
- with open(gen_result_path, 'w', encoding="utf-8", newline="") as f:
- f.write(gen_res_txt)
-
- if program_args.apply and program_args.auto_output_path:
- write_to_output_path(program_args.auto_output_path, gen_res_txt)
- return True
- elif program_args.diff:
- print("\n************************************")
- print("Problem (1) with %s" % gen_result_path)
- print("************************************")
-
- file_diff = difflib.ndiff(gen_res_txt.splitlines(False),
- gen_exp_txt.splitlines(False))
-
- for line in file_diff:
- pprint.PrettyPrinter(indent=4, width=280).pprint(line)
-
- return False
- else:
- print("\nProblem (2) with %s" % gen_result_path)
- print("use(gen): '--diff' to find out why %s %s are different"
- % (gen_result_path, gen_expected_path))
- return False
-
- remove(gen_result_path)
- #print(abspath(gen_result_path))
-
- return True
-
-
-def check_std_output(expected_path, result_path, result_str, result_manip=None,
- program_args=None):
- """
- compares output generated by Uncrustify (std out/err) with a the content of
- a file
-
- Parameters
- ----------------------------------------------------------------------------
- :param expected_path: string
- path of the file that will be compared with the output of Uncrustify
-
- :param result_path: string
- path to which the Uncrustifys output will be saved in case of a mismatch
-
- :param result_str: string (utf8)
- the output string generated by Uncrustify
-
- :param result_manip: lambda OR list or tuple of lambdas
- see result_manip for check_generated_output
-
- :param program_args: tuple of options
- a collection of multiple options used to add extra functionality to the
- script (i.e. auto apply changes or show diffs on command line)
-
- :return: bool
- ----------------------------------------------------------------------------
- True or False depending on whether both files have the same content
-
- """
- exp_txt = get_file_content(expected_path)
- if exp_txt is None:
- return False
-
- if result_manip is not None:
- if type(result_manip) is list or type(result_manip) is tuple:
- for m in result_manip:
- result_str = m(result_str)
- else:
- result_str = result_manip(result_str)
-
- if result_str != exp_txt:
- with open(result_path, 'w', encoding="utf-8", newline="\n") as f:
- f.write(result_str)
-
- if program_args.apply and program_args.auto_output_path:
- write_to_output_path(program_args.auto_output_path, result_str)
- return True
-
- if program_args.diff:
- print("\n************************************")
- print("Problem (3) with result_path is %s" % result_path)
- print(" expected_path is %s" % expected_path)
- print("************************************")
-
- file_diff = difflib.ndiff(result_str.splitlines(False),
- exp_txt.splitlines(False))
-
- """
- change the value of width
- look at: If compact is false (the default)...
- """
- for line in file_diff:
- pprint.PrettyPrinter(indent=4, width=280).pprint(line)
- else:
- print("\nProblem (4) with %s" % result_path)
- print("use: '--diff' to find out why %s %s are different"
- % (result_path, expected_path))
- return False
- return True
-
-
-def check_uncrustify_output(
- uncr_bin,
- program_args,
- args_arr=(),
- out_expected_path=None, out_result_manip=None, out_result_path=None,
- err_expected_path=None, err_result_manip=None, err_result_path=None,
- gen_expected_path=None, gen_result_manip=None, gen_result_path=None):
- """
- compares outputs generated by Uncrustify with files
-
- Parameters
- ----------------------------------------------------------------------------
- :param uncr_bin: string
- path to the Uncrustify binary
-
- :param program_args: tuple of options
- a collection of multiple options used to add extra functionality to the
- script (i.e. auto apply changes or show diffs on command line)
-
- :param args_arr: list/tuple
- Uncrustify commandline arguments
-
- :param out_expected_path: string
- file that will be compared with Uncrustifys stdout output
-
- :param out_result_manip: string
- lambda function that will be applied to Uncrustifys stdout output
- (before the comparison with out_expected_path),
- the lambda function should accept one string parameter
-
- :param out_result_path: string
- path where Uncrustifys stdout output will be saved to in case of a
- mismatch
-
- :param err_expected_path: string
- path to a file that will be compared with Uncrustifys stderr output
-
- :param err_result_manip: string
- see out_result_manip (is applied to Uncrustifys stderr instead)
-
- :param err_result_path: string
- see out_result_path (is applied to Uncrustifys stderr instead)
-
- :param gen_expected_path: string
- path to a file that will be compared with a file generated by Uncrustify
-
- :param gen_result_path: string
- path to a file that will be generated by Uncrustify
-
- :param gen_result_manip:
- see out_result_path (is applied, in memory, to the file content of the
- file generated by Uncrustify instead)
-
-
- :return: bool
- ----------------------------------------------------------------------------
- True if all specified files match up, False otherwise
- """
- # check param sanity
- if not out_expected_path and not err_expected_path and not gen_expected_path:
- eprint("No expected comparison file provided")
- return False
-
- if bool(gen_expected_path) != bool(gen_result_path):
- eprint("'gen_expected_path' and 'gen_result_path' must be used in "
- "combination")
- return False
-
- if gen_result_manip and not gen_result_path:
- eprint("Set up 'gen_result_path' if 'gen_result_manip' is used")
-
- out_res_txt, err_res_txt = proc(uncr_bin, args_arr)
-
- ret_flag = True
-
- if program_args.apply:
- valid_path = [out_expected_path, err_expected_path, gen_expected_path]
- program_args.auto_output_path = next(item for item in valid_path if item is not None)
-
- if out_expected_path and not check_std_output(
- out_expected_path, out_result_path, out_res_txt,
- result_manip=out_result_manip,
- program_args=program_args):
- ret_flag = False
-
- if program_args.apply:
- valid_path = [err_expected_path, out_expected_path, gen_expected_path]
- program_args.auto_output_path = next(item for item in valid_path if item is not None)
-
- if err_expected_path and not check_std_output(
- err_expected_path, err_result_path, err_res_txt,
- result_manip=err_result_manip,
- program_args=program_args):
- ret_flag = False
-
- #print("1: gen_expected_path is "+gen_expected_path)
- #print("1: gen_result_path is "+gen_result_path)
- #if gen_result_manip is not None:
- # print("1: gen_result_manip is "+gen_result_manip)
- #else:
- # print("1: gen_result_manip is None")
- #print("program_args is "+program_args)
- if gen_expected_path and not check_generated_output(
- gen_expected_path, gen_result_path,
- result_manip=gen_result_manip,
- program_args=program_args):
- ret_flag = False
-
- return ret_flag
-
-
-def clear_dir(path):
- """
- clears a directory by deleting and creating it again
-
-
- Parameters
- ----------------------------------------------------------------------------
- :param path:
- path of the directory
-
-
- :return: void
- """
- if isdir(path):
- rmtree(path)
- makedirs(path)
-
-
-def reg_replace(pattern, replacement):
- """
- returns a generated lambda function that applies a regex string replacement
-
-
- Parameters:
- ----------------------------------------------------------------------------
-
- :param pattern: regex pattern
- the pattern that will be used to find targets to replace
-
- :param replacement: string
- the replacement that will be applied
-
-
- :return: lambda function
- ----------------------------------------------------------------------------
- the generated lambda function, takes in a string on which the
- replacement will be applied and returned
-
- >>> l = reg_replace(r"a", "b")
- >>> a = l("a")
- 'b'
- """
- return lambda text: re.sub(pattern, replacement, text)
-
-
-def string_replace(string_target, replacement):
- """
- returns a generated lambda function that applies a string replacement
-
- like reg_replace, uses string.replace() instead
- """
- return lambda text: text.replace(string_target, replacement)
-
-
-def s_path_join(path, *paths):
- """
- Wrapper for the os.path.join function, splits every path component to
- replace it with a system specific path separator. This is for consistent
- path separators (and also systems that don't use either '\' or '/')
-
-
- Parameter
- ----------------------------------------------------------------------------
- :params path, paths: string
- see os.path.join
-
- :return: string
- ----------------------------------------------------------------------------
- a joined path, see os.path.join
-
- >>> s_path_join('./z/d/', '../a/b/c/f')
- r'.\z\a\b\c\f'
- """
- p_splits = list(path_split(path))
- for r in map(path_split, paths):
- p_splits.extend(r)
- return path_join(*p_splits)
-
-
-def main(args):
- # set working dir to script dir
- script_dir = dirname(relpath(__file__))
-
- parser = argparse.ArgumentParser(description='Test CLI Options')
- parser.add_argument('--diff', action='store_true',
- help='show diffs when there is a test mismatch')
- parser.add_argument('--apply', action='store_true',
- help='auto apply the changes from the results folder to the output folder')
- parser.add_argument('--build',
- default=s_path_join(script_dir, '../../build'),
- help='specify location of the build directory')
- parser.add_argument('--config',
- default='Release',
- help='the build_type value (Release or Debug)')
- parser.add_argument('--test',
- default=s_path_join(script_dir, '../../build/tests/cli'),
- help='specify the location of the test cli build folder')
-
- parsed_args = parser.parse_args()
-
- # find the uncrustify binary
- bin_found = False
- uncr_bin = ''
- bd_dir = parsed_args.build
- test_dir = parsed_args.test
-
- bin_paths = [s_path_join(bd_dir, 'uncrustify'),
- s_path_join(bd_dir, 'uncrustify.exe'),
- s_path_join(bd_dir, 'Debug/uncrustify'),
- s_path_join(bd_dir, 'Debug/uncrustify.exe'),
- s_path_join(bd_dir, 'Release/uncrustify'),
- s_path_join(bd_dir, 'Release/uncrustify.exe'),
- s_path_join(bd_dir, 'RelWithDebInfo/uncrustify'),
- s_path_join(bd_dir, 'RelWithDebInfo/uncrustify.exe'),
- s_path_join(bd_dir, 'MinSizeRel/uncrustify'),
- s_path_join(bd_dir, 'MinSizeRel/uncrustify.exe')]
- for uncr_bin in bin_paths:
- if not isfile(uncr_bin):
- eprint("is 3 not a file: %s" % uncr_bin)
- else:
- print("Uncrustify binary found: %s" % uncr_bin)
- bin_found = True
- break
- if not bin_found:
- eprint("No Uncrustify binary found")
- sys_exit(EX_USAGE)
- print("Summary:")
- print("Python version is: "+sys.version)
- print("OS is: %s" % os_name)
-
- clear_dir(s_path_join(test_dir, 'results'))
-
- return_flag = True
-
- print("Test help ...")
- #
- # Test help
- # -h -? --help --usage
- if not check_uncrustify_output(
- uncr_bin,
- parsed_args,
- out_expected_path=s_path_join(script_dir, 'output/help.txt'),
- out_result_path=s_path_join(test_dir, 'results/help.txt'),
- out_result_manip=[
- string_replace(' --mtime : Preserve mtime on replaced files.\n', ''),
- string_replace('.exe', ''),
- reg_replace(r'currently \d+ options', 'currently x options')
- ]):
- return_flag = False
- print("Test help is OK")
-
- print("Test false parameter ...")
- #
- # Test false parameter
- # --xyz
- if not check_uncrustify_output(
- uncr_bin,
- parsed_args,
- args_arr=['--xyz'],
- err_expected_path=s_path_join(script_dir, 'output/xyz-err.txt'),
- err_result_path=s_path_join(test_dir, 'results/xyz-err.txt')
- ):
- return_flag = False
- print("Test false parameter is OK")
-
- print("Test Version ...")
- #
- # Test Version
- # -v
- if not check_uncrustify_output(
- uncr_bin,
- parsed_args,
- args_arr=['-v'],
- out_expected_path=s_path_join(script_dir, 'output/v-out.txt'),
- out_result_path=s_path_join(test_dir, 'results/v-out.txt'),
- out_result_manip=reg_replace(r'Uncrustify.+', 'Uncrustify')
- ):
- return_flag = False
- print("Test Version is OK")
-
- # temporary removed
- #print("Test --show-config ...")
- ##
- ## Test --show-config
- ##
- #if not check_uncrustify_output(
- # uncr_bin,
- # parsed_args,
- # args_arr=['--show-config'],
- # out_expected_path=s_path_join(script_dir, 'output/show_config.txt'),
- # out_result_path=s_path_join(test_dir, 'results/show_config.txt'),
- # out_result_manip=reg_replace(r'\# Uncrustify.+', '')
- # ):
- # return_flag = False
- #print("Test --show-config is OK")
-
- print("Test the truncate option ...")
- #
- # Test the truncate option
- #
- if not check_uncrustify_output(
- uncr_bin,
- parsed_args,
- args_arr=['-c', s_path_join(script_dir, 'config/truncate.cfg'),
- '-f', s_path_join(script_dir, 'input/truncate.cpp'),
- '-o', NULL_DEVICE,
- '-L', '83'],
- err_expected_path=s_path_join(script_dir, 'output/truncate.txt'),
- err_result_path=s_path_join(test_dir, 'results/truncate.txt'),
- err_result_manip=[reg_replace(r'\([0-9]+\)', ' '),
- reg_replace(RE_DO_SPACE, '')]
- ):
- return_flag = False
- print("Test the truncate option is OK")
-
- #print("Test --update-config ...")
- # temporary removed
- ##
- ## Test --update-config
- ##
- #if not check_uncrustify_output(
- # uncr_bin,
- # parsed_args,
- # args_arr=['-c', s_path_join(script_dir, 'config/mini_d.cfg'),
- # '--update-config'],
- # out_expected_path=s_path_join(script_dir, 'output/mini_d_uc.txt'),
- # out_result_path=s_path_join(test_dir, 'results/mini_d_uc.txt'),
- # out_result_manip=reg_replace(r'\# Uncrustify.+', ''),
- # err_expected_path=s_path_join(script_dir, 'output/mini_d_error.txt'),
- # err_result_path=s_path_join(test_dir, 'results/mini_d_error0.txt'),
- # err_result_manip=string_replace('\\', '/')
- # ):
- # return_flag = False
-
- #if not check_uncrustify_output(
- # uncr_bin,
- # parsed_args,
- # args_arr=['-c', s_path_join(script_dir, 'config/mini_nd.cfg'),
- # '--update-config'],
- # out_expected_path=s_path_join(script_dir, 'output/mini_nd_uc.txt'),
- # out_result_path=s_path_join(test_dir, 'results/mini_nd_uc.txt'),
- # out_result_manip=reg_replace(r'\# Uncrustify.+', ''),
- # err_expected_path=s_path_join(script_dir, 'output/mini_d_error.txt'),
- # err_result_path=s_path_join(test_dir, 'results/mini_d_error1.txt'),
- # err_result_manip=string_replace('\\', '/')
- # ):
- # return_flag = False
- #print("Test --update-config is OK")
-
- #print("Test --update-config-with-doc ...")
- ##
- ## Test --update-config-with-doc
- ##
- #if not check_uncrustify_output(
- # uncr_bin,
- # parsed_args,
- # args_arr=['-c', s_path_join(script_dir, 'config/mini_d.cfg'),
- # '--update-config-with-doc'],
- # out_expected_path=s_path_join(script_dir, 'output/mini_d_ucwd.txt'),
- # out_result_path=s_path_join(test_dir, 'results/mini_d_ucwd.txt'),
- # out_result_manip=reg_replace(r'\# Uncrustify.+', ''),
- # err_expected_path=s_path_join(script_dir, 'output/mini_d_error.txt'),
- # err_result_path=s_path_join(test_dir, 'results/mini_d_error2.txt'),
- # err_result_manip=string_replace('\\', '/')
- # ):
- # return_flag = False
- #print("Test --update-config-with-doc is OK")
-
- #if not check_uncrustify_output(
- # uncr_bin,
- # parsed_args,
- # args_arr=['-c', s_path_join(script_dir, 'config/mini_nd.cfg'),
- # '--update-config-with-doc'],
- # out_expected_path=s_path_join(script_dir, 'output/mini_nd_ucwd.txt'),
- # out_result_path=s_path_join(test_dir, 'results/mini_nd_ucwd.txt'),
- # out_result_manip=reg_replace(r'\# Uncrustify.+', ''),
- # err_expected_path=s_path_join(script_dir, 'output/mini_d_error.txt'),
- # err_result_path=s_path_join(test_dir, 'results/mini_d_error3.txt'),
- # err_result_manip=string_replace('\\', '/')
- # ):
- # return_flag = False
-
- print("Test -p ...")
- #
- # Test -p
- #
- if os_name != 'nt':
- if not check_uncrustify_output(
- uncr_bin,
- parsed_args,
- args_arr=['-c', s_path_join(script_dir, 'config/mini_nd.cfg'),
- '-f', s_path_join(script_dir, 'input/testSrcP.cpp'),
- '-p', s_path_join(test_dir, 'results/p.txt')],
- gen_expected_path=s_path_join(script_dir, 'output/p.txt'),
- gen_result_path=s_path_join(test_dir, 'results/p.txt'),
- gen_result_manip=reg_replace(r'\# Uncrustify.+[^\n\r]', '')
- ):
- return_flag = False
-
- if not check_uncrustify_output(
- uncr_bin,
- parsed_args,
- args_arr=['-f', s_path_join(script_dir, 'input/class_enum_struct_union.cpp'),
- '-p', s_path_join(test_dir, 'results/class_enum_struct_union.txt')],
- gen_expected_path=s_path_join(script_dir, 'output/class_enum_struct_union.txt'),
- gen_result_path=s_path_join(test_dir, 'results/class_enum_struct_union.txt'),
- gen_result_manip=reg_replace(r'\# Uncrustify.+[^\n\r]', '')
- ):
- return_flag = False
-
- if not check_uncrustify_output(
- uncr_bin,
- parsed_args,
- args_arr=['-f', s_path_join(script_dir, 'input/in_fcn_def.cpp'),
- '-p', s_path_join(test_dir, 'results/in_fcn_def.txt')],
- gen_expected_path=s_path_join(script_dir, 'output/in_fcn_def.txt'),
- gen_result_path=s_path_join(test_dir, 'results/in_fcn_def.txt'),
- gen_result_manip=reg_replace(r'\# Uncrustify.+[^\n\r]', '')
- ):
- return_flag = False
- print("Test -p is OK")
-
- #print("Test -p and -c with '-' input ...")
- if os_name == 'nt' or check_uncrustify_output(
- uncr_bin,
- parsed_args,
- args_arr=['-c', '-',
- '-f', NULL_DEVICE,
- '-p', '-'],
- out_expected_path=s_path_join(script_dir, 'output/pc-.txt'),
- out_result_manip=reg_replace(r'\# Uncrustify.+[^\n\r]', ''),
- out_result_path=s_path_join(test_dir, 'results/pc-.txt')
- ):
- pass
-
- #print("Test -p and -c with '-' input ...")
- #
- # Test -p and -c with '-' input
- #
- else:
- return_flag = False
- #print("Test -p and -c with '-' input is OK")
-
- print("Test -p and --debug-csv-format option ...")
- #
- # Test -p and --debug-csv-format option
- #
- if os_name != 'nt' and not check_uncrustify_output(
- uncr_bin,
- parsed_args,
- args_arr=['-c', '-',
- '-f', s_path_join(script_dir, 'input/class_enum_struct_union.cpp'),
- '-p', s_path_join(test_dir, 'results/class_enum_struct_union.csv'),
- '--debug-csv-format'],
- gen_expected_path=s_path_join(script_dir, 'output/class_enum_struct_union.csv'),
- gen_result_path=s_path_join(test_dir, 'results/class_enum_struct_union.csv'),
- ):
- return_flag = False
- print("Test -p and --debug-csv-format option is OK")
-
- if parsed_args.config == 'Debug':
- print("Test --tracking space:FILE ...")
- print(" config is Debug")
- #
- # Test --tracking space:FILE
- #
- if os_name != 'nt':
- # doesn't work under windows
- temp_result_path = s_path_join(script_dir, 'results/Debug_tracking_space.html')
- abc = "space:" + temp_result_path # Issue #4066
- if not check_uncrustify_output(
- uncr_bin,
- parsed_args,
- args_arr=['-c', s_path_join(script_dir, 'config/tracking_space.cfg'),
- '-f', s_path_join(script_dir, 'input/tracking_space.cpp'),
- '--tracking',
- abc,
- #s_path_join(script_dir, 'results/Debug_tracking_space.html')
- #temp_result_path
- # '-L'
- #, 'A'
- #, '2'
- #, '>'
- #, '/home/guy/A-T.txt'
- ],
- gen_expected_path=s_path_join(script_dir, 'output/Debug_tracking_space.html'),
- #gen_result_path=s_path_join(script_dir, 'results/Debug_tracking_space.html')
- gen_result_path=temp_result_path
- ):
- #print("/home/guy/A-T.txt")
- #else:
- #print("/home/guy/A-T.txt")
- return_flag = False
- print("Test --tracking space:FILE is OK")
-
- #sys_exit()
-
- print("Test --replace ...")
- #
- # Test --replace
- #
- copyfile("input/backup.h-save", "input/backup.h")
- if not check_uncrustify_output(
- uncr_bin,
- parsed_args,
- args_arr=['-c', s_path_join(script_dir, 'config/replace.cfg'),
- '-F', s_path_join(script_dir, 'input/replace.list'),
- '--replace', '--no-backup'],
- gen_expected_path=s_path_join(script_dir, 'output/backup.h'),
- gen_result_path=s_path_join(script_dir, 'input/backup.h'),
- err_expected_path=s_path_join(script_dir, 'output/replace.txt'),
- err_result_path=s_path_join(test_dir, 'results/replace.txt'),
- ):
- return_flag = False
- print("Test --replace is OK")
-
- print("Test --universalindent ...")
- # The flag CMAKE_BUILD_TYPE must be set to "Release", or all lines with
- # 'Description="<html>(<number>)text abc.</html>" must be changed to
- # 'Description="<html>text abc.</html>"
- #
- # OR it is possible to introduce a new parameter: gen_expected_manip
- #
- # The last "reg_replace(r'\r', '')" is necessary under Windows, because
- # fprintf puts a \r\n at the end of a line. To make the check, we use
- # output/universalindent.cfg, generated under Linux, with only \n at the
- # end of a line.
- if not check_uncrustify_output(
- uncr_bin,
- parsed_args,
- args_arr=['-o', s_path_join(test_dir, 'results/universalindent.cfg'),
- '--universalindent'],
- gen_expected_path=s_path_join(script_dir, 'output/universalindent.cfg'),
- gen_result_path=s_path_join(test_dir, 'results/universalindent.cfg'),
- gen_result_manip=[reg_replace(r'version=U.+', ''),
- reg_replace(r'\(\d+\)', ''),
- reg_replace(r'\r', '')]
- ):
- return_flag = False
- print("Test --universalindent is OK")
-
- print("Test -L ...")
- # Debug Options:
- # -L
- # look at src/log_levels.h
- Ls_A = ['9', '21', '25', '28', '31', '36', '66', '92']
- for L in Ls_A:
- if not check_uncrustify_output(
- uncr_bin,
- parsed_args,
- args_arr=['-c', NULL_DEVICE, '-L', L, '-o', NULL_DEVICE,
- '-f', s_path_join(script_dir, 'input/testSrc.cpp')],
- err_expected_path=s_path_join(script_dir, 'output/%s.txt' % L),
- err_result_path=s_path_join(test_dir, 'results/%s.txt' % L),
- err_result_manip=[reg_replace(r'\([0-9]+\)', ' '),
- reg_replace(r'\:[0-9]+\)', ' '),
- reg_replace(r'\[line [0-9]+', '[ '),
- reg_replace(r' \[[_|,|1|A-Z]*\]', ' []'),
- reg_replace(r', \[[_|,|1|A-Z]*\]', ', []'),
- reg_replace(r', \[0[xX][0-9a-fA-F]+:[_|,|1|A-Z]*\]', ', []'),
- reg_replace(r' \[0[xX][0-9a-fA-F]+:[_|,|1|A-Z]*\]', ' []'),
- reg_replace(r'^[ \t]*[_A-Za-z][_A-Za-z0-9]*::', ''),
- reg_replace(RE_CALLSTACK, '[CallStack]'),
- reg_replace(RE_DO_SPACE, ''),
- reg_replace(r'Chunk::', '')]
- ):
- return_flag = False
- print("Test -L is OK")
-
- ### Test logger buffer overflow
- ##if not check_uncrustify_output(
- ## uncr_bin,
- ## parsed_args,
- ## args_arr=['-c', NULL_DEVICE, '-L', '99', '-o', NULL_DEVICE,
- ## '-f', s_path_join(script_dir, 'input/logger.cs')],
- ## err_expected_path=s_path_join(script_dir, 'output/logger_cs_L_99.txt'),
- ## err_result_path=s_path_join(test_dir, 'results/logger_cs_L_99.txt'),
- ## err_result_manip=reg_replace(r'[0-9]', '')
- ## ):
- ## return_flag = False
-
- # misc error_tests
- error_tests = ["I-842", "unmatched_close_pp"]
- for test in error_tests:
- if not check_uncrustify_output(
- uncr_bin,
- parsed_args,
- args_arr=['-c', s_path_join(script_dir, 'config/%s.cfg' % test),
- '-f', s_path_join(script_dir, 'input/%s.cpp' % test),
- '-o', NULL_DEVICE, '-q'],
- err_expected_path=s_path_join(script_dir, 'output/%s.txt' % test),
- err_result_path=s_path_join(test_dir, 'results/%s.txt' % test)
- ):
- return_flag = False
-
- print("Test $(year) keyword ...")
- # Test $(year) keyword (issue #3251)
- if not check_uncrustify_output(
- uncr_bin,
- parsed_args,
- args_arr=['-c', s_path_join(script_dir, 'config/copyright-header.cfg'),
- '-f', s_path_join(script_dir, 'input/testSrc.cpp')],
- out_expected_path=s_path_join(script_dir, 'output/copyright-header.cpp'),
- out_result_path=s_path_join(test_dir, 'results/copyright-header.cpp'),
- out_result_manip=string_replace(str(date.today().year), 'this year'),
- ):
- return_flag = False
- print("Test $(year) keyword is OK")
-
- if return_flag:
- print("all tests are OK")
- sys_exit(EX_OK)
- else:
- print("some problem(s) are still present")
- sys_exit(EX_SOFTWARE)
-
-
-if __name__ == "__main__":
- main(argv[1:])