From: "Daniel P. Berrangé" <berrange@redhat.com>
To: John Snow <jsnow@redhat.com>
Cc: "Alex Bennée" <alex.bennee@linaro.org>,
qemu-devel@nongnu.org, qemu-block@nongnu.org,
"Thomas Huth" <thuth@redhat.com>,
"Maksim Davydov" <davydov-max@yandex-team.ru>,
"Markus Armbruster" <armbru@redhat.com>,
"Peter Xu" <peterx@redhat.com>, "Ed Maste" <emaste@freebsd.org>,
"Li-Wen Hsu" <lwhsu@freebsd.org>,
"Marc-André Lureau" <marcandre.lureau@redhat.com>,
"Hanna Reitz" <hreitz@redhat.com>,
"Vladimir Sementsov-Ogievskiy" <vsementsov@yandex-team.ru>,
"Paolo Bonzini" <pbonzini@redhat.com>,
"Michael Roth" <michael.roth@amd.com>,
"Yonggang Luo" <luoyonggang@gmail.com>,
"Philippe Mathieu-Daudé" <philmd@linaro.org>,
"Mauro Carvalho Chehab" <mchehab+huawei@kernel.org>,
"Kevin Wolf" <kwolf@redhat.com>, "Cleber Rosa" <crosa@redhat.com>,
"Fabiano Rosas" <farosas@suse.de>
Subject: Re: [PATCH v5 13/16] tests: remove "make check-venv" target
Date: Mon, 9 Feb 2026 08:12:47 +0000 [thread overview]
Message-ID: <aYmWy0yMzyF3E310@redhat.com> (raw)
In-Reply-To: <CAFn=p-a3BK5PiFQv2C0FX8z8PhQ91A3xWLoDv9fw-yJAGHMCUg@mail.gmail.com>
On Fri, Feb 06, 2026 at 05:41:35PM -0500, John Snow wrote:
> On Thu, Feb 5, 2026 at 12:09 PM Alex Bennée <alex.bennee@linaro.org> wrote:
> >
> > John Snow <jsnow@redhat.com> writes:
> >
> > > 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, there is no longer any reason to have an
> > > explicit target.
> > >
> > > FIXME: This forces image regeneration for vm tests whenever Make
> > > determines that the image needs to be rebuilt; which is a regression
> > > over the previous behavior.
> > >
> > > Signed-off-by: John Snow <jsnow@redhat.com>
> > > ---
> > > tests/Makefile.include | 22 ++--------------------
> > > tests/vm/Makefile.include | 24 +++++++-----------------
> > > 2 files changed, 9 insertions(+), 37 deletions(-)
> > >
> > > diff --git a/tests/Makefile.include b/tests/Makefile.include
> > > index f28c9e329aa..2a203e23718 100644
> > > --- a/tests/Makefile.include
> > > +++ b/tests/Makefile.include
> > > @@ -21,7 +21,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"
> > > @@ -92,33 +91,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
> > > diff --git a/tests/vm/Makefile.include b/tests/vm/Makefile.include
> > > index 14188bba1c6..095ec2eefa3 100644
> > > --- a/tests/vm/Makefile.include
> > > +++ b/tests/vm/Makefile.include
> > > @@ -1,14 +1,5 @@
> > > # Makefile for VM tests
> > >
> > > -# 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 =
> > > -else
> > > -VM_PYTHON = $(PYTHON)
> > > -VM_VENV = check-venv
> > > -endif
> > > -
> >
> > It's a shame to loose this because the build directory should have no
> > influence on what we build in the VM. Surely if we have qmp installed on
> > the system (and therefor its deps) we should still want the ability to
> > build in the src dir. Currently I get:
> >
> > ➜ make vm-build-netbsd V=1
> > tests/vm/netbsd --debug --source-path . --image "/home/alex/.cache/qemu-vm/images/netbsd.img" --force --build-image /home/alex/.cache/qemu-vm/images/netbsd.img
> > Traceback (most recent call last):
> > File "/home/alex/lsrc/qemu.git/tests/vm/netbsd", line 19, in <module>
> > import basevm
> > File "/home/alex/lsrc/qemu.git/tests/vm/basevm.py", line 32, in <module>
> > from qemu.machine import QEMUMachine
> > ModuleNotFoundError: No module named 'qemu'
> > make: *** [tests/vm/Makefile.include:86: /home/alex/.cache/qemu-vm/images/netbsd.img] Error 1
>
> Ah, I see.... it used to be possible to run the VM tests *without a
> build directory at all*.
>
> So, this used to work because of this bit in tests/vm/Makefile.include:
>
> # 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 =
> else
> VM_PYTHON = $(PYTHON)
> VM_VENV = check-venv
> endif
>
> What this did was effectively treat qemu.git/python/ as an installed
> package directory and picked the most likely culprit for your actual
> python interpreter location. (Note that the configure script is a bit
> more thorough in picking a python interpreter to use that is bypassed
> here.) It's possible we can continue to do this, however, it will
> begin requiring that you just-so-happen to have qemu.qmp available in
> your python environment. The list of dependencies you might need for
> this to work successfully may increase as the years go by, so this is
> a little bit "porcelain". I'm not sure I like this, just because I
> don't wanna be on the hook for mysterious failures down the line.
>
> Otherwise, to get all of the dependencies and python configuration
> managed for you, you have to do this:
>
> mkdir build && pushd build && ../configure && make vm-test-netbsd
>
> ... But you don't actually have to build, and in fact you don't even
> really need to actually run configure either, so, hm.... yeah, how
> about this, using a new "vm-venv" folder in the source tree as the
> virtual environment location, using a dependency hook like check-venv
> but now localized specifically for VM tests benefit and only when it
> is run from the source tree:
IMHO just keep life simple and expect configure to be run so we
have the regular venv setup.
With regards,
Daniel
--
|: https://berrange.com -o- https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org -o- https://fstop138.berrange.com :|
|: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|
next prev parent reply other threads:[~2026-02-09 8:13 UTC|newest]
Thread overview: 38+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-02-03 20:34 [PATCH v5 00/16] python: drop qemu.qmp from qemu.git tree John Snow
2026-02-03 20:34 ` [PATCH v5 01/16] python/mkvenv: create timestamp file for each group "ensured" John Snow
2026-02-03 20:34 ` [PATCH v5 02/16] python/mkvenv: bump 'qemu.qmp' dependency for testdeps John Snow
2026-02-03 20:34 ` [PATCH v5 03/16] python/mkvenv: add 'tooling' and 'functests' dependency groups John Snow
2026-02-03 20:34 ` [PATCH v5 04/16] python/mkvenv: add mechanism to install local package(s) John Snow
2026-02-04 8:21 ` Thomas Huth
2026-02-03 20:35 ` [PATCH v5 05/16] meson, mkvenv: add functests custom target John Snow
2026-02-04 11:29 ` Thomas Huth
2026-02-03 20:35 ` [PATCH v5 06/16] tests: Use configured python to run GitLab iotests John Snow
2026-02-03 20:35 ` [PATCH v5 07/16] tests: use "run" script to execute device-crash-test John Snow
2026-02-03 20:35 ` [PATCH v5 08/16] tests/lcitool: add python3 wheel and setuptools deps for qemu John Snow
2026-02-03 20:35 ` [PATCH v5 09/16] python: add vendored qemu.qmp package John Snow
2026-02-03 20:35 ` [PATCH v5 10/16] meson, mkvenv: make functional tests depend on functests group John Snow
2026-02-03 20:35 ` [PATCH v5 11/16] meson, mkvenv: add qemu.git/python/qemu package to pythondeps.toml John Snow
2026-02-03 21:08 ` Paolo Bonzini
2026-02-03 21:28 ` John Snow
2026-02-04 16:55 ` Paolo Bonzini
2026-02-04 17:02 ` John Snow
2026-02-04 17:53 ` Paolo Bonzini
2026-02-05 7:52 ` Thomas Huth
2026-02-09 15:34 ` John Snow
2026-02-04 9:16 ` Daniel P. Berrangé
2026-02-04 14:11 ` Thomas Huth
2026-02-03 20:35 ` [PATCH v5 12/16] configure: unconditionally install "tooling" group John Snow
2026-02-03 20:35 ` [PATCH v5 13/16] tests: remove "make check-venv" target John Snow
2026-02-04 9:21 ` Daniel P. Berrangé
2026-02-04 17:06 ` John Snow
2026-02-04 14:15 ` Thomas Huth
2026-02-05 17:09 ` Alex Bennée
2026-02-06 22:41 ` John Snow
2026-02-07 16:35 ` Alex Bennée
2026-02-09 8:12 ` Daniel P. Berrangé [this message]
2026-02-09 15:44 ` John Snow
2026-02-03 20:35 ` [PATCH v5 14/16] scripts: nudge users to use 'run' script for scripts that import qemu.qmp John Snow
2026-02-03 20:35 ` [PATCH v5 15/16] python: delete qemu.qmp John Snow
2026-02-03 20:35 ` [PATCH v5 16/16] python: update README.rst to reflect qemu.qmp's removal John Snow
2026-02-04 9:23 ` Daniel P. Berrangé
2026-02-04 14:19 ` Thomas Huth
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=aYmWy0yMzyF3E310@redhat.com \
--to=berrange@redhat.com \
--cc=alex.bennee@linaro.org \
--cc=armbru@redhat.com \
--cc=crosa@redhat.com \
--cc=davydov-max@yandex-team.ru \
--cc=emaste@freebsd.org \
--cc=farosas@suse.de \
--cc=hreitz@redhat.com \
--cc=jsnow@redhat.com \
--cc=kwolf@redhat.com \
--cc=luoyonggang@gmail.com \
--cc=lwhsu@freebsd.org \
--cc=marcandre.lureau@redhat.com \
--cc=mchehab+huawei@kernel.org \
--cc=michael.roth@amd.com \
--cc=pbonzini@redhat.com \
--cc=peterx@redhat.com \
--cc=philmd@linaro.org \
--cc=qemu-block@nongnu.org \
--cc=qemu-devel@nongnu.org \
--cc=thuth@redhat.com \
--cc=vsementsov@yandex-team.ru \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.