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       white_list=[r'PRESUBMIT\.py$', r'buildbot/.*\.py$'],
     42       extra_paths_list=[
     43           J(), J('..', '..', 'third_party', 'android_testrunner'),
     44           J('buildbot')]))
     45 
     46   output.extend(input_api.canned_checks.RunUnitTestsInDirectory(
     47       input_api, output_api, J('buildbot', 'tests')))
     48   output.extend(_CheckDeletionsOnlyFiles(input_api, output_api))
     49   return output
     50 
     51 
     52 def CheckChangeOnUpload(input_api, output_api):
     53   return CommonChecks(input_api, output_api)
     54 
     55 
     56 def CheckChangeOnCommit(input_api, output_api):
     57   return CommonChecks(input_api, output_api)
     58