From 2728f7bd81a9da729247851199fc0858f6b84aed Mon Sep 17 00:00:00 2001 From: Steve Reinhardt Date: Sat, 6 Feb 2016 17:21:20 -0800 Subject: [PATCH] util: added line length and boolean comparison style checkers Added checkers for line length and boolean comparisons (== true/== false) to the style script. --- util/style.py | 48 ++++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 42 insertions(+), 6 deletions(-) diff --git a/util/style.py b/util/style.py index ee3c0bf94..7ee58dfa6 100644 --- a/util/style.py +++ b/util/style.py @@ -404,12 +404,6 @@ class SortedIncludes(Verifier): f.write('\n') f.close() -# list of all verifier classes -all_verifiers = [ - Whitespace, - ControlSpace, - SortedIncludes -] def linelen(line): tabs = line.count('\t') @@ -425,6 +419,48 @@ def linelen(line): return count +class LineLength(Verifier): + languages = set(('C', 'C++', 'swig', 'python', 'asm', 'isa', 'scons')) + test_name = 'line length' + opt_name = 'length' + + def check_line(self, line): + return linelen(line) <= 78 + + def fix(self, filename, regions=all_regions): + self.write("Warning: cannot automatically fix overly long lines.\n") + + +class BoolCompare(Verifier): + languages = set(('C', 'C++', 'python')) + test_name = 'boolean comparison' + opt_name = 'boolcomp' + + regex = re.compile(r'\s*==\s*([Tt]rue|[Ff]alse)\b') + + def check_line(self, line): + return self.regex.search(line) == None + + def fix_line(self, line): + match = self.regex.search(line) + if match: + if match.group(1) in ('true', 'True'): + line = self.regex.sub('', line) + else: + self.write("Warning: cannot automatically fix " + "comparisons with false/False.\n") + return line + + +# list of all verifier classes +all_verifiers = [ + Whitespace, + ControlSpace, + LineLength, + BoolCompare, + SortedIncludes +] + class ValidationStats(object): def __init__(self): self.toolong = 0