From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail.ozlabs.org (mail.ozlabs.org [IPv6:2404:9400:2221:ea00::3]) by passt.top (Postfix) with ESMTPS id 8A1FA5A031C 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=xXfNmJY5xAyaJqTuNJ0MVMlnm9IwJZX07ZYoBax3Upg=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=hX7ExpUWXu90c7WDSm/dpEagAu1DuNzJZMxVtKGJ+/ujRQeDwLssBd4XSZ3PApIYR v4EvCfXpA9tEfCBany0ILB0wADe7ulOXqrO5KdXXi5vYE7Whqg67THkz3OENON5Ubr Uy5g2d6GHeYKRTFWZWThODK+wZn5Hq6saWsYZFvKk0NDADRh6dgOUY7L/7diaoy5KQ qo6qbK/mzrTNFWFpppHUn1H0ow6SEej7MNk9Wz7Smz5bkAHNjIxal3cq2KcBTuYxy7 gQpyxHdTbUOEvucyZTwhXkMTa56fKAAEpYhdWZUZksiiRiBheM3PXsrOfx1tqQF7us xzuxmAQcw+8Uw== Received: by gandalf.ozlabs.org (Postfix, from userid 1007) id 4WcwtT1tz0z4x6k; Mon, 5 Aug 2024 22:37:05 +1000 (AEST) From: David Gibson To: Stefano Brivio , passt-dev@passt.top Subject: [PATCH v2 05/22] test: Exeter based static tests Date: Mon, 5 Aug 2024 22:36:44 +1000 Message-ID: <20240805123701.1720730-6-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: NO27XDHLIX5MDAJDK4WTCB5VTCR4YKTR X-Message-ID-Hash: NO27XDHLIX5MDAJDK4WTCB5VTCR4YKTR 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: Introduce some trivial testcases based on the exeter library. These run the C static checkers, which is redundant with the included Avocado json file, but are useful as an example. We extend the make avocado target to generate Avocado job files from the exeter tests and include them in the test run. Signed-off-by: David Gibson --- test/.gitignore | 1 + test/Makefile | 18 +++++++++++++++--- test/build/.gitignore | 1 + test/build/static_checkers.sh | 30 ++++++++++++++++++++++++++++++ test/run_avocado | 2 +- 5 files changed, 48 insertions(+), 4 deletions(-) create mode 100644 test/build/.gitignore create mode 100644 test/build/static_checkers.sh diff --git a/test/.gitignore b/test/.gitignore index a79d5b6f..bded349b 100644 --- a/test/.gitignore +++ b/test/.gitignore @@ -11,3 +11,4 @@ nstool guest-key guest-key.pub /venv/ +/exeter/ diff --git a/test/Makefile b/test/Makefile index fda62984..dae25312 100644 --- a/test/Makefile +++ b/test/Makefile @@ -52,7 +52,7 @@ UBUNTU_NEW_IMGS = xenial-server-cloudimg-powerpc-disk1.img \ jammy-server-cloudimg-s390x.img UBUNTU_IMGS = $(UBUNTU_OLD_IMGS) $(UBUNTU_NEW_IMGS) -DOWNLOAD_ASSETS = mbuto podman \ +DOWNLOAD_ASSETS = exeter mbuto podman \ $(DEBIAN_IMGS) $(FEDORA_IMGS) $(OPENSUSE_IMGS) $(UBUNTU_IMGS) TESTDATA_ASSETS = small.bin big.bin medium.bin LOCAL_ASSETS = mbuto.img mbuto.mem.img podman/bin/podman QEMU_EFI.fd \ @@ -63,6 +63,11 @@ LOCAL_ASSETS = mbuto.img mbuto.mem.img podman/bin/podman QEMU_EFI.fd \ ASSETS = $(DOWNLOAD_ASSETS) $(LOCAL_ASSETS) +EXETER_SH = build/static_checkers.sh +EXETER_JOBS = $(EXETER_SH:%.sh=%.json) + +AVOCADO_JOBS = $(EXETER_JOBS) avocado/static_checkers.json + SYSTEM_PYTHON = python3 VENV = venv PYTHON = $(VENV)/bin/python3 @@ -77,6 +82,9 @@ assets: $(ASSETS) pull-%: % git -C $* pull +exeter: + git clone https://gitlab.com/dgibson/exeter.git + mbuto: git clone git://mbuto.sh/mbuto @@ -127,9 +135,12 @@ venv: $(SYSTEM_PYTHON) -m venv $(VENV) $(PIP) install avocado-framework +%.json: %.sh pull-exeter + cd ..; sh test/$< --avocado > test/$@ + .PHONY: avocado -avocado: venv - $(RUN_AVOCADO) avocado +avocado: venv $(AVOCADO_JOBS) + $(RUN_AVOCADO) $(AVOCADO_JOBS) check: assets ./run @@ -143,6 +154,7 @@ clean: rm -rf test_logs rm -f prepared-*.qcow2 prepared-*.img rm -rf $(VENV) + rm -f $(EXETER_JOBS) realclean: clean rm -rf $(DOWNLOAD_ASSETS) diff --git a/test/build/.gitignore b/test/build/.gitignore new file mode 100644 index 00000000..a6c57f5f --- /dev/null +++ b/test/build/.gitignore @@ -0,0 +1 @@ +*.json diff --git a/test/build/static_checkers.sh b/test/build/static_checkers.sh new file mode 100644 index 00000000..ec159ea2 --- /dev/null +++ b/test/build/static_checkers.sh @@ -0,0 +1,30 @@ +#! /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/build/static_checkers.sh - Run static checkers +# +# Copyright Red Hat +# Author: David Gibson + +source $(dirname $0)/../exeter/sh/exeter.sh + +cppcheck () { + make cppcheck +} +exeter_register cppcheck + +clang_tidy () { + make clang-tidy +} +exeter_register clang_tidy + +exeter_main "$@" + + diff --git a/test/run_avocado b/test/run_avocado index 19a94a8f..d518b9ec 100755 --- a/test/run_avocado +++ b/test/run_avocado @@ -39,7 +39,7 @@ def main(): config = { "resolver.references": references, - "runner.identifier_format": "{args[0]}", + "runner.identifier_format": "{args}", } suite = TestSuite.from_config(config, name="static_checkers") with Job(config, [suite]) as j: -- 2.45.2