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