From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail.ozlabs.org (gandalf.ozlabs.org [150.107.74.76]) by passt.top (Postfix) with ESMTPS id AB3645A031F for ; Mon, 05 Aug 2024 14:37:11 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gibson.dropbear.id.au; s=202312; t=1722861425; bh=Ngo3ZbQrqLCS6+qE22L/u5DYDpzys++ij2WpSZM/DsM=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=EWqS4tZA9v8tyX/E8QDe93gIVaxMrMW73s+ZQh16Q9OPDbtGNjSUviJBVr4lKZBCt mZ2sjve7fLh9ceNjRVU5+mM/BfvcoRhJHB1lf+erpxC5CkBY0MsnPMMHVE+AlL/q/m 10s4GzbU+yqpDtc/S7OCxq7Gd9IFLePdmnBGZs1t1e+8R3vNUGVnUZCZaRTOx2YJnh zx7UjRJo+p/V1KWST62U1ZipK3bOImLxxmwtJqr9FtXMwsjf58dNMWI39nHh19m6c+ 4+KfLb21HmKuEi0hwukK6Bu9o/yWn/YAMpfPqk9atYVJPgLjqt/uL3fs0DvrW2grl2 2tIJnjrcuuwIg== Received: by gandalf.ozlabs.org (Postfix, from userid 1007) id 4WcwtT25VZz4x6q; Mon, 5 Aug 2024 22:37:05 +1000 (AEST) From: David Gibson To: Stefano Brivio , passt-dev@passt.top Subject: [PATCH v2 07/22] test: Add linters for Python code Date: Mon, 5 Aug 2024 22:36:46 +1000 Message-ID: <20240805123701.1720730-8-david@gibson.dropbear.id.au> X-Mailer: git-send-email 2.45.2 In-Reply-To: <20240805123701.1720730-1-david@gibson.dropbear.id.au> References: <20240805123701.1720730-1-david@gibson.dropbear.id.au> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Message-ID-Hash: NNCTWQFWXDMNEAEZT4RMPCSUHNPQYP3V X-Message-ID-Hash: NNCTWQFWXDMNEAEZT4RMPCSUHNPQYP3V X-MailFrom: dgibson@gandalf.ozlabs.org X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header CC: Cleber Rosa , David Gibson X-Mailman-Version: 3.3.8 Precedence: list List-Id: Development discussion and patches for passt Archived-At: Archived-At: List-Archive: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: We use both cppcheck and clang-tidy to lint our C code. Now that we're introducing Python code in the tests, use linters pycodestyle and flake8. Add a "make meta" target to run tests of the test infrastructure. For now it just has the linters, but we'll add more in future. Signed-off-by: David Gibson --- test/Makefile | 22 +++++++++++++++++++--- test/build/static_checkers.sh | 2 -- test/meta/.gitignore | 1 + test/meta/lint.sh | 28 ++++++++++++++++++++++++++++ test/run_avocado | 5 +++-- 5 files changed, 51 insertions(+), 7 deletions(-) create mode 100644 test/meta/.gitignore create mode 100644 test/meta/lint.sh diff --git a/test/Makefile b/test/Makefile index d24fce14..0b3ed3d0 100644 --- a/test/Makefile +++ b/test/Makefile @@ -6,6 +6,8 @@ # Author: David Gibson WGET = wget -c +FLAKE8 = flake8-3 +PYCODESTYLE = pycodestyle-3 DEBIAN_IMGS = debian-8.11.0-openstack-amd64.qcow2 \ debian-9-nocloud-amd64-daily-20200210-166.qcow2 \ @@ -66,9 +68,13 @@ ASSETS = $(DOWNLOAD_ASSETS) $(LOCAL_ASSETS) EXETER_SH = build/static_checkers.sh EXETER_PY = build/build.py EXETER_JOBS = $(EXETER_SH:%.sh=%.json) $(EXETER_PY:%.py=%.json) - AVOCADO_JOBS = $(EXETER_JOBS) avocado/static_checkers.json +EXETER_META = meta/lint.json +META_JOBS = $(EXETER_META) + +PYPKGS = $(EXETER_PY) + PYTHON = python3 VENV = venv PIP = $(VENV)/bin/pip3 @@ -147,7 +153,17 @@ venv: pull-exeter .PHONY: avocado avocado: venv $(AVOCADO_JOBS) - $(RUN_AVOCADO) $(AVOCADO_JOBS) + $(RUN_AVOCADO) all $(AVOCADO_JOBS) + +.PHONY: meta +meta: venv $(META_JOBS) + $(RUN_AVOCADO) meta $(META_JOBS) + +flake8: + $(FLAKE8) $(PYPKGS) + +pycodestyle: + $(PYCODESTYLE) $(PYPKGS) check: assets ./run @@ -161,7 +177,7 @@ clean: rm -rf test_logs rm -f prepared-*.qcow2 prepared-*.img rm -rf $(VENV) - rm -f $(EXETER_JOBS) + rm -f $(EXETER_JOBS) $(EXETER_META) realclean: clean rm -rf $(DOWNLOAD_ASSETS) diff --git a/test/build/static_checkers.sh b/test/build/static_checkers.sh index ec159ea2..fa07f8fd 100644 --- a/test/build/static_checkers.sh +++ b/test/build/static_checkers.sh @@ -26,5 +26,3 @@ clang_tidy () { exeter_register clang_tidy exeter_main "$@" - - diff --git a/test/meta/.gitignore b/test/meta/.gitignore new file mode 100644 index 00000000..a6c57f5f --- /dev/null +++ b/test/meta/.gitignore @@ -0,0 +1 @@ +*.json diff --git a/test/meta/lint.sh b/test/meta/lint.sh new file mode 100644 index 00000000..6cbaa5d4 --- /dev/null +++ b/test/meta/lint.sh @@ -0,0 +1,28 @@ +#! /bin/sh +# +# SPDX-License-Identifier: GPL-2.0-or-later +# +# PASST - Plug A Simple Socket Transport +# for qemu/UNIX domain socket mode +# +# PASTA - Pack A Subtle Tap Abstraction +# for network namespace/tap device mode +# +# test/meta/lint.sh - Linters for the test code +# +# Copyright Red Hat +# Author: David Gibson + +source $(dirname $0)/../exeter/sh/exeter.sh + +flake8 () { + make -C test flake8 +} +exeter_register flake8 + +pycodestyle () { + make -C test pycodestyle +} +exeter_register pycodestyle + +exeter_main "$@" diff --git a/test/run_avocado b/test/run_avocado index 26a226ce..b62864f6 100755 --- a/test/run_avocado +++ b/test/run_avocado @@ -35,13 +35,14 @@ def main(): os.path.dirname(os.path.dirname(__file__)) ) - references = [os.path.join(repo_root_path, 'test', x) for x in sys.argv[1:]] + suitename = sys.argv[1] + references = [os.path.join(repo_root_path, 'test', x) for x in sys.argv[2:]] config = { "resolver.references": references, "runner.identifier_format": "{args}", } - suite = TestSuite.from_config(config, name="all") + suite = TestSuite.from_config(config, name=suitename) with Job(config, [suite]) as j: return j.run() -- 2.45.2