From 32b9421f1289fa16d5b96c4b9af59b1b09095e6d Mon Sep 17 00:00:00 2001 From: Gilles Peskine <Gilles.Peskine@arm.com> Date: Fri, 20 Sep 2019 18:00:49 +0200 Subject: [PATCH] Factor description-checking code into a common function Behavior change: some error messages are slightly different. --- tests/scripts/check-test-cases.py | 44 ++++++++++++++----------------- 1 file changed, 20 insertions(+), 24 deletions(-) diff --git a/tests/scripts/check-test-cases.py b/tests/scripts/check-test-cases.py index 17022bf049..b1b78e3e16 100755 --- a/tests/scripts/check-test-cases.py +++ b/tests/scripts/check-test-cases.py @@ -54,6 +54,22 @@ def collect_test_directories(): directories.append(crypto_tests_dir) return directories +def check_description(results, seen, file_name, line_number, description): + if description in seen: + results.error(file_name, line_number, + 'Duplicate description (also line {})', + seen[description]) + return + if re.search(r'[\t;]', description): + results.error(file_name, line_number, + 'Forbidden character \'{}\' in description', + re.search(r'[\t;]', description).group(0)) + if len(description) > 66: + results.warning(file_name, line_number, + 'Test description too long ({} > 66)', + len(description)) + seen[description] = line_number + def check_test_suite(results, data_file_name): in_paragraph = False descriptions = {} @@ -69,18 +85,8 @@ def check_test_suite(results, data_file_name): continue if not in_paragraph: # This is a test case description line. - if line in descriptions: - results.error(data_file_name, line_number, - 'Duplicate description (also line {}): {}', - descriptions[line], line) - else: - if re.search(r'[\t;]', line): - results.error(data_file_name, line_number, - 'Forbidden character in description') - if len(line) > 66: - results.warning(data_file_name, line_number, - 'Test description will be truncated') - descriptions[line] = line_number + check_description(results, descriptions, + data_file_name, line_number, line) in_paragraph = True def check_ssl_opt_sh(results, file_name): @@ -96,18 +102,8 @@ def check_ssl_opt_sh(results, file_name): if not m: continue description = m.group(1) - if description in descriptions: - results.error(data_file_name, line_number, - 'Duplicate description (also line {}): {}', - descriptions[line], line) - else: - if re.search(r'[\t;]', line): - results.error(data_file_name, line_number, - 'Forbidden character in description') - if len(line) > 66: - results.warning(data_file_name, line_number, - 'Test description will break visual alignment') - descriptions[line] = line_number + check_description(results, descriptions, + file_name, line_number, description) def main(): test_directories = collect_test_directories()