Add a new 'avocado' target to the test/ Makefile, which will install
avocado into a Python venv, and run the Avocado based tests with it.
Signed-off-by: David Gibson
---
test/.gitignore | 1 +
test/Makefile | 17 +++++++++++++++++
test/run_avocado | 9 +++++----
3 files changed, 23 insertions(+), 4 deletions(-)
diff --git a/test/.gitignore b/test/.gitignore
index 6dd4790b..a79d5b6f 100644
--- a/test/.gitignore
+++ b/test/.gitignore
@@ -10,3 +10,4 @@ QEMU_EFI.fd
nstool
guest-key
guest-key.pub
+/venv/
diff --git a/test/Makefile b/test/Makefile
index 35a3b559..4bf971f7 100644
--- a/test/Makefile
+++ b/test/Makefile
@@ -63,6 +63,13 @@ LOCAL_ASSETS = mbuto.img mbuto.mem.img podman/bin/podman QEMU_EFI.fd \
ASSETS = $(DOWNLOAD_ASSETS) $(LOCAL_ASSETS)
+AVOCADO_JOBS = avocado/static_checkers.json
+
+PYTHON = python3
+VENV = venv
+PIP = $(VENV)/bin/pip3
+RUN_AVOCADO = $(VENV)/bin/python3 run_avocado
+
CFLAGS = -Wall -Werror -Wextra -pedantic -std=c99
assets: $(ASSETS)
@@ -116,6 +123,15 @@ medium.bin:
big.bin:
dd if=/dev/urandom bs=1M count=10 of=$@
+.PHONY: venv
+venv:
+ $(PYTHON) -m venv $(VENV)
+ $(PIP) install avocado-framework
+
+.PHONY: avocado
+avocado: venv
+ $(RUN_AVOCADO) all $(AVOCADO_JOBS)
+
check: assets
./run
@@ -127,6 +143,7 @@ clean:
rm -f $(LOCAL_ASSETS)
rm -rf test_logs
rm -f prepared-*.qcow2 prepared-*.img
+ rm -rf $(VENV)
realclean: clean
rm -rf $(DOWNLOAD_ASSETS)
diff --git a/test/run_avocado b/test/run_avocado
index 2c8822c6..9ee13a0f 100755
--- a/test/run_avocado
+++ b/test/run_avocado
@@ -34,15 +34,16 @@ def main():
repo_root_path = os.path.dirname(os.path.dirname(__file__))
test_root_path = os.path.join(repo_root_path, "test")
+ suitename = sys.argv[1]
+ references = [os.path.join(test_root_path, x) for x in sys.argv[2:]]
+
os.chdir(test_root_path)
config = {
- "resolver.references": [
- os.path.join(test_root_path, "avocado", "static_checkers.json")
- ],
+ "resolver.references": references,
"runner.identifier_format": "{args}",
}
- suite = TestSuite.from_config(config, name="static_checkers")
+ suite = TestSuite.from_config(config, name=suitename)
with Job(config, [suite]) as j:
return j.run()
--
2.46.0