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