From 7e4f8e44a900c2c3b9d8af2bc2e2fd9743aa221c Mon Sep 17 00:00:00 2001 From: Caleb McGary Date: Sat, 1 Oct 2022 15:03:56 +0900 Subject: [PATCH 1/4] enhancement: add support for specifying coding standards filename and extension --- .../deviations/coding-standards.yaml | 11 +++++++++++ .../deviations/nested/coding-standards.yaml | 5 +++++ .../process_coding_standards_config.py | 17 +++++++++++++++-- 3 files changed, 31 insertions(+), 2 deletions(-) create mode 100644 integration-tests/deviations/coding-standards.yaml create mode 100644 integration-tests/deviations/nested/coding-standards.yaml diff --git a/integration-tests/deviations/coding-standards.yaml b/integration-tests/deviations/coding-standards.yaml new file mode 100644 index 0000000000..d4130bae72 --- /dev/null +++ b/integration-tests/deviations/coding-standards.yaml @@ -0,0 +1,11 @@ +deviations: + - rule-id: "A0-1-1" + query-id: "cpp/autosar/useless-assignment" + justification: "This useless assignment is required." + background: | + ## Useless assignments + + We don't want to use useless assignments because they are useless. + - rule-id: "A0-4-2" + justification: "long double is required for interaction with third-pary libraries." + code-identifier: "a0-4-2-deviation" \ No newline at end of file diff --git a/integration-tests/deviations/nested/coding-standards.yaml b/integration-tests/deviations/nested/coding-standards.yaml new file mode 100644 index 0000000000..d2e9bff31f --- /dev/null +++ b/integration-tests/deviations/nested/coding-standards.yaml @@ -0,0 +1,5 @@ +deviations: + - rule-id: "A0-1-2" + justification: | + The return values in this file are not required because ... + path: "nested2" \ No newline at end of file diff --git a/scripts/deviations/process_coding_standards_config.py b/scripts/deviations/process_coding_standards_config.py index 1f1f9053b5..e358ec5cc8 100644 --- a/scripts/deviations/process_coding_standards_config.py +++ b/scripts/deviations/process_coding_standards_config.py @@ -87,6 +87,12 @@ def main(): action='store_true', help='Skip indexing the configurations and only convert them to XML. Should be used with --save-temps.' ) + parser.add_argument( + '--coding-standards-file', + help='Filename and extension of coding standards deviations file. Default is coding-standards.yml', + required=False, + default="coding-standards.yml" + ) args = parser.parse_args() if not args.skip_indexing: @@ -105,8 +111,15 @@ def main(): f"The specified working directory '{args.working_dir}'' does not exist.", file=sys.stderr) sys.exit(1) - # Find all the coding-standards.yml files, and convert them in place to coding-standards.xml - for path in args.working_dir.rglob('coding-standards.yml'): + # Verify that the coding standards deviations file exists + coding_standards_file = Path(args.coding_standards_file) + if not coding_standards_file.is_file(): + print( + f"The specified coding standards deviations file '{args.coding_standards_file}' does not exist", file=sys.stderr) + sys.exit(1) + + # Find all coding standards deviations files, and convert them in place to coding-standards.xml + for path in args.working_dir.rglob(args.coding_standards_file): convert_yaml_file_to_xml(path) if not args.skip_indexing: From 2281e6bc8102daff7053dd09f065ed618d6aadb9 Mon Sep 17 00:00:00 2001 From: Caleb McGary Date: Fri, 7 Oct 2022 06:34:45 -0700 Subject: [PATCH 2/4] Update scripts/deviations/process_coding_standards_config.py Co-authored-by: Luke Cartey <5377966+lcartey@users.noreply.github.com> --- scripts/deviations/process_coding_standards_config.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/scripts/deviations/process_coding_standards_config.py b/scripts/deviations/process_coding_standards_config.py index e358ec5cc8..d50f242e31 100644 --- a/scripts/deviations/process_coding_standards_config.py +++ b/scripts/deviations/process_coding_standards_config.py @@ -119,7 +119,8 @@ def main(): sys.exit(1) # Find all coding standards deviations files, and convert them in place to coding-standards.xml - for path in args.working_dir.rglob(args.coding_standards_file): + for config_file_name in ['coding-standards.yml', 'coding-standards.yaml']: + for path in args.working_dir.rglob(config_file_name): convert_yaml_file_to_xml(path) if not args.skip_indexing: From 530b9ed464fbbdc2bd6fbd1131190d96b119c776 Mon Sep 17 00:00:00 2001 From: Caleb McGary Date: Fri, 7 Oct 2022 22:40:18 +0900 Subject: [PATCH 3/4] removing path checks to account for use cases --- scripts/deviations/process_coding_standards_config.py | 7 ------- 1 file changed, 7 deletions(-) diff --git a/scripts/deviations/process_coding_standards_config.py b/scripts/deviations/process_coding_standards_config.py index d50f242e31..1614d04e11 100644 --- a/scripts/deviations/process_coding_standards_config.py +++ b/scripts/deviations/process_coding_standards_config.py @@ -111,13 +111,6 @@ def main(): f"The specified working directory '{args.working_dir}'' does not exist.", file=sys.stderr) sys.exit(1) - # Verify that the coding standards deviations file exists - coding_standards_file = Path(args.coding_standards_file) - if not coding_standards_file.is_file(): - print( - f"The specified coding standards deviations file '{args.coding_standards_file}' does not exist", file=sys.stderr) - sys.exit(1) - # Find all coding standards deviations files, and convert them in place to coding-standards.xml for config_file_name in ['coding-standards.yml', 'coding-standards.yaml']: for path in args.working_dir.rglob(config_file_name): From 15539f2d93c781620fa4733b3ae9231200ba8e47 Mon Sep 17 00:00:00 2001 From: Caleb McGary Date: Fri, 7 Oct 2022 22:42:48 +0900 Subject: [PATCH 4/4] remove unneeded option from arguments --- scripts/deviations/process_coding_standards_config.py | 6 ------ 1 file changed, 6 deletions(-) diff --git a/scripts/deviations/process_coding_standards_config.py b/scripts/deviations/process_coding_standards_config.py index 1614d04e11..bc1c96b24c 100644 --- a/scripts/deviations/process_coding_standards_config.py +++ b/scripts/deviations/process_coding_standards_config.py @@ -87,12 +87,6 @@ def main(): action='store_true', help='Skip indexing the configurations and only convert them to XML. Should be used with --save-temps.' ) - parser.add_argument( - '--coding-standards-file', - help='Filename and extension of coding standards deviations file. Default is coding-standards.yml', - required=False, - default="coding-standards.yml" - ) args = parser.parse_args() if not args.skip_indexing: