From nobody Tue Mar 3 03:25:38 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.libvirt.org designates 8.43.85.245 as permitted sender) client-ip=8.43.85.245; envelope-from=devel-bounces@lists.libvirt.org; helo=lists.libvirt.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of lists.libvirt.org designates 8.43.85.245 as permitted sender) smtp.mailfrom=devel-bounces@lists.libvirt.org; dmarc=pass(p=reject dis=none) header.from=lists.libvirt.org ARC-Seal: i=1; a=rsa-sha256; t=1771257539; cv=none; d=zohomail.com; s=zohoarc; b=Yj30xtxka6kfrmzrl2JgZOKGN2CWsagn+ljNHIyDg9DhGO5jBdr0dsc2yuqkLzvY/44+kisrnHAwq8oeLEJ6JAYl1Mb7VZz3fY+1m3tPfzRUKmUh0T7rtWd2yhLiKpUZ3SBuQJghtz1EpsWkRftdV7jWA0E7BDqjsyvJrkILS8I= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1771257539; h=Content-Type:Content-Transfer-Encoding:Date:Date:From:From:List-Subscribe:List-Post:List-Owner:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Reply-To:Reply-To:Subject:Subject:To:To:Message-Id:Cc; bh=cbjX/+16yr5ViwUQ9i6VU/DtH/PWZ4wFI42PUirLsbQ=; b=G1Sp03D8MaScorv0Whj59cYJD9DPWQ3iDkV4wxLxi7bUpRo9klH0p1c9GDuJuBsGCk01VwNLwRlo5D2gBwW/GxVzzVkD8XF9TVPsWJYjl2TlwtcPzz2IU4N8GwOYwtOqQ0FDrZNlCJAFE0jb6t5vER2JLngxehiqCKOOLZ66wdg= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of lists.libvirt.org designates 8.43.85.245 as permitted sender) smtp.mailfrom=devel-bounces@lists.libvirt.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.libvirt.org (lists.libvirt.org [8.43.85.245]) by mx.zohomail.com with SMTPS id 1771257539504806.9262469146386; Mon, 16 Feb 2026 07:58:59 -0800 (PST) Received: by lists.libvirt.org (Postfix, from userid 993) id 3A3BC3F325; Mon, 16 Feb 2026 10:58:58 -0500 (EST) Received: from [172.19.199.9] (lists.libvirt.org [8.43.85.245]) by lists.libvirt.org (Postfix) with ESMTP id 03DD23FC7D; Mon, 16 Feb 2026 10:58:18 -0500 (EST) Received: by lists.libvirt.org (Postfix, from userid 993) id C0CB93F33D; Mon, 16 Feb 2026 10:58:12 -0500 (EST) Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (3072 bits) server-digest SHA256) (No client certificate requested) by lists.libvirt.org (Postfix) with ESMTPS id D94EC3F325 for ; Mon, 16 Feb 2026 10:58:11 -0500 (EST) Received: from mx-prod-mc-01.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-684-i6l-DCpgMSSjZA9DrFGCag-1; Mon, 16 Feb 2026 10:58:09 -0500 Received: from mx-prod-int-05.mail-002.prod.us-west-2.aws.redhat.com (mx-prod-int-05.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.17]) (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-01.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id EC4D41956060 for ; Mon, 16 Feb 2026 15:58:08 +0000 (UTC) Received: from antique-laptop.rosnicka.net (unknown [10.45.242.10]) by mx-prod-int-05.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP id 145DE1955F43 for ; Mon, 16 Feb 2026 15:58:07 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-26) on lists.libvirt.org X-Spam-Level: X-Spam-Status: No, score=-5.0 required=5.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED,RCVD_IN_VALIDITY_RPBL_BLOCKED, RCVD_IN_VALIDITY_SAFE_BLOCKED,SPF_PASS autolearn=unavailable autolearn_force=no version=4.0.1 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1771257491; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=cbjX/+16yr5ViwUQ9i6VU/DtH/PWZ4wFI42PUirLsbQ=; b=hPMMF+Nv5cImFJTowb0eSI8oMoqGJ2ZBYmBkYkcaRSjtEZGH0eHFnxpMR9pAbWFzajZrWi /jZXMvOsNusgFmM94rg1lv1FVVlhSpglP0xeKBNuebd91eDCZJBUvBPtOGOcp4f04Y3Z/C qDugYgRgWbXu2tRvQ59lIcb0z8RVNFk= X-MC-Unique: i6l-DCpgMSSjZA9DrFGCag-1 X-Mimecast-MFC-AGG-ID: i6l-DCpgMSSjZA9DrFGCag_1771257489 To: devel@lists.libvirt.org Subject: [libvirt PATCH] tests: properly mock VFIO and IOMMU checks Date: Mon, 16 Feb 2026 16:58:06 +0100 Message-ID: <75db232f90af2b2acd95266dd21290c967e3c625.1771257429.git.phrdina@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 3.0 on 10.30.177.17 X-Mimecast-Spam-Score: 0 X-Mimecast-MFC-PROC-ID: ZMG-9CoDTAl04Mm_V23qSmK8s6fXrWst9wQ0GErjCB4_1771257489 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable Message-ID-Hash: FIUAR6REK4U3MPHHSLJ32IM3HIBMLILV X-Message-ID-Hash: FIUAR6REK4U3MPHHSLJ32IM3HIBMLILV X-MailFrom: phrdina@redhat.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; loop; banned-address; header-match-devel.lists.libvirt.org-0; emergency; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header X-Mailman-Version: 3.3.10 Precedence: list List-Id: Development discussions about the libvirt library & tools Archived-At: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: From: Pavel Hrdina via Devel Reply-To: Pavel Hrdina X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZM-MESSAGEID: 1771257541745154100 Content-Type: text/plain; charset="utf-8"; x-default="true" Fixes: 63434db800b921e96fec424a667b7161af1f02de Signed-off-by: Pavel Hrdina --- Pushed as tests breaker. src/util/virutil.h | 2 +- tests/domaincapsdata/qemu_9.0.0.sparc.xml | 5 +---- tests/domaincapsdata/qemu_9.2.0-hvf.aarch64+hvf.xml | 5 +---- tests/domaincapsmock.c | 10 ++++++++++ tests/domaincapstest.c | 8 -------- 5 files changed, 13 insertions(+), 17 deletions(-) diff --git a/src/util/virutil.h b/src/util/virutil.h index ca6fd95363..7e1705e7ce 100644 --- a/src/util/virutil.h +++ b/src/util/virutil.h @@ -141,7 +141,7 @@ unsigned long long virMemoryLimitTruncate(unsigned long= long value); bool virMemoryLimitIsSet(unsigned long long value); unsigned long long virMemoryMaxValue(bool ulong) ATTRIBUTE_MOCKABLE; =20 -bool virHostHasIOMMU(void); +bool virHostHasIOMMU(void) ATTRIBUTE_MOCKABLE; =20 char *virHostGetDRMRenderNode(void) ATTRIBUTE_MOCKABLE; =20 diff --git a/tests/domaincapsdata/qemu_9.0.0.sparc.xml b/tests/domaincapsda= ta/qemu_9.0.0.sparc.xml index 062e55718b..93d8d40c2c 100644 --- a/tests/domaincapsdata/qemu_9.0.0.sparc.xml +++ b/tests/domaincapsdata/qemu_9.0.0.sparc.xml @@ -86,10 +86,7 @@ scsi - - default - vfio - + no diff --git a/tests/domaincapsdata/qemu_9.2.0-hvf.aarch64+hvf.xml b/tests/do= maincapsdata/qemu_9.2.0-hvf.aarch64+hvf.xml index db51e7b120..a65d9d36fd 100644 --- a/tests/domaincapsdata/qemu_9.2.0-hvf.aarch64+hvf.xml +++ b/tests/domaincapsdata/qemu_9.2.0-hvf.aarch64+hvf.xml @@ -147,10 +147,7 @@ scsi - - default - vfio - + no diff --git a/tests/domaincapsmock.c b/tests/domaincapsmock.c index 370ce35709..aa13deb324 100644 --- a/tests/domaincapsmock.c +++ b/tests/domaincapsmock.c @@ -21,6 +21,7 @@ #include "virhostmem.h" #include "viriommufd.h" #include "virmock.h" +#include "virutil.h" =20 #if WITH_QEMU # include "qemu/qemu_capabilities.h" @@ -91,5 +92,14 @@ virFileExists(const char *path) if (STREQ(path, VIR_IOMMU_DEV_PATH)) return true; =20 + if (STREQ(path, "/dev/vfio/vfio")) + return true; + return real_virFileExists(path); } + +bool +virHostHasIOMMU(void) +{ + return true; +} diff --git a/tests/domaincapstest.c b/tests/domaincapstest.c index 71e181d179..5b2fc80f0a 100644 --- a/tests/domaincapstest.c +++ b/tests/domaincapstest.c @@ -104,14 +104,6 @@ fillQemuCaps(virDomainCaps *domCaps, false) < 0) return -1; =20 - /* The function above tries to query host's VFIO capabilities by calli= ng - * virHostdevHostSupportsPassthroughVFIO() which, however, can't be - * successfully mocked as they are not exposed as internal APIs. There= fore, - * instead of mocking set the expected values here by hand. */ - VIR_DOMAIN_CAPS_ENUM_SET(domCaps->hostdev.pciBackend, - VIR_DEVICE_HOSTDEV_PCI_DRIVER_NAME_DEFAULT, - VIR_DEVICE_HOSTDEV_PCI_DRIVER_NAME_VFIO); - /* As of f05b6a918e28 we are expecting to see OVMF_CODE.fd file which * may not exists everywhere. */ while (loader->values.nvalues) --=20 2.53.0