blob: 9696c0b71b8fc51e9ae9b21072a431a2ec92a6d9 [file] [log] [blame]
# SPDX-License-Identifier: GPL-2.0-or-later
import os
from subprocess import check_call
import sys
class TestLinters:
def test_flake8_pkg(self):
check_call([sys.executable, "-m", "flake8", "qemu/"])
def test_flake8_scripts(self):
check_call([sys.executable, "-m", "flake8", "scripts/"])
def test_flake8_qapi(self):
check_call(
[
sys.executable,
"-m",
"flake8",
"../scripts/qapi/",
"../docs/sphinx/qapidoc.py",
"../docs/sphinx/qapi_domain.py",
]
)
def test_isort_pkg(self):
check_call([sys.executable, "-m", "isort", "-c", "qemu/"])
def test_isort_scripts(self):
check_call([sys.executable, "-m", "isort", "-c", "scripts/"])
def test_isort_qapi(self):
check_call(
[
sys.executable,
"-m",
"isort",
"--sp",
".",
"-c",
"../scripts/qapi/",
]
)
def test_isort_qapi_sphinx(self):
# Force isort to recognize 'compat' as a local module and not
# third-party
check_call(
[
sys.executable,
"-m",
"isort",
"--sp",
".",
"-c",
"-p",
"compat",
"../docs/sphinx/qapi_domain.py",
"../docs/sphinx/qapidoc.py",
]
)
def test_mypy_pkg(self):
check_call([sys.executable, "-m", "mypy", "-p", "qemu"])
def test_mypy_scripts(self):
check_call([sys.executable, "-m", "mypy", "scripts/"])
def test_mypy_qapi(self):
check_call([sys.executable, "-m", "mypy", "../scripts/qapi"])
def test_mypy_iotests(self):
check_call(
[sys.executable, "-m", "linters", "--mypy"],
cwd="../tests/qemu-iotests/",
)
# Setuptools v60 introduced the SETUPTOOLS_USE_DISTUTILS=stdlib
# workaround; stdlib distutils was fully removed in Python
# 3.12+. Once we are on >=3.12+ exclusively, this workaround can be
# dropped safely. Until then, it is needed for some versions on
# Fedora/Debian distributions which relied upon distro-patched
# setuptools present in CPython, but not within setuptools itself.
def test_pylint_pkg(self):
os.environ["SETUPTOOLS_USE_DISTUTILS"] = "stdlib"
check_call([sys.executable, "-m", "pylint", "qemu/"])
def test_pylint_scripts(self):
os.environ["SETUPTOOLS_USE_DISTUTILS"] = "stdlib"
check_call([sys.executable, "-m", "pylint", "scripts/"])
def test_pylint_qapi(self):
os.environ["SETUPTOOLS_USE_DISTUTILS"] = "stdlib"
check_call(
[
sys.executable,
"-m",
"pylint",
"--rcfile=../scripts/qapi/pylintrc",
"../scripts/qapi/",
"../docs/sphinx/qapidoc.py",
"../docs/sphinx/qapi_domain.py",
]
)
def test_pylint_iotests(self):
os.environ["SETUPTOOLS_USE_DISTUTILS"] = "stdlib"
check_call(
[sys.executable, "-m", "linters", "--pylint"],
cwd="../tests/qemu-iotests/",
)