From nobody Sun Oct 5 22:21:39 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; 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=fail(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1613451840; cv=none; d=zohomail.com; s=zohoarc; b=HWKiOjzyWdZzeZqTXwdLcnWwY+cQeQOUEsS2Uk2kNmX+y+s31UFheT5hL09ZO6WkIbuLwTn5umenRmNx6mB7IQ3VH5UID5X08s91vWe+JRPlcDfiLE8tH9VP1wuLaDxe2+uU+BnKQnjEhy9a+5qFmeKax9lA10xHDHpy7gAYnyg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1613451840; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=fRfgaTTw4uwZM3mqgXOxcpF5rHhSWrpg+QOk9JIsCSY=; b=iBl4tHm9QngAw7UrcM0+dbQDnXSSgiO8h/uoQ47SeXved0wmhpJP9X+BVen7UrhfXI/mb+CGe3jeNVs45YjbA9SEvXfktgRJ9vKEuZg0j22aK+OMuGtj/j3CKUR2B/mnxTMtaWQeWt4rmDB1IvwSq7RnnQfbvkHehiTkzQMahXk= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; 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=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1613451840405204.7936284752426; Mon, 15 Feb 2021 21:04:00 -0800 (PST) Received: from localhost ([::1]:52382 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lBsWl-00064b-25 for importer@patchew.org; Tue, 16 Feb 2021 00:03:59 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:45236) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lBsQU-0006Mt-Ry for qemu-devel@nongnu.org; Mon, 15 Feb 2021 23:57:30 -0500 Received: from us-smtp-delivery-124.mimecast.com ([63.128.21.124]:27823) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.90_1) (envelope-from ) id 1lBsQS-0007pJ-NB for qemu-devel@nongnu.org; Mon, 15 Feb 2021 23:57:30 -0500 Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-208-b9-VSdVAPk2R1qp0Ot3i9A-1; Mon, 15 Feb 2021 23:57:25 -0500 Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id EA22B107ACE3; Tue, 16 Feb 2021 04:57:24 +0000 (UTC) Received: from localhost.localdomain.com (ovpn-112-129.rdu2.redhat.com [10.10.112.129]) by smtp.corp.redhat.com (Postfix) with ESMTPS id B9AC672163; Tue, 16 Feb 2021 04:57:23 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1613451448; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=fRfgaTTw4uwZM3mqgXOxcpF5rHhSWrpg+QOk9JIsCSY=; b=I3DYme7fILgQQ2VzJxpZBCMG3xGT4YyYRe2IFA+nIzuleuMq23r59TSvITWrsY0DUk91xL TSTocf5j7qpKcWypMhBcUcidpXDhw0cFd8vJxgUggHP1PQeOkIl6Xas51N5kEZSEee7mlK 3oOBhrxVvFUXezGLeoSmscfKYigIqGQ= X-MC-Unique: b9-VSdVAPk2R1qp0Ot3i9A-1 From: Cleber Rosa To: qemu-devel@nongnu.org, Peter Maydell Subject: [PULL 7/9] Acceptance Tests: introduce method for requiring an accelerator Date: Mon, 15 Feb 2021 23:57:03 -0500 Message-Id: <20210216045705.9590-8-crosa@redhat.com> In-Reply-To: <20210216045705.9590-1-crosa@redhat.com> References: <20210216045705.9590-1-crosa@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.11 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=crosa@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable 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=63.128.21.124; envelope-from=crosa@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=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.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Beraldo Leal , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Wainer dos Santos Moschetta , Willian Rampazzo , Willian Rampazzo , Cleber Rosa , John Snow , Eduardo Habkost Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" Some tests explicitly require a QEMU accelerator to be available. Given that this depends on some runtime aspects not known before the test is started, such as the currently set QEMU binary, it's left to be checked also at runtime. Signed-off-by: Cleber Rosa Message-Id: <20210203172357.1422425-17-crosa@redhat.com> Reviewed-by: Beraldo Leal Reviewed-by: Willian Rampazzo Signed-off-by: Cleber Rosa --- tests/acceptance/avocado_qemu/__init__.py | 24 ++++++++++++++++ tests/acceptance/boot_linux.py | 34 ++++++----------------- tests/acceptance/virtiofs_submounts.py | 5 +--- 3 files changed, 34 insertions(+), 29 deletions(-) diff --git a/tests/acceptance/avocado_qemu/__init__.py b/tests/acceptance/a= vocado_qemu/__init__.py index b06692a59df..687c5dc0cf6 100644 --- a/tests/acceptance/avocado_qemu/__init__.py +++ b/tests/acceptance/avocado_qemu/__init__.py @@ -39,6 +39,8 @@ =20 sys.path.append(os.path.join(SOURCE_DIR, 'python')) =20 +from qemu.accel import kvm_available +from qemu.accel import tcg_available from qemu.machine import QEMUMachine =20 def is_readable_executable_file(path): @@ -162,6 +164,28 @@ def _get_unique_tag_val(self, tag_name): return vals.pop() return None =20 + def require_accelerator(self, accelerator): + """ + Requires an accelerator to be available for the test to continue + + It takes into account the currently set qemu binary. + + If the check fails, the test is canceled. If the check itself + for the given accelerator is not available, the test is also + canceled. + + :param accelerator: name of the accelerator, such as "kvm" or "tcg" + :type accelerator: str + """ + checker =3D {'tcg': tcg_available, + 'kvm': kvm_available}.get(accelerator) + if checker is None: + self.cancel("Don't know how to check for the presence " + "of accelerator %s" % accelerator) + if not checker(qemu_bin=3Dself.qemu_bin): + self.cancel("%s accelerator does not seem to be " + "available" % accelerator) + def setUp(self): self._vms =3D {} =20 diff --git a/tests/acceptance/boot_linux.py b/tests/acceptance/boot_linux.py index 14e89d020d1..0d178038a09 100644 --- a/tests/acceptance/boot_linux.py +++ b/tests/acceptance/boot_linux.py @@ -12,15 +12,8 @@ =20 from avocado_qemu import LinuxTest, BUILD_DIR =20 -from qemu.accel import kvm_available -from qemu.accel import tcg_available - from avocado import skipIf =20 -ACCEL_NOT_AVAILABLE_FMT =3D "%s accelerator does not seem to be available" -KVM_NOT_AVAILABLE =3D ACCEL_NOT_AVAILABLE_FMT % "KVM" -TCG_NOT_AVAILABLE =3D ACCEL_NOT_AVAILABLE_FMT % "TCG" - =20 class BootLinuxX8664(LinuxTest): """ @@ -34,8 +27,7 @@ def test_pc_i440fx_tcg(self): :avocado: tags=3Dmachine:pc :avocado: tags=3Daccel:tcg """ - if not tcg_available(self.qemu_bin): - self.cancel(TCG_NOT_AVAILABLE) + self.require_accelerator("tcg") self.vm.add_args("-accel", "tcg") self.launch_and_wait() =20 @@ -44,8 +36,7 @@ def test_pc_i440fx_kvm(self): :avocado: tags=3Dmachine:pc :avocado: tags=3Daccel:kvm """ - if not kvm_available(self.arch, self.qemu_bin): - self.cancel(KVM_NOT_AVAILABLE) + self.require_accelerator("kvm") self.vm.add_args("-accel", "kvm") self.launch_and_wait() =20 @@ -54,8 +45,7 @@ def test_pc_q35_tcg(self): :avocado: tags=3Dmachine:q35 :avocado: tags=3Daccel:tcg """ - if not tcg_available(self.qemu_bin): - self.cancel(TCG_NOT_AVAILABLE) + self.require_accelerator("tcg") self.vm.add_args("-accel", "tcg") self.launch_and_wait() =20 @@ -64,8 +54,7 @@ def test_pc_q35_kvm(self): :avocado: tags=3Dmachine:q35 :avocado: tags=3Daccel:kvm """ - if not kvm_available(self.arch, self.qemu_bin): - self.cancel(KVM_NOT_AVAILABLE) + self.require_accelerator("kvm") self.vm.add_args("-accel", "kvm") self.launch_and_wait() =20 @@ -91,8 +80,7 @@ def test_virt_tcg(self): :avocado: tags=3Daccel:tcg :avocado: tags=3Dcpu:max """ - if not tcg_available(self.qemu_bin): - self.cancel(TCG_NOT_AVAILABLE) + self.require_accelerator("tcg") self.vm.add_args("-accel", "tcg") self.vm.add_args("-cpu", "max") self.vm.add_args("-machine", "virt,gic-version=3D2") @@ -105,8 +93,7 @@ def test_virt_kvm_gicv2(self): :avocado: tags=3Dcpu:host :avocado: tags=3Ddevice:gicv2 """ - if not kvm_available(self.arch, self.qemu_bin): - self.cancel(KVM_NOT_AVAILABLE) + self.require_accelerator("kvm") self.vm.add_args("-accel", "kvm") self.vm.add_args("-cpu", "host") self.vm.add_args("-machine", "virt,gic-version=3D2") @@ -119,8 +106,7 @@ def test_virt_kvm_gicv3(self): :avocado: tags=3Dcpu:host :avocado: tags=3Ddevice:gicv3 """ - if not kvm_available(self.arch, self.qemu_bin): - self.cancel(KVM_NOT_AVAILABLE) + self.require_accelerator("kvm") self.vm.add_args("-accel", "kvm") self.vm.add_args("-cpu", "host") self.vm.add_args("-machine", "virt,gic-version=3D3") @@ -140,8 +126,7 @@ def test_pseries_tcg(self): :avocado: tags=3Dmachine:pseries :avocado: tags=3Daccel:tcg """ - if not tcg_available(self.qemu_bin): - self.cancel(TCG_NOT_AVAILABLE) + self.require_accelerator("tcg") self.vm.add_args("-accel", "tcg") self.launch_and_wait() =20 @@ -159,7 +144,6 @@ def test_s390_ccw_virtio_tcg(self): :avocado: tags=3Dmachine:s390-ccw-virtio :avocado: tags=3Daccel:tcg """ - if not tcg_available(self.qemu_bin): - self.cancel(TCG_NOT_AVAILABLE) + self.require_accelerator("tcg") self.vm.add_args("-accel", "tcg") self.launch_and_wait() diff --git a/tests/acceptance/virtiofs_submounts.py b/tests/acceptance/virt= iofs_submounts.py index fc2b4fd6669..46fa65392a1 100644 --- a/tests/acceptance/virtiofs_submounts.py +++ b/tests/acceptance/virtiofs_submounts.py @@ -9,8 +9,6 @@ from avocado_qemu import wait_for_console_pattern from avocado.utils import ssh =20 -from qemu.accel import kvm_available - =20 def run_cmd(args): subp =3D subprocess.Popen(args, @@ -260,8 +258,7 @@ def setUp(self): self.vm.add_args('-netdev', 'user,id=3Dvnet,hostfwd=3D:127.0.0.1:0= -:22', '-device', 'virtio-net,netdev=3Dvnet') =20 - if not kvm_available(self.arch, self.qemu_bin): - self.cancel(KVM_NOT_AVAILABLE) + self.require_accelerator("kvm") self.vm.add_args('-accel', 'kvm') =20 def tearDown(self): --=20 2.26.2