From mboxrd@z Thu Jan 1 00:00:00 1970 Authentication-Results: passt.top; dmarc=none (p=none dis=none) header.from=gibson.dropbear.id.au Authentication-Results: passt.top; dkim=pass (2048-bit key; secure) header.d=gibson.dropbear.id.au header.i=@gibson.dropbear.id.au header.a=rsa-sha256 header.s=202408 header.b=bGrG5H0W; dkim-atps=neutral Received: from mail.ozlabs.org (mail.ozlabs.org [IPv6:2404:9400:2221:ea00::3]) by passt.top (Postfix) with ESMTPS id C82855A026E for ; Mon, 26 Aug 2024 04:09:53 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gibson.dropbear.id.au; s=202408; t=1724638184; bh=Qtm+9aTOC18Ik/EgsBV2xJwXrrz3x10prpxZtUCsSyk=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=bGrG5H0Wk23jM2i2M5ar3nhKfgF1HSRUhvDvMvsU2SiwZPN4otxWMx4P905Nx2Kjx 1ybrCcyvMUC4/2iCrIGMWIMKKDhD7DZsjoiPxXV30c+7xyMN9mkDyXygLeN2HlqPRN 8szfiRAyghzOxv8Ozmh491aM+WQh1eOZzoCAym9IFAjAFhZOYV5G/5Jf6k4G87ceiv 21uPvfRMqK5NsKRoShn/iCzy/qULsvWZu/q02e0D9hkdijcb2ZaTie7LZTRF1wW1ZX ywMkAjrX8h4IF1tj9U5eOhCtLHp/iexeizXN13xEb1dRjAUb8//Rz4sjiPB11RQ8Q1 9egYhYZ15JwrQ== Received: by gandalf.ozlabs.org (Postfix, from userid 1007) id 4WsYyw5N2Gz4x8J; Mon, 26 Aug 2024 12:09:44 +1000 (AEST) From: David Gibson To: Stefano Brivio , passt-dev@passt.top Subject: [PATCH v3 04/15] test: Exeter based static tests Date: Mon, 26 Aug 2024 12:09:31 +1000 Message-ID: <20240826020942.545155-5-david@gibson.dropbear.id.au> X-Mailer: git-send-email 2.46.0 In-Reply-To: <20240826020942.545155-1-david@gibson.dropbear.id.au> References: <20240826020942.545155-1-david@gibson.dropbear.id.au> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Message-ID-Hash: XXS3K4GKBJO35VKPU36NF3WW7Q2AF5KK X-Message-ID-Hash: XXS3K4GKBJO35VKPU36NF3WW7Q2AF5KK 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 | 16 +++++++++++++--- test/build/.gitignore | 1 + test/build/static_checkers.sh | 30 ++++++++++++++++++++++++++++++ 4 files changed, 45 insertions(+), 3 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 4bf971f7..d5a0f776 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,7 +63,10 @@ LOCAL_ASSETS = mbuto.img mbuto.mem.img podman/bin/podman QEMU_EFI.fd \ ASSETS = $(DOWNLOAD_ASSETS) $(LOCAL_ASSETS) -AVOCADO_JOBS = avocado/static_checkers.json +EXETER_SH = build/static_checkers.sh +EXETER_JOBS = $(EXETER_SH:%.sh=%.json) + +AVOCADO_JOBS = $(EXETER_JOBS) avocado/static_checkers.json PYTHON = python3 VENV = venv @@ -78,6 +81,9 @@ assets: $(ASSETS) pull-%: % git -C $* pull +exeter: + git clone https://gitlab.com/dgibson/exeter.git + mbuto: git clone git://mbuto.sh/mbuto @@ -128,8 +134,11 @@ venv: $(PYTHON) -m venv $(VENV) $(PIP) install avocado-framework +%.json: %.sh pull-exeter + sh $< --avocado > $@ + .PHONY: avocado -avocado: venv +avocado: venv $(AVOCADO_JOBS) $(RUN_AVOCADO) all $(AVOCADO_JOBS) check: assets @@ -144,6 +153,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..41152c25 --- /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 -C .. cppcheck +} +exeter_register cppcheck + +clang_tidy () { + make -C .. clang-tidy +} +exeter_register clang_tidy + +exeter_main "$@" + + -- 2.46.0