utils: checkstyle.py: Add include checker
Add an include checker to verify usage of the C compatibility headers. Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com> Reviewed-by: Niklas Söderlund <niklas.soderlund@ragnatech.se>
This commit is contained in:
parent
73a11cbf78
commit
bb5f8cf495
1 changed files with 32 additions and 0 deletions
|
@ -240,6 +240,38 @@ class StyleIssue(object):
|
||||||
self.msg = msg
|
self.msg = msg
|
||||||
|
|
||||||
|
|
||||||
|
class IncludeChecker(StyleChecker):
|
||||||
|
patterns = ('*.cpp', '*.h')
|
||||||
|
|
||||||
|
headers = ('assert', 'ctype', 'errno', 'fenv', 'float', 'inttypes',
|
||||||
|
'limits', 'locale', 'math', 'setjmp', 'signal', 'stdarg',
|
||||||
|
'stddef', 'stdint', 'stdio', 'stdlib', 'string', 'time', 'uchar',
|
||||||
|
'wchar', 'wctype')
|
||||||
|
include_regex = re.compile('^#include <c([a-z]*)>')
|
||||||
|
|
||||||
|
def __init__(self, content):
|
||||||
|
super().__init__()
|
||||||
|
self.__content = content
|
||||||
|
|
||||||
|
def check(self, line_numbers):
|
||||||
|
issues = []
|
||||||
|
|
||||||
|
for line_number in line_numbers:
|
||||||
|
line = self.__content[line_number - 1]
|
||||||
|
match = IncludeChecker.include_regex.match(line)
|
||||||
|
if not match:
|
||||||
|
continue
|
||||||
|
|
||||||
|
header = match.group(1)
|
||||||
|
if header not in IncludeChecker.headers:
|
||||||
|
continue
|
||||||
|
|
||||||
|
issues.append(StyleIssue(line_number, line,
|
||||||
|
'C compatibility header <%s.h> is preferred' % header))
|
||||||
|
|
||||||
|
return issues
|
||||||
|
|
||||||
|
|
||||||
class LogCategoryChecker(StyleChecker):
|
class LogCategoryChecker(StyleChecker):
|
||||||
log_regex = re.compile('\\bLOG\((Debug|Info|Warning|Error|Fatal)\)')
|
log_regex = re.compile('\\bLOG\((Debug|Info|Warning|Error|Fatal)\)')
|
||||||
patterns = ('*.cpp',)
|
patterns = ('*.cpp',)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue