* [PATCH] iotests: fix false positive on running-outside-venv warning
@ 2026-10-07 18:33 John Snow
2026-11-12 13:01 ` Kevin Wolf
0 siblings, 1 reply; 2+ messages in thread
From: John Snow @ 2026-10-07 18:33 UTC (permalink / raw)
To: qemu-devel; +Cc: Hanna Reitz, qemu-block, Kevin Wolf, John Snow, Peter Maydell
Currently, iotests checks to see if you are running with the "correct"
python interpreter by checking string equivalence between your current
python and the configure-time venv python.
Depending on exactly *how* you launch or configure your python,
however, this warning may produce false positives because it treats
"python" as different from "python3" as different from
e.g. "python3.12", even though they are all actually the same exact
interpreter.
This patch fixes this by comparing only the parent directories; we
will now be happy with any interpreter so long as it is located within
build/pyvenv/bin/.
Note that we cannot fix this by resolving symlinks, as python venv
binaries are often (but not always) just symlinks to /usr/bin/<etc>,
and full resolution would produce even more false negatives.
Reported-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: John Snow <jsnow@redhat.com>
---
tests/qemu-iotests/testenv.py | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/tests/qemu-iotests/testenv.py b/tests/qemu-iotests/testenv.py
index 86bcdf7cfad..53c9b5d1968 100644
--- a/tests/qemu-iotests/testenv.py
+++ b/tests/qemu-iotests/testenv.py
@@ -86,7 +86,7 @@ def prepare_subprocess(self, args: List[str]) -> Dict[str, str]:
with open(args[0], encoding="utf-8") as f:
try:
if f.readline().rstrip() == '#!/usr/bin/env python3':
- args.insert(0, self.python)
+ args.insert(0, str(self.python))
except UnicodeDecodeError: # binary test? for future.
pass
@@ -141,14 +141,14 @@ def init_binaries(self) -> None:
PYTHON (for bash tests)
QEMU_PROG, QEMU_IMG_PROG, QEMU_IO_PROG, QEMU_NBD_PROG, QSD_PROG
"""
- self.python = str(Path(sys.executable).absolute())
+ self.python = Path(sys.executable).absolute()
# QEMU configure-time venv python executable
venv_python = Path(
os.path.join(self.build_root, "pyvenv", "bin", "python3")
).absolute()
- if self.python != str(venv_python):
+ if str(self.python.parent) != str(venv_python.parent):
runpath = os.path.join(self.build_root, "run")
cmd = ' '.join(shlex.quote(x) for x in sys.argv)
print(
@@ -163,7 +163,7 @@ def init_binaries(self) -> None:
f"\t{runpath} {cmd}\n",
file=sys.stderr
)
- self.python = str(venv_python)
+ self.python = venv_python
def root(*names: str) -> str:
return os.path.join(self.build_root, *names)
--
2.55.0
^ permalink raw reply related [flat|nested] 2+ messages in thread
* Re: [PATCH] iotests: fix false positive on running-outside-venv warning
2026-10-07 18:33 [PATCH] iotests: fix false positive on running-outside-venv warning John Snow
@ 2026-11-12 13:01 ` Kevin Wolf
0 siblings, 0 replies; 2+ messages in thread
From: Kevin Wolf @ 2026-11-12 13:01 UTC (permalink / raw)
To: John Snow; +Cc: qemu-devel, Hanna Reitz, qemu-block, Peter Maydell
Am 07.10.2026 um 20:33 hat John Snow geschrieben:
> Currently, iotests checks to see if you are running with the "correct"
> python interpreter by checking string equivalence between your current
> python and the configure-time venv python.
>
> Depending on exactly *how* you launch or configure your python,
> however, this warning may produce false positives because it treats
> "python" as different from "python3" as different from
> e.g. "python3.12", even though they are all actually the same exact
> interpreter.
>
> This patch fixes this by comparing only the parent directories; we
> will now be happy with any interpreter so long as it is located within
> build/pyvenv/bin/.
>
> Note that we cannot fix this by resolving symlinks, as python venv
> binaries are often (but not always) just symlinks to /usr/bin/<etc>,
> and full resolution would produce even more false negatives.
>
> Reported-by: Peter Maydell <peter.maydell@linaro.org>
> Signed-off-by: John Snow <jsnow@redhat.com>
Thanks, applied to the block branch.
Kevin
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2026-11-12 13:02 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-10-07 18:33 [PATCH] iotests: fix false positive on running-outside-venv warning John Snow
2026-11-12 13:01 ` Kevin Wolf
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.