blob: 86266026adc7ec73849f21dbb9db693b66b4a1c5 [file] [log] [blame]
#!/usr/bin/env vpython3
# Copyright 2022 The Chromium Authors
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
"""Simple helper script to run pytype on GPU Python code."""
import os
import sys
# We can't depend on gpu_path_util, otherwise pytype's dependency graph ends up
# finding a cycle.
GPU_DIR = os.path.abspath(os.path.dirname(__file__))
CHROMIUM_SRC_DIR = os.path.realpath(os.path.join(GPU_DIR, '..', '..', '..'))
sys.path.append(os.path.join(CHROMIUM_SRC_DIR, 'testing'))
from pytype_common import pytype_runner # pylint: disable=wrong-import-position
# This list should be kept in sync with EXTRA_PATH_COMPONENTS in PRESUBMIT.py
EXTRA_PATHS_COMPONENTS = [
('build', ),
('build', 'fuchsia'),
('build', 'util'),
('testing', ),
('third_party', 'catapult', 'common', 'py_utils'),
('third_party', 'catapult', 'devil'),
('third_party', 'catapult', 'telemetry'),
('third_party', 'catapult', 'third_party', 'typ'),
('tools', 'perf'),
]
EXTRA_PATHS = [
os.path.join(CHROMIUM_SRC_DIR, *p) for p in EXTRA_PATHS_COMPONENTS
]
EXTRA_PATHS.append(GPU_DIR)
FILES_AND_DIRECTORIES_TO_CHECK = [
'flake_suppressor',
'gold_inexact_matching',
'gpu_tests',
'unexpected_passes',
]
FILES_AND_DIRECTORIES_TO_CHECK = [
os.path.join(GPU_DIR, f) for f in FILES_AND_DIRECTORIES_TO_CHECK
]
TEST_NAME = 'gpu_pytype'
TEST_LOCATION = '//content/test/gpu/run_pytype.py'
def main() -> int:
return pytype_runner.run_pytype(TEST_NAME, TEST_LOCATION,
FILES_AND_DIRECTORIES_TO_CHECK, EXTRA_PATHS,
GPU_DIR)
if __name__ == '__main__':
sys.exit(main())