Index: PRESUBMIT.py |
=================================================================== |
--- PRESUBMIT.py (revision 79280) |
+++ PRESUBMIT.py (working copy) |
@@ -8,8 +8,6 @@ |
for more details about the presubmit API built into gcl. |
""" |
-import time |
- |
_EXCLUDED_PATHS = ( |
r"^breakpad[\\\/].*", |
r"^net/tools/spdyshark/[\\\/].*", |
@@ -18,24 +16,12 @@ |
r".*MakeFile$", |
) |
-_TEXT_FILES = ( |
- r".*\.txt", |
- r".*\.json", |
-) |
-_LICENSE_HEADER = ( |
- r".*? Copyright \(c\) %s The Chromium Authors\. All rights reserved\.\n" |
- r".*? Use of this source code is governed by a BSD-style license that can " |
- "be\n" |
- r".*? found in the LICENSE file\." |
- "\n" |
-) % time.strftime("%Y") |
- |
-def _CheckNoInterfacesInBase(input_api, output_api, source_file_filter): |
+def _CheckNoInterfacesInBase(input_api, output_api): |
"""Checks to make sure no files in libbase.a have |@interface|.""" |
pattern = input_api.re.compile(r'@interface') |
files = [] |
- for f in input_api.AffectedSourceFiles(source_file_filter): |
+ for f in input_api.AffectedSourceFiles(input_api.FilterSourceFile): |
if (f.LocalPath().find('base/') != -1 and |
f.LocalPath().find('base/test/') == -1): |
contents = input_api.ReadFile(f) |
@@ -50,24 +36,14 @@ |
files) ] |
return [] |
-def _CheckSingletonInHeaders(input_api, output_api, source_file_filter): |
- """Checks to make sure no header files have |Singleton<|.""" |
- pattern = input_api.re.compile(r'Singleton<') |
- files = [] |
- for f in input_api.AffectedSourceFiles(source_file_filter): |
- if (f.LocalPath().endswith('.h') or f.LocalPath().endswith('.hxx') or |
- f.LocalPath().endswith('.hpp') or f.LocalPath().endswith('.inl')): |
- contents = input_api.ReadFile(f) |
- if pattern.search(contents): |
- files.append(f) |
- if len(files): |
- return [ output_api.PresubmitError( |
- 'Found Singleton<T> in the following header files.\n' + |
- 'Please move them to an appropriate source file so that the ' + |
- 'template gets instantiated in a single compilation unit.', |
- files) ] |
- return [] |
+def _CommonChecks(input_api, output_api): |
+ """Checks common to both upload and commit.""" |
+ results = [] |
+ results.extend(input_api.canned_checks.PanProjectChecks( |
+ input_api, output_api, excluded_paths=_EXCLUDED_PATHS)) |
+ results.extend(_CheckNoInterfacesInBase(input_api, output_api)) |
+ return results |
def _CheckSubversionConfig(input_api, output_api): |
@@ -114,66 +90,6 @@ |
return [] |
-def _CheckConstNSObject(input_api, output_api, source_file_filter): |
- """Checks to make sure no objective-c files have |const NSSomeClass*|.""" |
- pattern = input_api.re.compile(r'const\s+NS\w*\s*\*') |
- files = [] |
- for f in input_api.AffectedSourceFiles(source_file_filter): |
- if f.LocalPath().endswith('.h') or f.LocalPath().endswith('.mm'): |
- contents = input_api.ReadFile(f) |
- if pattern.search(contents): |
- files.append(f) |
- |
- if len(files): |
- if input_api.is_committing: |
- res_type = output_api.PresubmitPromptWarning |
- else: |
- res_type = output_api.PresubmitNotifyResult |
- return [ res_type('|const NSClass*| is wrong, see ' + |
- 'http://dev.chromium.org/developers/clang-mac', |
- files) ] |
- return [] |
- |
- |
-def _CommonChecks(input_api, output_api): |
- results = [] |
- # What does this code do? |
- # It loads the default black list (e.g. third_party, experimental, etc) and |
- # add our black list (breakpad, skia and v8 are still not following |
- # google style and are not really living this repository). |
- # See presubmit_support.py InputApi.FilterSourceFile for the (simple) usage. |
- black_list = input_api.DEFAULT_BLACK_LIST + _EXCLUDED_PATHS |
- white_list = input_api.DEFAULT_WHITE_LIST + _TEXT_FILES |
- sources = lambda x: input_api.FilterSourceFile(x, black_list=black_list) |
- text_files = lambda x: input_api.FilterSourceFile(x, black_list=black_list, |
- white_list=white_list) |
- |
- # TODO(dpranke): enable upload as well |
- if input_api.is_committing: |
- results.extend(input_api.canned_checks.CheckOwners( |
- input_api, output_api, source_file_filter=sources)) |
- |
- results.extend(input_api.canned_checks.CheckLongLines( |
- input_api, output_api, source_file_filter=sources)) |
- results.extend(input_api.canned_checks.CheckChangeHasNoTabs( |
- input_api, output_api, source_file_filter=sources)) |
- results.extend(input_api.canned_checks.CheckChangeHasNoStrayWhitespace( |
- input_api, output_api, source_file_filter=sources)) |
- results.extend(input_api.canned_checks.CheckChangeSvnEolStyle( |
- input_api, output_api, source_file_filter=text_files)) |
- results.extend(input_api.canned_checks.CheckSvnForCommonMimeTypes( |
- input_api, output_api)) |
- results.extend(input_api.canned_checks.CheckLicense( |
- input_api, output_api, _LICENSE_HEADER, source_file_filter=sources)) |
- results.extend(_CheckConstNSObject( |
- input_api, output_api, source_file_filter=sources)) |
- results.extend(_CheckSingletonInHeaders( |
- input_api, output_api, source_file_filter=sources)) |
- results.extend(_CheckNoInterfacesInBase( |
- input_api, output_api, source_file_filter=sources)) |
- return results |
- |
- |
def CheckChangeOnUpload(input_api, output_api): |
results = [] |
results.extend(_CommonChecks(input_api, output_api)) |