PR-URL: https://github.com/nodejs/node/pull/55014 Reviewed-By: Matteo Collina <matteo.collina@gmail.com> Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com>
73 lines
2.0 KiB
Python
73 lines
2.0 KiB
Python
# Copyright 2023 the V8 project authors. All rights reserved.
|
|
# Use of this source code is governed by a BSD-style license that can be
|
|
# found in the LICENSE file.
|
|
|
|
import pathlib
|
|
import platform
|
|
from subprocess import STDOUT, PIPE, Popen
|
|
|
|
# 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
|
|
|
|
|
|
def _CheckLint(input_api, output_api):
|
|
root = pathlib.Path(input_api.PresubmitLocalPath())
|
|
vpython_spec = root / '.lint-vpython3'
|
|
workdir = root / 'data'
|
|
lint_exe = workdir / 'tools' / 'lint' / 'lint.py'
|
|
test_path = workdir / '..' / 'local-tests' / 'test'
|
|
staging_path = (test_path / 'staging').relative_to(workdir)
|
|
lint_exceptions = root / 'lint.exceptions'
|
|
command = [
|
|
'vpython3',
|
|
'-vpython-spec',
|
|
vpython_spec,
|
|
lint_exe,
|
|
'--exceptions',
|
|
lint_exceptions,
|
|
'--features',
|
|
staging_path / 'features.txt',
|
|
staging_path,
|
|
]
|
|
proc = Popen(
|
|
command,
|
|
cwd=workdir,
|
|
stderr=STDOUT,
|
|
stdout=PIPE,
|
|
shell=platform.system() == 'Windows')
|
|
output, exit_code = proc.communicate()[0], proc.returncode
|
|
if exit_code == 0:
|
|
return []
|
|
return [
|
|
output_api.PresubmitError(
|
|
"Test262 lint failed.", long_text=output.decode())
|
|
]
|
|
|
|
|
|
def _PyUnitTest(input_api, output_api):
|
|
return input_api.RunTests(
|
|
input_api.canned_checks.GetUnitTestsRecursively(
|
|
input_api,
|
|
output_api,
|
|
input_api.os_path.join(input_api.PresubmitLocalPath()),
|
|
files_to_check=[r'.+_test\.py$'],
|
|
files_to_skip=[],
|
|
run_on_python2=False,
|
|
))
|
|
|
|
def _CommonChecks(input_api, output_api):
|
|
checks = [
|
|
_CheckLint,
|
|
_PyUnitTest,
|
|
]
|
|
return sum([check(input_api, output_api) for check in checks], [])
|
|
|
|
|
|
def CheckChangeOnCommit(input_api, output_api):
|
|
return _CommonChecks(input_api, output_api)
|
|
|
|
|
|
def CheckChangeOnUpload(input_api, output_api):
|
|
return _CommonChecks(input_api, output_api)
|