Home | History | Annotate | Download | only in android
      1 # Copyright (c) 2013 The Chromium Authors. All rights reserved.
      2 # Use of this source code is governed by a BSD-style license that can be
      3 # found in the LICENSE file.
      4 
      5 """Presubmit script for android buildbot.
      6 
      7 See http://dev.chromium.org/developers/how-tos/depottools/presubmit-scripts for
      8 details on the presubmit API built into gcl.
      9 """
     10 
     11 _DELETIONS_ONLY_FILES = (
     12     'build/android/findbugs_filter/findbugs_known_bugs.txt',
     13 )
     14 
     15 
     16 def _CheckDeletionsOnlyFiles(input_api, output_api):
     17   """Check that a certain listed files only have deletions.
     18   """
     19   warnings = []
     20   for f in input_api.AffectedFiles():
     21     if f.LocalPath() in _DELETIONS_ONLY_FILES:
     22       if f.ChangedContents():
     23         warnings.append(f.LocalPath())
     24   results = []
     25   if warnings:
     26     results.append(output_api.PresubmitPromptWarning(
     27         'Following files should only contain deletions.', warnings))
     28   return results
     29 
     30 
     31 def CommonChecks(input_api, output_api):
     32   output = []
     33 
     34   def J(*dirs):
     35     """Returns a path relative to presubmit directory."""
     36     return input_api.os_path.join(input_api.PresubmitLocalPath(), *dirs)
     37 
     38   output.extend(input_api.canned_checks.RunPylint(
     39       input_api,
     40       output_api,
     41       black_list=[r'pylib/symbols/.*\.py$', r'gyp/.*\.py$', r'gn/.*\.py'],
     42       extra_paths_list=[
     43           J(), J('..', '..', 'third_party', 'android_testrunner'),
     44           J('buildbot')]))
     45   output.extend(input_api.canned_checks.RunPylint(
     46       input_api,
     47       output_api,
     48       white_list=[r'gyp/.*\.py$', r'gn/.*\.py'],
     49       extra_paths_list=[J('gyp'), J('gn')]))
     50 
     51   # Disabled due to http://crbug.com/410936
     52   #output.extend(input_api.canned_checks.RunUnitTestsInDirectory(
     53   #input_api, output_api, J('buildbot', 'tests')))
     54 
     55   pylib_test_env = dict(input_api.environ)
     56   pylib_test_env.update({
     57       'PYTHONPATH': input_api.PresubmitLocalPath(),
     58       'PYTHONDONTWRITEBYTECODE': '1',
     59   })
     60   output.extend(input_api.canned_checks.RunUnitTests(
     61       input_api,
     62       output_api,
     63       unit_tests=[
     64           J('pylib', 'device', 'device_utils_test.py'),
     65           J('pylib', 'gtest', 'test_package_test.py'),
     66           J('pylib', 'instrumentation', 'test_runner_test.py'),
     67       ],
     68       env=pylib_test_env))
     69   output.extend(_CheckDeletionsOnlyFiles(input_api, output_api))
     70   return output
     71 
     72 
     73 def CheckChangeOnUpload(input_api, output_api):
     74   return CommonChecks(input_api, output_api)
     75 
     76 
     77 def CheckChangeOnCommit(input_api, output_api):
     78   return CommonChecks(input_api, output_api)
     79