Chromium Code Reviews| Index: PRESUBMIT.py |
| diff --git a/PRESUBMIT.py b/PRESUBMIT.py |
| index 0293bf0a2da7fef3c1fcf39ce2397ae27b59103b..f776cc570515ccde3111a20f906425a66868a2bc 100644 |
| --- a/PRESUBMIT.py |
| +++ b/PRESUBMIT.py |
| @@ -1311,9 +1311,13 @@ def _CheckAndroidCrLogUsage(input_api, output_api): |
| - Are using a tag that is shorter than 23 characters (error) |
| """ |
| cr_log_import_pattern = input_api.re.compile( |
| - r'^import org\.chromium\.base\.Log;$', input_api.re.MULTILINE); |
| + r'^import org\.chromium\.base\.Log;$', input_api.re.MULTILINE) |
| + class_in_base_pattern = input_api.re.compile( |
| + r'^package org\.chromium\.base;$', input_api.re.MULTILINE) |
| + has_some_log_import_pattern = input_api.re.compile( |
| + r'^import .*\.Log;$', input_api.re.MULTILINE) |
| # Extract the tag from lines like `Log.d(TAG, "*");` or `Log.d("TAG", "*");` |
| - cr_log_pattern = input_api.re.compile(r'^\s*Log\.\w\((?P<tag>\"?\w+\"?)\,') |
| + log_call_pattern = input_api.re.compile(r'^\s*Log\.\w\((?P<tag>\"?\w+\"?)\,') |
| log_decl_pattern = input_api.re.compile( |
| r'^\s*private static final String TAG = "(?P<name>(.*)")', |
| input_api.re.MULTILINE) |
| @@ -1322,26 +1326,36 @@ def _CheckAndroidCrLogUsage(input_api, output_api): |
| REF_MSG = ('See base/android/java/src/org/chromium/base/README_logging.md ' |
| 'or contact dgn@chromium.org for more info.') |
| sources = lambda x: input_api.FilterSourceFile(x, white_list=(r'.*\.java$',)) |
| - tag_errors = [] |
| + |
| tag_decl_errors = [] |
| tag_length_errors = [] |
| + tag_errors = [] |
| + util_log_errors = [] |
| for f in input_api.AffectedSourceFiles(sources): |
| file_content = input_api.ReadFile(f) |
| has_modified_logs = False |
| # Per line checks |
| - if cr_log_import_pattern.search(file_content): |
| + if (cr_log_import_pattern.search(file_content) or |
| + (class_in_base_pattern.search(file_content) and |
|
dgn
2015/06/11 15:33:58
How can I make it in one check?
I think the close
|
| + not has_some_log_import_pattern.search(file_content))): |
| + # Checks to run for files using cr log |
| for line_num, line in f.ChangedContents(): |
| # Check if the new line is doing some logging |
| - match = cr_log_pattern.search(line) |
| + match = log_call_pattern.search(line) |
| if match: |
| has_modified_logs = True |
| # Make sure it uses "TAG" |
| if not match.group('tag') == 'TAG': |
| tag_errors.append("%s:%d" % (f.LocalPath(), line_num)) |
| + else: |
| + # Report non cr Log function calls in changed lines |
| + for line_num, line in f.ChangedContents(): |
| + if log_call_pattern.search(line): |
| + util_log_errors.append("%s:%d" % (f.LocalPath(), line_num)) |
| # Per file checks |
| if has_modified_logs: |
| @@ -1371,36 +1385,11 @@ def _CheckAndroidCrLogUsage(input_api, output_api): |
| 'Please use a variable named "TAG" for your log tags.\n' + REF_MSG, |
| tag_errors)) |
| - return results |
| - |
| - |
| -# TODO(dgn): refactor with _CheckAndroidCrLogUsage |
| -def _CheckNoNewUtilLogUsage(input_api, output_api): |
| - """Checks that new logs are using org.chromium.base.Log.""" |
| - |
| - chromium_log_import_pattern = input_api.re.compile( |
| - r'^import org\.chromium\.base\.Log;$', input_api.re.MULTILINE); |
| - log_pattern = input_api.re.compile(r'^\s*(android\.util\.)?Log\.\w') |
| - sources = lambda x: input_api.FilterSourceFile(x, white_list=(r'.*\.java$',)) |
| - |
| - errors = [] |
| - |
| - for f in input_api.AffectedSourceFiles(sources): |
| - if chromium_log_import_pattern.search(input_api.ReadFile(f)) is not None: |
| - # Uses org.chromium.base.Log already |
| - continue |
| - |
| - for line_num, line in f.ChangedContents(): |
| - if log_pattern.search(line): |
| - errors.append("%s:%d" % (f.LocalPath(), line_num)) |
| - |
| - results = [] |
| - if len(errors): |
| + if util_log_errors: |
| results.append(output_api.PresubmitPromptWarning( |
| - 'Please use org.chromium.base.Log for new logs.\n' + |
| - 'See base/android/java/src/org/chromium/base/README_logging.md ' + |
| - 'or contact dgn@chromium.org for more info.', |
| - errors)) |
| + 'Please use org.chromium.base.Log for new logs.\n' + REF_MSG, |
| + util_log_errors)) |
| + |
| return results |
| @@ -1532,7 +1521,6 @@ def _CheckNoDeprecatedJS(input_api, output_api): |
| def _AndroidSpecificOnUploadChecks(input_api, output_api): |
| """Groups checks that target android code.""" |
| results = [] |
| - results.extend(_CheckNoNewUtilLogUsage(input_api, output_api)) |
| results.extend(_CheckAndroidCrLogUsage(input_api, output_api)) |
| return results |