1*6777b538SAndroid Build Coastguard Worker# Copyright 2013 The Chromium Authors 2*6777b538SAndroid Build Coastguard Worker# Use of this source code is governed by a BSD-style license that can be 3*6777b538SAndroid Build Coastguard Worker# found in the LICENSE file. 4*6777b538SAndroid Build Coastguard Worker 5*6777b538SAndroid Build Coastguard Worker"""Presubmit script for android buildbot. 6*6777b538SAndroid Build Coastguard Worker 7*6777b538SAndroid Build Coastguard WorkerSee http://dev.chromium.org/developers/how-tos/depottools/presubmit-scripts for 8*6777b538SAndroid Build Coastguard Workerdetails on the presubmit API built into depot_tools. 9*6777b538SAndroid Build Coastguard Worker""" 10*6777b538SAndroid Build Coastguard Worker 11*6777b538SAndroid Build Coastguard Worker 12*6777b538SAndroid Build Coastguard Worker 13*6777b538SAndroid Build Coastguard Workerdef CommonChecks(input_api, output_api): 14*6777b538SAndroid Build Coastguard Worker # These tools don't run on Windows so these tests don't work and give many 15*6777b538SAndroid Build Coastguard Worker # verbose and cryptic failure messages. Linting the code is also skipped on 16*6777b538SAndroid Build Coastguard Worker # Windows because it will fail due to os differences. 17*6777b538SAndroid Build Coastguard Worker if input_api.sys.platform == 'win32': 18*6777b538SAndroid Build Coastguard Worker return [] 19*6777b538SAndroid Build Coastguard Worker 20*6777b538SAndroid Build Coastguard Worker build_android_dir = input_api.PresubmitLocalPath() 21*6777b538SAndroid Build Coastguard Worker 22*6777b538SAndroid Build Coastguard Worker def J(*dirs): 23*6777b538SAndroid Build Coastguard Worker """Returns a path relative to presubmit directory.""" 24*6777b538SAndroid Build Coastguard Worker return input_api.os_path.join(build_android_dir, *dirs) 25*6777b538SAndroid Build Coastguard Worker 26*6777b538SAndroid Build Coastguard Worker build_pys = [ 27*6777b538SAndroid Build Coastguard Worker r'gn/.*\.py$', 28*6777b538SAndroid Build Coastguard Worker r'gyp/.*\.py$', 29*6777b538SAndroid Build Coastguard Worker ] 30*6777b538SAndroid Build Coastguard Worker tests = [] 31*6777b538SAndroid Build Coastguard Worker # yapf likes formatting the extra_paths_list to be less readable. 32*6777b538SAndroid Build Coastguard Worker # yapf: disable 33*6777b538SAndroid Build Coastguard Worker tests.extend( 34*6777b538SAndroid Build Coastguard Worker input_api.canned_checks.GetPylint( 35*6777b538SAndroid Build Coastguard Worker input_api, 36*6777b538SAndroid Build Coastguard Worker output_api, 37*6777b538SAndroid Build Coastguard Worker pylintrc='pylintrc', 38*6777b538SAndroid Build Coastguard Worker files_to_skip=[ 39*6777b538SAndroid Build Coastguard Worker r'.*_pb2\.py' 40*6777b538SAndroid Build Coastguard Worker ] + build_pys, 41*6777b538SAndroid Build Coastguard Worker extra_paths_list=[ 42*6777b538SAndroid Build Coastguard Worker J(), 43*6777b538SAndroid Build Coastguard Worker J('gyp'), 44*6777b538SAndroid Build Coastguard Worker J('buildbot'), 45*6777b538SAndroid Build Coastguard Worker J('..', 'util', 'lib', 'common'), 46*6777b538SAndroid Build Coastguard Worker J('..', '..', 'third_party', 'catapult', 'common', 47*6777b538SAndroid Build Coastguard Worker 'py_trace_event'), 48*6777b538SAndroid Build Coastguard Worker J('..', '..', 'third_party', 'catapult', 'common', 'py_utils'), 49*6777b538SAndroid Build Coastguard Worker J('..', '..', 'third_party', 'catapult', 'devil'), 50*6777b538SAndroid Build Coastguard Worker J('..', '..', 'third_party', 'catapult', 'tracing'), 51*6777b538SAndroid Build Coastguard Worker J('..', '..', 'third_party', 'depot_tools'), 52*6777b538SAndroid Build Coastguard Worker J('..', '..', 'third_party', 'colorama', 'src'), 53*6777b538SAndroid Build Coastguard Worker J('..', '..', 'build'), 54*6777b538SAndroid Build Coastguard Worker ], 55*6777b538SAndroid Build Coastguard Worker version='2.7')) 56*6777b538SAndroid Build Coastguard Worker tests.extend( 57*6777b538SAndroid Build Coastguard Worker input_api.canned_checks.GetPylint( 58*6777b538SAndroid Build Coastguard Worker input_api, 59*6777b538SAndroid Build Coastguard Worker output_api, 60*6777b538SAndroid Build Coastguard Worker files_to_check=build_pys, 61*6777b538SAndroid Build Coastguard Worker files_to_skip=[ 62*6777b538SAndroid Build Coastguard Worker r'.*_pb2\.py', 63*6777b538SAndroid Build Coastguard Worker r'.*_pb2\.py', 64*6777b538SAndroid Build Coastguard Worker r'.*create_unwind_table\.py', 65*6777b538SAndroid Build Coastguard Worker r'.*create_unwind_table_tests\.py', 66*6777b538SAndroid Build Coastguard Worker ], 67*6777b538SAndroid Build Coastguard Worker extra_paths_list=[J('gyp'), J('gn')], 68*6777b538SAndroid Build Coastguard Worker version='2.7')) 69*6777b538SAndroid Build Coastguard Worker 70*6777b538SAndroid Build Coastguard Worker tests.extend( 71*6777b538SAndroid Build Coastguard Worker input_api.canned_checks.GetPylint( 72*6777b538SAndroid Build Coastguard Worker input_api, 73*6777b538SAndroid Build Coastguard Worker output_api, 74*6777b538SAndroid Build Coastguard Worker files_to_check=[ 75*6777b538SAndroid Build Coastguard Worker r'.*create_unwind_table\.py', 76*6777b538SAndroid Build Coastguard Worker r'.*create_unwind_table_tests\.py', 77*6777b538SAndroid Build Coastguard Worker ], 78*6777b538SAndroid Build Coastguard Worker extra_paths_list=[J('gyp'), J('gn')], 79*6777b538SAndroid Build Coastguard Worker version='2.7')) 80*6777b538SAndroid Build Coastguard Worker # yapf: enable 81*6777b538SAndroid Build Coastguard Worker 82*6777b538SAndroid Build Coastguard Worker # Disabled due to http://crbug.com/410936 83*6777b538SAndroid Build Coastguard Worker #output.extend(input_api.canned_checks.RunUnitTestsInDirectory( 84*6777b538SAndroid Build Coastguard Worker #input_api, output_api, J('buildbot', 'tests'))) 85*6777b538SAndroid Build Coastguard Worker 86*6777b538SAndroid Build Coastguard Worker pylib_test_env = dict(input_api.environ) 87*6777b538SAndroid Build Coastguard Worker pylib_test_env.update({ 88*6777b538SAndroid Build Coastguard Worker 'PYTHONPATH': build_android_dir, 89*6777b538SAndroid Build Coastguard Worker 'PYTHONDONTWRITEBYTECODE': '1', 90*6777b538SAndroid Build Coastguard Worker }) 91*6777b538SAndroid Build Coastguard Worker tests.extend( 92*6777b538SAndroid Build Coastguard Worker input_api.canned_checks.GetUnitTests( 93*6777b538SAndroid Build Coastguard Worker input_api, 94*6777b538SAndroid Build Coastguard Worker output_api, 95*6777b538SAndroid Build Coastguard Worker unit_tests=[ 96*6777b538SAndroid Build Coastguard Worker J('.', 'list_class_verification_failures_test.py'), 97*6777b538SAndroid Build Coastguard Worker J('pylib', 'constants', 'host_paths_unittest.py'), 98*6777b538SAndroid Build Coastguard Worker J('pylib', 'gtest', 'gtest_test_instance_test.py'), 99*6777b538SAndroid Build Coastguard Worker J('pylib', 'instrumentation', 100*6777b538SAndroid Build Coastguard Worker 'instrumentation_test_instance_test.py'), 101*6777b538SAndroid Build Coastguard Worker J('pylib', 'local', 'device', 'local_device_gtest_run_test.py'), 102*6777b538SAndroid Build Coastguard Worker J('pylib', 'local', 'device', 103*6777b538SAndroid Build Coastguard Worker 'local_device_instrumentation_test_run_test.py'), 104*6777b538SAndroid Build Coastguard Worker J('pylib', 'local', 'device', 'local_device_test_run_test.py'), 105*6777b538SAndroid Build Coastguard Worker J('pylib', 'local', 'machine', 106*6777b538SAndroid Build Coastguard Worker 'local_machine_junit_test_run_test.py'), 107*6777b538SAndroid Build Coastguard Worker J('pylib', 'output', 'local_output_manager_test.py'), 108*6777b538SAndroid Build Coastguard Worker J('pylib', 'output', 'noop_output_manager_test.py'), 109*6777b538SAndroid Build Coastguard Worker J('pylib', 'output', 'remote_output_manager_test.py'), 110*6777b538SAndroid Build Coastguard Worker J('pylib', 'results', 'json_results_test.py'), 111*6777b538SAndroid Build Coastguard Worker J('pylib', 'utils', 'chrome_proxy_utils_test.py'), 112*6777b538SAndroid Build Coastguard Worker J('pylib', 'utils', 'code_coverage_utils_test.py'), 113*6777b538SAndroid Build Coastguard Worker J('pylib', 'utils', 'decorators_test.py'), 114*6777b538SAndroid Build Coastguard Worker J('pylib', 'utils', 'device_dependencies_test.py'), 115*6777b538SAndroid Build Coastguard Worker J('pylib', 'utils', 'dexdump_test.py'), 116*6777b538SAndroid Build Coastguard Worker J('pylib', 'utils', 'gold_utils_test.py'), 117*6777b538SAndroid Build Coastguard Worker J('pylib', 'utils', 'test_filter_test.py'), 118*6777b538SAndroid Build Coastguard Worker J('gyp', 'dex_test.py'), 119*6777b538SAndroid Build Coastguard Worker J('gyp', 'util', 'build_utils_test.py'), 120*6777b538SAndroid Build Coastguard Worker J('gyp', 'util', 'manifest_utils_test.py'), 121*6777b538SAndroid Build Coastguard Worker J('gyp', 'util', 'md5_check_test.py'), 122*6777b538SAndroid Build Coastguard Worker J('gyp', 'util', 'resource_utils_test.py'), 123*6777b538SAndroid Build Coastguard Worker ], 124*6777b538SAndroid Build Coastguard Worker env=pylib_test_env)) 125*6777b538SAndroid Build Coastguard Worker 126*6777b538SAndroid Build Coastguard Worker return input_api.RunTests(tests) 127*6777b538SAndroid Build Coastguard Worker 128*6777b538SAndroid Build Coastguard Worker 129*6777b538SAndroid Build Coastguard Workerdef CheckChangeOnUpload(input_api, output_api): 130*6777b538SAndroid Build Coastguard Worker return CommonChecks(input_api, output_api) 131*6777b538SAndroid Build Coastguard Worker 132*6777b538SAndroid Build Coastguard Worker 133*6777b538SAndroid Build Coastguard Workerdef CheckChangeOnCommit(input_api, output_api): 134*6777b538SAndroid Build Coastguard Worker return CommonChecks(input_api, output_api) 135