mirror of
https://github.com/klzgrad/naiveproxy.git
synced 2025-04-12 13:40:59 +00:00
57 lines
2.1 KiB
Python
57 lines
2.1 KiB
Python
# 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.
|
|
|
|
PRESUBMIT_VERSION = '2.0.0'
|
|
|
|
# This line is 'magic' in that git-cl looks for it to decide whether to
|
|
# use Python3 instead of Python2 when running the code in this file.
|
|
USE_PYTHON3 = True
|
|
|
|
import textwrap
|
|
|
|
|
|
def CheckNoBadDeps(input_api, output_api):
|
|
"""Prevent additions of bad dependencies from the //build prefix."""
|
|
build_file_patterns = [
|
|
r'(.+/)?BUILD\.gn',
|
|
r'.+\.gni',
|
|
]
|
|
blocklist_pattern = input_api.re.compile(r'^[^#]*"//(?!build).+?/.*"')
|
|
allowlist_pattern = input_api.re.compile(r'^[^#]*"//third_party/junit')
|
|
|
|
warning_message = textwrap.dedent("""
|
|
The //build directory is meant to be as hermetic as possible so that
|
|
other projects (webrtc, v8, angle) can make use of it. If you are adding
|
|
a new dep from //build onto another directory, you should consider:
|
|
1) Can that dep live within //build?
|
|
2) Can the dep be guarded by "build_with_chromium"?
|
|
3) Have you made this new dep easy to pull in for other projects (ideally
|
|
a matter of adding a DEPS entry).:""")
|
|
|
|
def FilterFile(affected_file):
|
|
return input_api.FilterSourceFile(affected_file,
|
|
files_to_check=build_file_patterns)
|
|
|
|
problems = []
|
|
for f in input_api.AffectedSourceFiles(FilterFile):
|
|
local_path = f.LocalPath()
|
|
for line_number, line in f.ChangedContents():
|
|
if blocklist_pattern.search(line) and not allowlist_pattern.search(line):
|
|
problems.append('%s:%d\n %s' %
|
|
(local_path, line_number, line.strip()))
|
|
if problems:
|
|
return [output_api.PresubmitPromptOrNotify(warning_message, problems)]
|
|
else:
|
|
return []
|
|
|
|
|
|
def CheckPythonTests(input_api, output_api):
|
|
return input_api.RunTests(
|
|
input_api.canned_checks.GetUnitTestsInDirectory(
|
|
input_api,
|
|
output_api,
|
|
input_api.PresubmitLocalPath(),
|
|
files_to_check=[r'.+_(?:unit)?test\.py$'],
|
|
run_on_python2=False,
|
|
run_on_python3=True))
|