1*6777b538SAndroid Build Coastguard Worker# Copyright 2012 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"""Top-level presubmit script for testing. 6*6777b538SAndroid Build Coastguard Worker 7*6777b538SAndroid Build Coastguard WorkerSee http://dev.chromium.org/developers/how-tos/depottools/presubmit-scripts 8*6777b538SAndroid Build Coastguard Workerfor more details on the presubmit API built into depot_tools. 9*6777b538SAndroid Build Coastguard Worker""" 10*6777b538SAndroid Build Coastguard Worker 11*6777b538SAndroid Build Coastguard WorkerPRESUBMIT_VERSION = '2.0.0' 12*6777b538SAndroid Build Coastguard Worker 13*6777b538SAndroid Build Coastguard Worker 14*6777b538SAndroid Build Coastguard Workerdef _GetTestingEnv(input_api): 15*6777b538SAndroid Build Coastguard Worker """Gets the common environment for running testing/ tests.""" 16*6777b538SAndroid Build Coastguard Worker testing_env = dict(input_api.environ) 17*6777b538SAndroid Build Coastguard Worker testing_path = input_api.PresubmitLocalPath() 18*6777b538SAndroid Build Coastguard Worker # TODO(crbug.com/1358733): This is temporary till gpu code in 19*6777b538SAndroid Build Coastguard Worker # flake_suppressor_commonis moved to gpu dir. 20*6777b538SAndroid Build Coastguard Worker # Only common code will reside under /testing. 21*6777b538SAndroid Build Coastguard Worker gpu_test_path = input_api.os_path.join( 22*6777b538SAndroid Build Coastguard Worker input_api.PresubmitLocalPath(), '..', 'content', 'test', 'gpu') 23*6777b538SAndroid Build Coastguard Worker testing_env.update({ 24*6777b538SAndroid Build Coastguard Worker 'PYTHONPATH': input_api.os_path.pathsep.join( 25*6777b538SAndroid Build Coastguard Worker [testing_path, gpu_test_path]), 26*6777b538SAndroid Build Coastguard Worker 'PYTHONDONTWRITEBYTECODE': '1', 27*6777b538SAndroid Build Coastguard Worker }) 28*6777b538SAndroid Build Coastguard Worker return testing_env 29*6777b538SAndroid Build Coastguard Worker 30*6777b538SAndroid Build Coastguard Worker 31*6777b538SAndroid Build Coastguard Workerdef CheckFlakeSuppressorCommonUnittests(input_api, output_api): 32*6777b538SAndroid Build Coastguard Worker """Runs unittests in the testing/flake_suppressor_common/ directory.""" 33*6777b538SAndroid Build Coastguard Worker return input_api.canned_checks.RunUnitTestsInDirectory( 34*6777b538SAndroid Build Coastguard Worker input_api, 35*6777b538SAndroid Build Coastguard Worker output_api, 36*6777b538SAndroid Build Coastguard Worker input_api.os_path.join(input_api.PresubmitLocalPath(), 37*6777b538SAndroid Build Coastguard Worker 'flake_suppressor_common'), 38*6777b538SAndroid Build Coastguard Worker [r'^.+_unittest\.py$'], 39*6777b538SAndroid Build Coastguard Worker env=_GetTestingEnv(input_api)) 40*6777b538SAndroid Build Coastguard Worker 41*6777b538SAndroid Build Coastguard Worker 42*6777b538SAndroid Build Coastguard Workerdef CheckUnexpectedPassesCommonUnittests(input_api, output_api): 43*6777b538SAndroid Build Coastguard Worker """Runs unittests in the testing/unexpected_passes_common/ directory.""" 44*6777b538SAndroid Build Coastguard Worker return input_api.canned_checks.RunUnitTestsInDirectory( 45*6777b538SAndroid Build Coastguard Worker input_api, 46*6777b538SAndroid Build Coastguard Worker output_api, 47*6777b538SAndroid Build Coastguard Worker input_api.os_path.join(input_api.PresubmitLocalPath(), 48*6777b538SAndroid Build Coastguard Worker 'unexpected_passes_common'), 49*6777b538SAndroid Build Coastguard Worker [r'^.+_unittest\.py$'], 50*6777b538SAndroid Build Coastguard Worker env=_GetTestingEnv(input_api)) 51*6777b538SAndroid Build Coastguard Worker 52*6777b538SAndroid Build Coastguard Worker 53*6777b538SAndroid Build Coastguard Workerdef CheckPylint(input_api, output_api): 54*6777b538SAndroid Build Coastguard Worker """Runs pylint on all directory content and subdirectories.""" 55*6777b538SAndroid Build Coastguard Worker files_to_skip = input_api.DEFAULT_FILES_TO_SKIP 56*6777b538SAndroid Build Coastguard Worker if input_api.is_windows: 57*6777b538SAndroid Build Coastguard Worker # These scripts don't run on Windows and should not be linted on Windows - 58*6777b538SAndroid Build Coastguard Worker # trying to do so will lead to spurious errors. 59*6777b538SAndroid Build Coastguard Worker files_to_skip += ('xvfb.py', '.*host_info.py') 60*6777b538SAndroid Build Coastguard Worker pylint_checks = input_api.canned_checks.GetPylint( 61*6777b538SAndroid Build Coastguard Worker input_api, 62*6777b538SAndroid Build Coastguard Worker output_api, 63*6777b538SAndroid Build Coastguard Worker files_to_skip=files_to_skip, 64*6777b538SAndroid Build Coastguard Worker version='2.7') 65*6777b538SAndroid Build Coastguard Worker return input_api.RunTests(pylint_checks) 66