Adding PRESUBMIT check on google::protobuf
The goal is to avoid direct usage of google::protobuf. It should only be used with a 'using' directive in the header file: //webrtc/base/protobuf_utils.h. BUG=webrtc:7340 NOTRY=True Review-Url: https://codereview.webrtc.org/2753823003 Cr-Commit-Position: refs/heads/master@{#17467}
This commit is contained in:
21
PRESUBMIT.py
21
PRESUBMIT.py
@ -487,6 +487,26 @@ def _RunPythonTests(input_api, output_api):
|
||||
return input_api.RunTests(tests, parallel=True)
|
||||
|
||||
|
||||
def _CheckUsageOfGoogleProtobufNamespace(input_api, output_api):
|
||||
"""Checks that the namespace google::protobuf has not been used."""
|
||||
files = []
|
||||
pattern = input_api.re.compile(r'google::protobuf')
|
||||
proto_utils_path = os.path.join('webrtc', 'base', 'protobuf_utils.h')
|
||||
for f in input_api.AffectedSourceFiles(input_api.FilterSourceFile):
|
||||
if f.LocalPath() in [proto_utils_path, 'PRESUBMIT.py']:
|
||||
continue
|
||||
contents = input_api.ReadFile(f)
|
||||
if pattern.search(contents):
|
||||
files.append(f)
|
||||
|
||||
if files:
|
||||
return [output_api.PresubmitError(
|
||||
'Please avoid to use namespace `google::protobuf` directly.\n'
|
||||
'Add a using directive in `%s` and include that header instead.'
|
||||
% proto_utils_path, files)]
|
||||
return []
|
||||
|
||||
|
||||
def _CommonChecks(input_api, output_api):
|
||||
"""Checks common to both upload and commit."""
|
||||
results = []
|
||||
@ -555,6 +575,7 @@ def _CommonChecks(input_api, output_api):
|
||||
results.extend(_CheckUnwantedDependencies(input_api, output_api))
|
||||
results.extend(_CheckJSONParseErrors(input_api, output_api))
|
||||
results.extend(_RunPythonTests(input_api, output_api))
|
||||
results.extend(_CheckUsageOfGoogleProtobufNamespace(input_api, output_api))
|
||||
return results
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user