[clang-tools-extra] f0726ae - Refactor: Extract Class MessagePrefix (NFC)
via cfe-commits
cfe-commits at lists.llvm.org
Tue Jan 25 22:19:53 PST 2022
Author: Richard
Date: 2022-01-25T23:19:33-07:00
New Revision: f0726ae0f9fa3fc5fadec7fdc940cc2f88759001
URL: https://github.com/llvm/llvm-project/commit/f0726ae0f9fa3fc5fadec7fdc940cc2f88759001
DIFF: https://github.com/llvm/llvm-project/commit/f0726ae0f9fa3fc5fadec7fdc940cc2f88759001.diff
LOG: Refactor: Extract Class MessagePrefix (NFC)
The work is the same, the only difference is the prefix
of the strings we look for in the reference files.
Added:
Modified:
clang-tools-extra/test/clang-tidy/check_clang_tidy.py
Removed:
################################################################################
diff --git a/clang-tools-extra/test/clang-tidy/check_clang_tidy.py b/clang-tools-extra/test/clang-tidy/check_clang_tidy.py
index 1a234029b60bd..d764f20ef2ecc 100755
--- a/clang-tools-extra/test/clang-tidy/check_clang_tidy.py
+++ b/clang-tools-extra/test/clang-tidy/check_clang_tidy.py
@@ -51,6 +51,21 @@ def try_run(args, raise_error=True):
return process_output
+# This class represents the appearance of a message prefix in a file.
+class MessagePrefix:
+ def __init__(self, label):
+ self.has_message = False
+ self.prefixes = []
+ self.label = label
+
+ def check(self, file_check_suffix, input_text):
+ self.prefix = self.label + file_check_suffix
+ self.has_message = self.prefix in input_text
+ if self.has_message:
+ self.prefixes.append(self.prefix)
+ return self.has_message
+
+
class CheckRunner:
def __init__(self, args, extra_args):
self.resource_dir = args.resource_dir
@@ -63,12 +78,12 @@ def __init__(self, args, extra_args):
self.std = args.std
self.check_suffix = args.check_suffix
self.input_text = ''
- self.check_fixes_prefixes = []
- self.check_messages_prefixes = []
- self.check_notes_prefixes = []
self.has_check_fixes = False
self.has_check_messages = False
self.has_check_notes = False
+ self.fixes = MessagePrefix('CHECK-FIXES')
+ self.messages = MessagePrefix('CHECK-MESSAGES')
+ self.notes = MessagePrefix('CHECK-NOTES')
file_name_with_extension = self.assume_file_name or self.input_file_name
_, extension = os.path.splitext(file_name_with_extension)
@@ -109,38 +124,29 @@ def read_input(self):
self.input_text = input_file.read()
def get_prefixes(self):
- for check in self.check_suffix:
- if check and not re.match('^[A-Z0-9\\-]+$', check):
+ for suffix in self.check_suffix:
+ if suffix and not re.match('^[A-Z0-9\\-]+$', suffix):
sys.exit('Only A..Z, 0..9 and "-" are allowed in check suffixes list,'
- + ' but "%s" was given' % check)
+ + ' but "%s" was given' % suffix)
- file_check_suffix = ('-' + check) if check else ''
- check_fixes_prefix = 'CHECK-FIXES' + file_check_suffix
- check_messages_prefix = 'CHECK-MESSAGES' + file_check_suffix
- check_notes_prefix = 'CHECK-NOTES' + file_check_suffix
+ file_check_suffix = ('-' + suffix) if suffix else ''
- has_check_fix = check_fixes_prefix in self.input_text
- has_check_message = check_messages_prefix in self.input_text
- has_check_note = check_notes_prefix in self.input_text
+ has_check_fix = self.fixes.check(file_check_suffix, self.input_text)
+ self.has_check_fixes = self.has_check_fixes or has_check_fix
+
+ has_check_message = self.messages.check(file_check_suffix, self.input_text)
+ self.has_check_messages = self.has_check_messages or has_check_message
+
+ has_check_note = self.notes.check(file_check_suffix, self.input_text)
+ self.has_check_notes = self.has_check_notes or has_check_note
if has_check_note and has_check_message:
sys.exit('Please use either %s or %s but not both' %
- (check_notes_prefix, check_messages_prefix))
+ (self.notes.prefix, self.messages.prefix))
if not has_check_fix and not has_check_message and not has_check_note:
sys.exit('%s, %s or %s not found in the input' %
- (check_fixes_prefix, check_messages_prefix, check_notes_prefix))
-
- self.has_check_fixes = self.has_check_fixes or has_check_fix
- self.has_check_messages = self.has_check_messages or has_check_message
- self.has_check_notes = self.has_check_notes or has_check_note
-
- if has_check_fix:
- self.check_fixes_prefixes.append(check_fixes_prefix)
- if has_check_message:
- self.check_messages_prefixes.append(check_messages_prefix)
- if has_check_note:
- self.check_notes_prefixes.append(check_notes_prefix)
+ (self.fixes.prefix, self.messages.prefix, self.notes.prefix))
assert self.has_check_fixes or self.has_check_messages or self.has_check_notes
@@ -173,7 +179,7 @@ def run_clang_tidy(self):
def check_fixes(self):
if self.has_check_fixes:
try_run(['FileCheck', '-input-file=' + self.temp_file_name, self.input_file_name,
- '-check-prefixes=' + ','.join(self.check_fixes_prefixes),
+ '-check-prefixes=' + ','.join(self.fixes.prefixes),
'-strict-whitespace'])
def check_messages(self, clang_tidy_output):
@@ -181,7 +187,7 @@ def check_messages(self, clang_tidy_output):
messages_file = self.temp_file_name + '.msg'
write_file(messages_file, clang_tidy_output)
try_run(['FileCheck', '-input-file=' + messages_file, self.input_file_name,
- '-check-prefixes=' + ','.join(self.check_messages_prefixes),
+ '-check-prefixes=' + ','.join(self.messages.prefixes),
'-implicit-check-not={{warning|error}}:'])
def check_notes(self, clang_tidy_output):
@@ -191,7 +197,7 @@ def check_notes(self, clang_tidy_output):
if not ("note: FIX-IT applied" in line)]
write_file(notes_file, '\n'.join(filtered_output))
try_run(['FileCheck', '-input-file=' + notes_file, self.input_file_name,
- '-check-prefixes=' + ','.join(self.check_notes_prefixes),
+ '-check-prefixes=' + ','.join(self.notes.prefixes),
'-implicit-check-not={{note|warning|error}}:'])
def run(self):
More information about the cfe-commits
mailing list