All of lore.kernel.org
 help / color / mirror / Atom feed
From: John Snow <jsnow@redhat.com>
To: qemu-devel@nongnu.org
Cc: Hanna Reitz <hreitz@redhat.com>,
	qemu-block@nongnu.org, Kevin Wolf <kwolf@redhat.com>,
	John Snow <jsnow@redhat.com>,
	Peter Maydell <peter.maydell@linaro.org>
Subject: [PATCH] iotests: fix false positive on running-outside-venv warning
Date: Wed,  7 Oct 2026 14:33:38 -0400	[thread overview]
Message-ID: <20261007183338.1899422-1-jsnow@redhat.com> (raw)

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



             reply	other threads:[~2026-10-07 18:34 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-10-07 18:33 John Snow [this message]
2026-11-12 13:01 ` [PATCH] iotests: fix false positive on running-outside-venv warning Kevin Wolf

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=20261007183338.1899422-1-jsnow@redhat.com \
    --to=jsnow@redhat.com \
    --cc=hreitz@redhat.com \
    --cc=kwolf@redhat.com \
    --cc=peter.maydell@linaro.org \
    --cc=qemu-block@nongnu.org \
    --cc=qemu-devel@nongnu.org \
    /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.