diff options
author | jochen@chromium.org <jochen@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-11-29 13:01:24 +0000 |
---|---|---|
committer | jochen@chromium.org <jochen@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-11-29 13:01:24 +0000 |
commit | 5a0114506d71f5c73f2e8eab572dd3922d7233e4 (patch) | |
tree | 9fbfc6c2ec160326fbcbb5b5a114a5685bc784d4 /chrome/PRESUBMIT.py | |
parent | a3a494336d1719255af56c014a0d27374061e799 (diff) | |
download | chromium_src-5a0114506d71f5c73f2e8eab572dd3922d7233e4.zip chromium_src-5a0114506d71f5c73f2e8eab572dd3922d7233e4.tar.gz chromium_src-5a0114506d71f5c73f2e8eab572dd3922d7233e4.tar.bz2 |
Add a presubmit check so that no new unit tests in content/ are added to the unit_tests target
They should all go to content_unittests now
BUG=90443
TEST=manual
Review URL: http://codereview.chromium.org/8728012
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@111925 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/PRESUBMIT.py')
-rw-r--r-- | chrome/PRESUBMIT.py | 51 |
1 files changed, 46 insertions, 5 deletions
diff --git a/chrome/PRESUBMIT.py b/chrome/PRESUBMIT.py index 087232f..8bf83c5 100644 --- a/chrome/PRESUBMIT.py +++ b/chrome/PRESUBMIT.py @@ -2,7 +2,13 @@ # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. -"""Makes sure that the chrome/ code is cpplint clean.""" +"""Presubmit script for changes affecting chrome/ + +See http://dev.chromium.org/developers/how-tos/depottools/presubmit-scripts +for more details about the presubmit API built into gcl. +""" + +import re INCLUDE_CPP_FILES_ONLY = ( r'.*\.cc$', r'.*\.h$' @@ -40,11 +46,46 @@ EXCLUDE = ( r'gcapi\.cc$', ) -def CheckChangeOnUpload(input_api, output_api): - results = [] +def _CheckChangeLintsClean(input_api, output_api): + """Makes sure that the chrome/ code is cpplint clean.""" black_list = input_api.DEFAULT_BLACK_LIST + EXCLUDE sources = lambda x: input_api.FilterSourceFile( x, white_list=INCLUDE_CPP_FILES_ONLY, black_list=black_list) - results.extend(input_api.canned_checks.CheckChangeLintsClean( - input_api, output_api, sources)) + return input_api.canned_checks.CheckChangeLintsClean( + input_api, output_api, sources) + +def _CheckNoContentUnitTestsInChrome(input_api, output_api): + """Makes sure that no unit tests from content/ are included in unit_tests.""" + problems = [] + for f in input_api.AffectedFiles(): + if not f.LocalPath().endswith('chrome_tests.gypi'): + continue + + for line_num, line in f.ChangedContents(): + m = re.search(r"'(.*\/content\/.*unittest.*)'", line) + if m: + problems.append(m.group(1)) + + if not problems: + return [] + return [output_api.PresubmitPromptWarning( + 'Unit tests located in content/ should be added to the ' + + 'content_tests.gypi:content_unittests target.', + items=problems)] + +def _CommonChecks(input_api, output_api): + """Checks common to both upload and commit.""" + results = [] + results.extend(_CheckNoContentUnitTestsInChrome(input_api, output_api)) + return results + +def CheckChangeOnUpload(input_api, output_api): + results = [] + results.extend(_CommonChecks(input_api, output_api)) + results.extend(_CheckChangeLintsClean(input_api, output_api)) + return results + +def CheckChangeOnCommit(input_api, output_api): + results = [] + results.extend(_CommonChecks(input_api, output_api)) return results |