Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(668)

Unified Diff: presubmit_canned_checks.py

Issue 9417023: Presubmit tests: allow 100columns limit for .java files. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/tools/depot_tools/
Patch Set: Created 8 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | tests/presubmit_unittest.py » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: presubmit_canned_checks.py
===================================================================
--- presubmit_canned_checks.py (revision 122929)
+++ presubmit_canned_checks.py (working copy)
@@ -79,7 +79,7 @@
# We want to check every text file, not just source files.
file_filter = lambda x : x
keyword = 'DO NOT ' + 'SUBMIT'
- errors = _FindNewViolationsOfRule(lambda line : keyword not in line,
+ errors = _FindNewViolationsOfRule(lambda _, line : keyword not in line,
input_api, file_filter)
text = '\n'.join('Found %s in %s' % (keyword, loc) for loc in errors)
if text:
@@ -234,8 +234,8 @@
"""Find all newly introduced violations of a per-line rule (a callable).
Arguments:
- callable_rule: a callable taking a line of input and returning True
- if the rule is satisfied and False if there was a problem.
+ callable_rule: a callable taking a file extension and line of input and
+ returning True if the rule is satisfied and False if there was a problem.
input_api: object to enumerate the affected files.
source_file_filter: a filter to be passed to the input api.
error_formatter: a callable taking (filename, line_number, line) and
@@ -251,11 +251,12 @@
# to the SCM to determine the changed region can be quite expensive on
# Win32. Assuming that most files will be kept problem-free, we can
# skip the SCM operations most of the time.
- if all(callable_rule(line) for line in f.NewContents()):
+ extension = str(f.LocalPath()).rsplit('.', 1)[-1]
+ if all(callable_rule(extension, line) for line in f.NewContents()):
continue # No violation found in full text: can skip considering diff.
for line_num, line in f.ChangedContents():
- if not callable_rule(line):
+ if not callable_rule(extension, line):
errors.append(error_formatter(f.LocalPath(), line_num, line))
return errors
@@ -274,7 +275,7 @@
('Makefile', 'makefile') and
source_file_filter(affected_file))
- tabs = _FindNewViolationsOfRule(lambda line : '\t' not in line,
+ tabs = _FindNewViolationsOfRule(lambda _, line : '\t' not in line,
input_api, filter_more)
if tabs:
@@ -287,7 +288,7 @@
"""Checks that the user didn't add TODO(name) without an owner."""
unowned_todo = input_api.re.compile('TO' + 'DO[^(]')
- errors = _FindNewViolationsOfRule(lambda x : not unowned_todo.search(x),
+ errors = _FindNewViolationsOfRule(lambda _, x : not unowned_todo.search(x),
input_api, source_file_filter)
errors = ['Found TO' + 'DO with no owner in ' + x for x in errors]
if errors:
@@ -298,7 +299,7 @@
def CheckChangeHasNoStrayWhitespace(input_api, output_api,
source_file_filter=None):
"""Checks that there is no stray whitespace at source lines end."""
- errors = _FindNewViolationsOfRule(lambda line : line.rstrip() == line,
+ errors = _FindNewViolationsOfRule(lambda _, line : line.rstrip() == line,
input_api, source_file_filter)
if errors:
return [output_api.PresubmitPromptWarning(
@@ -311,18 +312,25 @@
"""Checks that there aren't any lines longer than maxlen characters in any of
the text files to be submitted.
"""
- # Stupidly long symbols that needs to be worked around if takes 66% of line.
- long_symbol = maxlen * 2 / 3
- # Hard line length limit at 50% more.
- extra_maxlen = maxlen * 3 / 2
+ maxlens = {
+ 'java': 100,
+ '': maxlen,
+ }
# Note: these are C++ specific but processed on all languages. :(
MACROS = ('#define', '#include', '#import', '#pragma', '#if', '#endif')
- def no_long_lines(line):
- if len(line) <= maxlen:
+ def no_long_lines(file_extension, line):
+ file_maxlen = maxlens.get(file_extension, maxlens[''])
+ # Stupidly long symbols that needs to be worked around if takes 66% of line.
+ long_symbol = file_maxlen * 2 / 3
+ # Hard line length limit at 50% more.
+ extra_maxlen = file_maxlen * 3 / 2
+
+ line_len = len(line)
+ if line_len <= file_maxlen:
return True
- if len(line) > extra_maxlen:
+ if line_len > extra_maxlen:
return False
return (
« no previous file with comments | « no previous file | tests/presubmit_unittest.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698