Commit f7d44736 by Tim Van Patten Committed by Commit Bot

Detect non-ascii characters during presubmit

Clang format and non-ascii characters don't get along well, which are typically introduced when copy/pasting spec language. This CL will detect non-ascii characters during presubmit. Bug: angleproject:4601 Test: git cl presubmit --upload Change-Id: I80080fc04590ad47c9756f8f969d5c7f44d41793 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2173684Reviewed-by: 's avatarShrek Shao <shrekshao@google.com> Reviewed-by: 's avatarJamie Madill <jmadill@chromium.org> Commit-Queue: Tim Van Patten <timvp@google.com>
parent 9349c143
......@@ -198,9 +198,40 @@ def _CheckTabsInSourceFiles(input_api, output_api):
return []
# https://stackoverflow.com/a/196392
def is_ascii(s):
return all(ord(c) < 128 for c in s)
def _CheckNonAsciiInSourceFiles(input_api, output_api):
"""Forbids non-ascii characters in source files. """
def implementation_and_headers(f):
return input_api.FilterSourceFile(
f, white_list=(r'.+%s' % _IMPLEMENTATION_AND_HEADER_EXTENSIONS,))
files_with_non_ascii = []
for f in input_api.AffectedSourceFiles(implementation_and_headers):
for (num, line) in f.ChangedContents():
if not is_ascii(line):
files_with_non_ascii.append(f)
break
if files_with_non_ascii:
return [
output_api.PresubmitError(
'Non-ASCII characters in source files.',
items=sorted(files_with_non_ascii),
long_text='Non-ASCII characters are forbidden in ANGLE source files.\n'
'Please remove non-ASCII characters from these files.')
]
return []
def CheckChangeOnUpload(input_api, output_api):
results = []
results.extend(_CheckTabsInSourceFiles(input_api, output_api))
results.extend(_CheckNonAsciiInSourceFiles(input_api, output_api))
results.extend(_CheckCodeGeneration(input_api, output_api))
results.extend(_CheckChangeHasBugField(input_api, output_api))
results.extend(input_api.canned_checks.CheckChangeHasDescription(input_api, output_api))
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment