1*8975f5c5SAndroid Build Coastguard Worker# Copyright 2019 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 Workerimport re 6*8975f5c5SAndroid Build Coastguard Worker"""Presubmit for build/util""" 7*8975f5c5SAndroid Build Coastguard Worker 8*8975f5c5SAndroid Build Coastguard Worker 9*8975f5c5SAndroid Build Coastguard Worker 10*8975f5c5SAndroid Build Coastguard Worker 11*8975f5c5SAndroid Build Coastguard Workerdef _GetFilesToSkip(input_api): 12*8975f5c5SAndroid Build Coastguard Worker files_to_skip = [] 13*8975f5c5SAndroid Build Coastguard Worker affected_files = input_api.change.AffectedFiles() 14*8975f5c5SAndroid Build Coastguard Worker version_script_change = next( 15*8975f5c5SAndroid Build Coastguard Worker (f for f in affected_files 16*8975f5c5SAndroid Build Coastguard Worker if re.search('\\/version\\.py$|\\/version_test\\.py$', f.LocalPath())), 17*8975f5c5SAndroid Build Coastguard Worker None) 18*8975f5c5SAndroid Build Coastguard Worker 19*8975f5c5SAndroid Build Coastguard Worker if version_script_change is None: 20*8975f5c5SAndroid Build Coastguard Worker files_to_skip.append('version_test\\.py$') 21*8975f5c5SAndroid Build Coastguard Worker 22*8975f5c5SAndroid Build Coastguard Worker android_chrome_version_script_change = next( 23*8975f5c5SAndroid Build Coastguard Worker (f for f in affected_files if re.search( 24*8975f5c5SAndroid Build Coastguard Worker '\\/android_chrome_version\\.py$|' 25*8975f5c5SAndroid Build Coastguard Worker '\\/android_chrome_version_test\\.py$', f.LocalPath())), None) 26*8975f5c5SAndroid Build Coastguard Worker 27*8975f5c5SAndroid Build Coastguard Worker if android_chrome_version_script_change is None: 28*8975f5c5SAndroid Build Coastguard Worker files_to_skip.append('android_chrome_version_test\\.py$') 29*8975f5c5SAndroid Build Coastguard Worker 30*8975f5c5SAndroid Build Coastguard Worker return files_to_skip 31*8975f5c5SAndroid Build Coastguard Worker 32*8975f5c5SAndroid Build Coastguard Worker 33*8975f5c5SAndroid Build Coastguard Workerdef _GetPythonUnitTests(input_api, output_api): 34*8975f5c5SAndroid Build Coastguard Worker # No need to test if files are unchanged 35*8975f5c5SAndroid Build Coastguard Worker files_to_skip = _GetFilesToSkip(input_api) 36*8975f5c5SAndroid Build Coastguard Worker 37*8975f5c5SAndroid Build Coastguard Worker return input_api.canned_checks.GetUnitTestsRecursively( 38*8975f5c5SAndroid Build Coastguard Worker input_api, 39*8975f5c5SAndroid Build Coastguard Worker output_api, 40*8975f5c5SAndroid Build Coastguard Worker input_api.PresubmitLocalPath(), 41*8975f5c5SAndroid Build Coastguard Worker files_to_check=['.*_test\\.py$'], 42*8975f5c5SAndroid Build Coastguard Worker files_to_skip=files_to_skip) 43*8975f5c5SAndroid Build Coastguard Worker 44*8975f5c5SAndroid Build Coastguard Worker 45*8975f5c5SAndroid Build Coastguard Workerdef CommonChecks(input_api, output_api): 46*8975f5c5SAndroid Build Coastguard Worker """Presubmit checks run on both upload and commit. 47*8975f5c5SAndroid Build Coastguard Worker """ 48*8975f5c5SAndroid Build Coastguard Worker checks = [] 49*8975f5c5SAndroid Build Coastguard Worker checks.extend(_GetPythonUnitTests(input_api, output_api)) 50*8975f5c5SAndroid Build Coastguard Worker return input_api.RunTests(checks, False) 51*8975f5c5SAndroid Build Coastguard Worker 52*8975f5c5SAndroid Build Coastguard Worker 53*8975f5c5SAndroid Build Coastguard Workerdef CheckChangeOnUpload(input_api, output_api): 54*8975f5c5SAndroid Build Coastguard Worker """Presubmit checks on CL upload.""" 55*8975f5c5SAndroid Build Coastguard Worker return CommonChecks(input_api, output_api) 56*8975f5c5SAndroid Build Coastguard Worker 57*8975f5c5SAndroid Build Coastguard Worker 58*8975f5c5SAndroid Build Coastguard Workerdef CheckChangeOnCommit(input_api, output_api): 59*8975f5c5SAndroid Build Coastguard Worker """Presubmit checks on commit.""" 60*8975f5c5SAndroid Build Coastguard Worker return CommonChecks(input_api, output_api) 61