Commit dea076926b for qemu.org
commit dea076926b1753b5ccb1181c4f6d92f0602512ea
Author: Daniel P. Berrangé <berrange@redhat.com>
Date: Tue Mar 10 11:47:55 2026 +0000
tests/functional: fix log placement when run directly
When running functional tests directly there are some heuristics
to figure out where the build directory lives, along with the
possibility to override the logic by setting the QEMU_BUILD_DIR
env variable. This env var is set as part of the test env when
run via Meson but not when run directly.
A particular flaw with the currently logic is that it silently
uses the wrong location when the build directory is a sub-dir
under "./build", which is a common usage scenario for some devs.
With the recent introduction of the 'run' script, we now have
the MESON_BUILD_ROOT env variable set unconditionally, so we
can rely on that from the functional tests to get the correct
location in all scenarios.
Reported-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
Reviewed-by: Thomas Huth <thuth@redhat.com>
Message-ID: <20260310114756.146083-2-berrange@redhat.com>
Signed-off-by: Thomas Huth <thuth@redhat.com>
diff --git a/tests/functional/meson.build b/tests/functional/meson.build
index 9bec5a0751..0f7c90bed0 100644
--- a/tests/functional/meson.build
+++ b/tests/functional/meson.build
@@ -75,7 +75,7 @@ foreach speed : ['quick', 'thorough']
test_deps += [qemu_img]
endif
test_env.set('QEMU_TEST_QEMU_BINARY', test_emulator.full_path())
- test_env.set('QEMU_BUILD_ROOT', meson.project_build_root())
+ test_env.set('MESON_BUILD_ROOT', meson.project_build_root())
test_env.set('PYTHONPATH', meson.project_source_root() / 'python:' +
meson.current_source_dir())
diff --git a/tests/functional/qemu_test/config.py b/tests/functional/qemu_test/config.py
index 6d4c9c3ce1..0192027233 100644
--- a/tests/functional/qemu_test/config.py
+++ b/tests/functional/qemu_test/config.py
@@ -21,7 +21,7 @@ def _source_dir():
return Path(__file__).parent.parent.parent.parent
def _build_dir():
- root = os.getenv('QEMU_BUILD_ROOT')
+ root = os.getenv('MESON_BUILD_ROOT')
if root is not None:
return Path(root)
# Makefile.mtest only exists in build dir, so if it is available, use CWD
@@ -32,7 +32,7 @@ def _build_dir():
if os.path.exists(root):
return Path(root)
- raise Exception("Cannot identify build dir, set QEMU_BUILD_ROOT")
+ raise Exception("Cannot identify build dir, set MESON_BUILD_ROOT")
BUILD_DIR = _build_dir()