summaryrefslogtreecommitdiff
path: root/util/style.py
diff options
context:
space:
mode:
authorSteve Reinhardt <steve.reinhardt@amd.com>2016-02-06 17:21:20 -0800
committerSteve Reinhardt <steve.reinhardt@amd.com>2016-02-06 17:21:20 -0800
commit2728f7bd81a9da729247851199fc0858f6b84aed (patch)
tree4968674eac5a7921187213f829ca9f85fa961c03 /util/style.py
parent5592798865ece858bab2b444bc782d19121e2566 (diff)
downloadgem5-2728f7bd81a9da729247851199fc0858f6b84aed.tar.xz
util: added line length and boolean comparison style checkers
Added checkers for line length and boolean comparisons (== true/== false) to the style script.
Diffstat (limited to 'util/style.py')
-rw-r--r--util/style.py48
1 files 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