Move these, the simplest of our tests, to be run from avocado rather than our hand-rolled test harness. We include logic in the Makefile to install avocado in an isolated venv if it's not available on the system. Signed-off-by: David Gibson <david(a)gibson.dropbear.id.au> --- Makefile | 9 +++++ oldtest/run | 4 +-- test/.gitignore | 1 + test/Makefile | 38 +++++++++++++++++++--- test/avocado/static_checkers/clang-tidy.sh | 3 ++ test/avocado/static_checkers/cppcheck.sh | 3 ++ test/build/clang_tidy | 17 ---------- test/build/cppcheck | 17 ---------- test/run | 2 -- 9 files changed, 52 insertions(+), 42 deletions(-) create mode 100755 test/avocado/static_checkers/clang-tidy.sh create mode 100755 test/avocado/static_checkers/cppcheck.sh delete mode 100644 test/build/clang_tidy delete mode 100644 test/build/cppcheck diff --git a/Makefile b/Makefile index a5256f58..7b911f65 100644 --- a/Makefile +++ b/Makefile @@ -135,6 +135,7 @@ clean: $(RM) $(BIN) *~ *.o seccomp.h pasta.1 \ passt.tar passt.tar.gz *.deb *.rpm \ passt.pid README.plain.md + $(MAKE) -C test clean install: $(BIN) $(MANPAGES) docs mkdir -p $(DESTDIR)$(bindir) $(DESTDIR)$(man1dir) @@ -294,3 +295,11 @@ cppcheck: $(SRCS) $(HEADERS) --suppress=unusedStructMember \ $(filter -D%,$(FLAGS) $(CFLAGS) $(CPPFLAGS)) \ . + +.PHONY: avocado +avocado: + $(MAKE) -C test avocado + +.PHONY: check +check: + $(MAKE) -C test check diff --git a/oldtest/run b/oldtest/run index 75309f66..56fcd1b3 100755 --- a/oldtest/run +++ b/oldtest/run @@ -66,8 +66,8 @@ run() { setup build # test build/all -# test build/cppcheck -# test build/clang_tidy + test build/cppcheck + test build/clang_tidy teardown build # setup pasta diff --git a/test/.gitignore b/test/.gitignore index 48374028..bf84c336 100644 --- a/test/.gitignore +++ b/test/.gitignore @@ -9,3 +9,4 @@ QEMU_EFI.fd nstool guest-key guest-key.pub +/venv/ diff --git a/test/Makefile b/test/Makefile index 7b00bef4..d4d0c1a3 100644 --- a/test/Makefile +++ b/test/Makefile @@ -102,19 +102,19 @@ medium.bin: big.bin: dd if=/dev/urandom bs=1M count=10 of=$@ -check: assets +check-legacy: assets ./run debug: assets DEBUG=1 ./run -clean: - rm -f perf.js *~ +clean-legacy: + rm -f perf.js rm -f $(LOCAL_ASSETS) rm -rf test_logs rm -f prepared-*.qcow2 prepared-*.img -realclean: clean +realclean: clean-legacy rm -rf $(DOWNLOAD_ASSETS) # Debian downloads @@ -201,3 +201,33 @@ xenial-server-cloudimg-powerpc-disk1.img: jammy-server-cloudimg-s390x.img: $(WGET) -O $@ https://cloud-images.ubuntu.com/jammy/current/jammy-server-cloudimg-s390x.i… + +# +# New style tests based on Avocado +# + +PYTHON = python3 +VENV = venv + +AVOCADO := $(shell which avocado) +ifeq ($(AVOCADO),) +AVOCADO := $(VENV)/bin/avocado +endif + +$(VENV): + $(PYTHON) -m venv $(VENV) + $(VENV)/bin/pip install avocado-framework + +.PHONY: avocado-assets +avocado-assets: + +.PHONY: avocado +avocado: avocado-assets $(VENV) + $(AVOCADO) run avocado + +.PHONY: check +check: avocado check-legacy + +clean: clean-legacy + $(RM) -r $(VENV) + find -name *~ | xargs $(RM) diff --git a/test/avocado/static_checkers/clang-tidy.sh b/test/avocado/static_checkers/clang-tidy.sh new file mode 100755 index 00000000..fe20d264 --- /dev/null +++ b/test/avocado/static_checkers/clang-tidy.sh @@ -0,0 +1,3 @@ +#! /bin/sh + +make -C .. clang-tidy diff --git a/test/avocado/static_checkers/cppcheck.sh b/test/avocado/static_checkers/cppcheck.sh new file mode 100755 index 00000000..85670dd9 --- /dev/null +++ b/test/avocado/static_checkers/cppcheck.sh @@ -0,0 +1,3 @@ +#! /bin/sh + +make -C .. cppcheck diff --git a/test/build/clang_tidy b/test/build/clang_tidy deleted file mode 100644 index 40573bfd..00000000 --- a/test/build/clang_tidy +++ /dev/null @@ -1,17 +0,0 @@ -# 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/clang_tidy - Run source through clang-tidy(1) linter -# -# Copyright (c) 2021 Red Hat GmbH -# Author: Stefano Brivio <sbrivio(a)redhat.com> - -htools clang-tidy - -test Run clang-tidy -host make clang-tidy diff --git a/test/build/cppcheck b/test/build/cppcheck deleted file mode 100644 index 0e1dbced..00000000 --- a/test/build/cppcheck +++ /dev/null @@ -1,17 +0,0 @@ -# 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/cppcheck - Run source through cppcheck(1) linter -# -# Copyright (c) 2021 Red Hat GmbH -# Author: Stefano Brivio <sbrivio(a)redhat.com> - -htools cppcheck - -test Run cppcheck -host make cppcheck diff --git a/test/run b/test/run index 8f4f8459..ce24f446 100755 --- a/test/run +++ b/test/run @@ -66,8 +66,6 @@ run() { setup build test build/all - test build/cppcheck - test build/clang_tidy teardown build setup pasta -- 2.41.0