tests: replace check-venv with vm-venv target
With the qemu.qmp and qemu.machine dependencies now installed by default at configure time and additional dependencies required by functional testing installed on demand, we do not need the explicit "check-venv" target. ...However, to facilitate running VM tests without running configure, we move some of the former logic into tests/vm/Makefile.include to create a new venv (vm-venv) on-demand when running VM tests from the source tree. Reviewed-by: Thomas Huth <thuth@redhat.com> Message-ID: <20260218213416.674483-17-jsnow@redhat.com> Signed-off-by: John Snow <jsnow@redhat.com>
This commit is contained in:
@@ -22,7 +22,6 @@ ifneq ($(filter $(all-check-targets), check-softfloat),)
|
||||
endif
|
||||
@echo
|
||||
@echo " $(MAKE) check-report.junit.xml Generates an aggregated XML test report"
|
||||
@echo " $(MAKE) check-venv Creates a Python venv for tests"
|
||||
@echo " $(MAKE) check-clean Clean the tests and related data"
|
||||
@echo
|
||||
@echo "The following are useful for CI builds"
|
||||
@@ -93,33 +92,16 @@ clean-tcg: $(CLEAN_TCG_TARGET_RULES)
|
||||
.PHONY: distclean-tcg
|
||||
distclean-tcg: $(DISTCLEAN_TCG_TARGET_RULES)
|
||||
|
||||
# Python venv for running tests
|
||||
|
||||
.PHONY: check-venv
|
||||
|
||||
# Build up our target list from the filtered list of ninja targets
|
||||
TARGETS=$(patsubst libqemu-%.a, %, $(filter libqemu-%.a, $(ninja-targets)))
|
||||
|
||||
TESTS_VENV_TOKEN=$(BUILD_DIR)/pyvenv/tests.group
|
||||
|
||||
quiet-venv-pip = $(quiet-@)$(call quiet-command-run, \
|
||||
$(PYTHON) -m pip -q --disable-pip-version-check $1, \
|
||||
"VENVPIP","$1")
|
||||
|
||||
$(TESTS_VENV_TOKEN): $(SRC_PATH)/pythondeps.toml
|
||||
$(call quiet-venv-pip,install -e "$(SRC_PATH)/python/")
|
||||
$(MKVENV_ENSUREGROUP) $< tooling functests
|
||||
$(call quiet-command, touch $@)
|
||||
|
||||
check-venv: $(TESTS_VENV_TOKEN)
|
||||
|
||||
FUNCTIONAL_TARGETS=$(patsubst %-softmmu,check-functional-%, $(filter %-softmmu,$(TARGETS)))
|
||||
.PHONY: $(FUNCTIONAL_TARGETS)
|
||||
$(FUNCTIONAL_TARGETS): check-venv
|
||||
$(FUNCTIONAL_TARGETS):
|
||||
@$(MAKE) SPEED=thorough $(subst -functional,-func,$@)
|
||||
|
||||
.PHONY: check-functional
|
||||
check-functional: check-venv
|
||||
check-functional:
|
||||
@$(NINJA) precache-functional
|
||||
@$(PYTHON) $(SRC_PATH)/scripts/clean_functional_cache.py
|
||||
@QEMU_TEST_NO_DOWNLOAD=1 $(MAKE) SPEED=thorough check-func check-func-quick
|
||||
|
||||
@@ -2,13 +2,25 @@
|
||||
|
||||
# Hack to allow running in an unconfigured build tree
|
||||
ifeq ($(realpath $(SRC_PATH)),$(realpath .))
|
||||
VM_PYTHON = PYTHONPATH=$(SRC_PATH)/python /usr/bin/env python3
|
||||
VM_VENV =
|
||||
VM_PYTHON = $(SRC_PATH)/vm-venv/bin/python3
|
||||
VM_VENV = vm-venv
|
||||
else
|
||||
VM_PYTHON = $(PYTHON)
|
||||
VM_VENV = check-venv
|
||||
VM_VENV =
|
||||
endif
|
||||
|
||||
VM_VENV_TOKEN=$(SRC_PATH)/vm-venv/tooling.group $(SRC_PATH)/vm-venv/functests.group
|
||||
|
||||
$(VM_VENV_TOKEN): $(SRC_PATH)/pythondeps.toml
|
||||
/usr/bin/env python3 $(SRC_PATH)/python/scripts/mkvenv.py create vm-venv
|
||||
$(SRC_PATH)/vm-venv/bin/python3 \
|
||||
$(SRC_PATH)/python/scripts/mkvenv.py ensuregroup --online \
|
||||
$(SRC_PATH)/pythondeps.toml tooling functests
|
||||
|
||||
.PHONY: vm-venv
|
||||
vm-venv: $(VM_VENV_TOKEN)
|
||||
# end hackery
|
||||
|
||||
.PHONY: vm-build-all vm-clean-all
|
||||
|
||||
EFI_AARCH64 = $(wildcard $(BUILD_DIR)/pc-bios/edk2-aarch64-code.fd)
|
||||
@@ -102,7 +114,7 @@ $(IMAGES_DIR)/%.img: $(SRC_PATH)/tests/vm/% \
|
||||
$(if $(LOG_CONSOLE),--log-console) \
|
||||
--source-path $(SRC_PATH) \
|
||||
--image "$@" \
|
||||
$(if $(filter-out check-venv, $?), --force) \
|
||||
--force \
|
||||
--build-image $@, \
|
||||
" VM-IMAGE $*")
|
||||
|
||||
|
||||
Reference in New Issue
Block a user