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