From nobody Sun Apr 12 05:57:52 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=quarantine dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1771450561; cv=none; d=zohomail.com; s=zohoarc; b=WjD20nL99jMV3mLXz2zvbzZI4Re8lI8hA3qmBMEvCHrtJuMEsMppREhMtQwkpUkO3M9WWB6akfUrGxM/ACIKtZktUdNkVjplzbgwBQdpVQyZWQ2XjzAyf9pCJa4U4vFs+MedMaTf7mq1zDZ9PIbJ5QX+Y7VRJ547GFjBFQHQZ5Q= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1771450561; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=lEWqDoyixgxCz5zBPNhV2v3CL7QSMfi5JOtFo/5nd/I=; b=D7kr/W+6b5VadPj58HPw7glJrXNGLwZ8phjjeIzsuI9M9BwrbA+O7odldl5CgKzGx8fHs+cPgb8TUMeekHeMYHVRTKLhTYvmEk1lgoRNicznKHdszOdrLA6pQrAMbnwEUSCtQVDgIScWTakYqRMt+kEF0v01/5EI6Hbe3BMsWWU= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1771450561118730.4841069212418; Wed, 18 Feb 2026 13:36:01 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vspCo-0007fu-Ih; Wed, 18 Feb 2026 16:35:34 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vspCk-0007al-F5 for qemu-devel@nongnu.org; Wed, 18 Feb 2026 16:35:30 -0500 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vspCi-0002Cq-TY for qemu-devel@nongnu.org; Wed, 18 Feb 2026 16:35:30 -0500 Received: from mx-prod-mc-05.mail-002.prod.us-west-2.aws.redhat.com (ec2-54-186-198-63.us-west-2.compute.amazonaws.com [54.186.198.63]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-517-LFMWfBNQM6ey2fOTdjfrWA-1; Wed, 18 Feb 2026 16:35:23 -0500 Received: from mx-prod-int-03.mail-002.prod.us-west-2.aws.redhat.com (mx-prod-int-03.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.12]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mx-prod-mc-05.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id 624AB1955D8F; Wed, 18 Feb 2026 21:35:21 +0000 (UTC) Received: from jsnow-thinkpadp16vgen1.westford.csb (unknown [10.22.65.233]) by mx-prod-int-03.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP id EC2E219560B5; Wed, 18 Feb 2026 21:35:15 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1771450528; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=lEWqDoyixgxCz5zBPNhV2v3CL7QSMfi5JOtFo/5nd/I=; b=HEBahuOC5D9cKfDr5qaHh5Y4jd0RComsvfKZ/xnNQT51YcIwjelbdk5svLMn+h0v1EVKK7 TGLm0i/19XFSVB0N+mjGvDRBuEeWHCL8PFugS1+aOkbTBmV3uW3Dyrq8xa8xzXX+WB6T+b uaD83DTttf1L9G58iYTwni3QidR3wR8= X-MC-Unique: LFMWfBNQM6ey2fOTdjfrWA-1 X-Mimecast-MFC-AGG-ID: LFMWfBNQM6ey2fOTdjfrWA_1771450521 From: John Snow To: qemu-devel@nongnu.org Cc: Kevin Wolf , Warner Losh , Mauro Carvalho Chehab , Paolo Bonzini , =?UTF-8?q?Alex=20Benn=C3=A9e?= , =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= , qemu-block@nongnu.org, =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= , Fabiano Rosas , John Snow , Michael Roth , Pierrick Bouvier , Markus Armbruster , Peter Xu , Yonggang Luo , Hanna Reitz , Maksim Davydov , Thomas Huth , Ed Maste , Alexandre Iooss , Cleber Rosa , Li-Wen Hsu , Mahmoud Mandour , Kyle Evans , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Vladimir Sementsov-Ogievskiy Subject: [PATCH v8 08/20] iotests: tolerate being run outside of pyvenv Date: Wed, 18 Feb 2026 16:34:03 -0500 Message-ID: <20260218213416.674483-9-jsnow@redhat.com> In-Reply-To: <20260218213416.674483-1-jsnow@redhat.com> References: <20260218213416.674483-1-jsnow@redhat.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Scanned-By: MIMEDefang 3.0 on 10.30.177.12 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=170.10.129.124; envelope-from=jsnow@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.043, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1771450561296158500 Content-Type: text/plain; charset="utf-8" Modify the iotests environment preparation so that it can detect when it is being run outside of the configure-time virtual environment and give a warning to the user, suggesting the use of the meson run script instead. As a bonus, since the test executor itself does not actually rely on anything in the configure-time venv in and of itself, it is possible to just modify the python executable it uses for launching tests to be the correct, configured venv that has access to qemu.qmp and other test dependencies. Signed-off-by: John Snow Reviewed-by: Thomas Huth Tested-by: Thomas Huth --- tests/qemu-iotests/testenv.py | 25 ++++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/tests/qemu-iotests/testenv.py b/tests/qemu-iotests/testenv.py index 29caaa8a349..c357e6ebf50 100644 --- a/tests/qemu-iotests/testenv.py +++ b/tests/qemu-iotests/testenv.py @@ -20,6 +20,7 @@ import sys import tempfile from pathlib import Path +import shlex import shutil import collections import contextlib @@ -140,7 +141,29 @@ def init_binaries(self) -> None: PYTHON (for bash tests) QEMU_PROG, QEMU_IMG_PROG, QEMU_IO_PROG, QEMU_NBD_PROG, QSD_PR= OG """ - self.python =3D sys.executable + self.python =3D str(Path(sys.executable).absolute()) + + # QEMU configure-time venv python executable + venv_python =3D Path( + os.path.join(self.build_root, "pyvenv", "bin", "python3") + ).absolute() + + if self.python !=3D str(venv_python): + runpath =3D os.path.join(self.build_root, "run") + cmd =3D ' '.join(shlex.quote(x) for x in sys.argv) + print( + "\n\033[93m\033[1mWARNING\033[0m: " + "iotests is being run from outside of the configure-time " + "python virtual environment\n\n" + f"current python: {self.python}\n" + f"pyvenv python: {venv_python}\n\n" + "Individual python tests will be executed inside the pyven= v,\n" + "but the test runner will continue to run outside.\n\n" + "\033[1mPlease use the meson run script:\033[0m\n" + f"\t{runpath} {cmd}\n", + file=3Dsys.stderr + ) + self.python =3D str(venv_python) =20 def root(*names: str) -> str: return os.path.join(self.build_root, *names) --=20 2.53.0