On 05/12/2025 07.00, John Snow wrote:
> 'checktests' contains depedencies *required* to run "make check", and as
> such, we promise that these dependencies can be sourced from the user's
> distribution repository or from vendored packages so that "make check"
> can be executed offline in an isolated build environment.
>
> In contrast, pygdbmi is only needed for functional tests and not tests
> in general; we do not make the same offline/isolated guarantees for
> functional tests, and this dependency group is allowed to fetch
> dependencies from PyPI at runtime.
>
> For the time being, Amend the "check-venv" target to install both
> dependency groups, to avoid a duplicate dependency between them.
>
> Signed-off-by: John Snow <jsnow@redhat.com>
> ---
> pythondeps.toml | 10 +++++++++-
> tests/Makefile.include | 2 +-
> 2 files changed, 10 insertions(+), 2 deletions(-)
>
> diff --git a/pythondeps.toml b/pythondeps.toml
> index 1657953ff65..14ceb4e7787 100644
> --- a/pythondeps.toml
> +++ b/pythondeps.toml
> @@ -31,6 +31,14 @@ meson = { accepted = ">=1.9.0", installed = "1.9.0", canary = "meson" }
> sphinx = { accepted = ">=3.4.3", installed = "6.2.1", canary = "sphinx-build" }
> sphinx_rtd_theme = { accepted = ">=0.5", installed = "1.2.2" }
>
> -[testdeps]
> +# This test group is for dependencies required to run "make check"
> +# successfully, and should only include depedencies that can be
> +# guaranteed via configure from system packages, or python packages we
> +# vendor.
> +[checktests]
> "qemu.qmp" = { accepted = ">=0.0.5", installed = "0.0.5" }
> +
> +# This test group is for functional tests, and can include dependencies
> +# fetched from PyPI.
> +[functests]
> pygdbmi = { accepted = ">=0.11.0.0", installed = "0.11.0.0" }
> diff --git a/tests/Makefile.include b/tests/Makefile.include
> index d4dfbf3716d..40b114bd158 100644
> --- a/tests/Makefile.include
> +++ b/tests/Makefile.include
> @@ -98,7 +98,7 @@ quiet-venv-pip = $(quiet-@)$(call quiet-command-run, \
>
> $(TESTS_VENV_TOKEN): $(SRC_PATH)/pythondeps.toml
> $(call quiet-venv-pip,install -e "$(SRC_PATH)/python/")
> - $(MKVENV_ENSUREGROUP) $< testdeps
> + $(MKVENV_ENSUREGROUP) $< checktests functests
> $(call quiet-command, touch $@)
>
> check-venv: $(TESTS_VENV_TOKEN)
Reviewed-by: Thomas Huth <thuth@redhat.com>