From nobody Tue Sep 9 19:03:26 2025 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=1754044420; cv=none; d=zohomail.com; s=zohoarc; b=CnttVbbhDmG994pZnG3SX9vdnEAa83bllxlRpz9equBT2NzO6diNC3g4qkzVDlY0IsLXZtuDWsJkT9LVrUNv0Y66YQg9a8HBsPjFiFrEE4VEaUyuSE+b20ybL9/7Ewl2WCfGydH22SewGF7feSe3grQ1TZ7u/momu7ZCgV/W/iY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1754044420; h=Content-Type:Content-Transfer-Encoding:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Reply-To:Reply-To:References:Subject:Subject:To:To:Message-Id:Cc; bh=EkUTbs0MszY/dc4ddnBzga8z9+X3k1SRGQMdLOBUzZg=; b=gYcfyykq50B8pCFW1qYFnJ2mGJLAkg38CDBd5yVz+1iZmWuB0Fg4SZVud/aZ0xE+x+jGJBtSlqhTXhPwkWRjM9deFVZdIATT8AfFdq284oTy3nIDsbEEbZAIxwwW2UfKbogFyO6JUl8GFZSR3Qkzph7iEdO7bHQycNzPWPj4FbU= 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 1754044420157768.1125737173775; Fri, 1 Aug 2025 03:33:40 -0700 (PDT) Received: by lists.libvirt.org (Postfix, from userid 996) id 5ED4913B6; Fri, 1 Aug 2025 06:33:39 -0400 (EDT) Received: from lists.libvirt.org (localhost [IPv6:::1]) by lists.libvirt.org (Postfix) with ESMTP id 458C91085; Fri, 1 Aug 2025 06:32:59 -0400 (EDT) Received: by lists.libvirt.org (Postfix, from userid 996) id D565FB92; Fri, 1 Aug 2025 06:32:55 -0400 (EDT) Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by lists.libvirt.org (Postfix) with ESMTPS id 5EAFEC6C for ; Fri, 1 Aug 2025 06:32:55 -0400 (EDT) Received: from mx-prod-mc-06.mail-002.prod.us-west-2.aws.redhat.com (ec2-35-165-154-97.us-west-2.compute.amazonaws.com [35.165.154.97]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-85-u3I7fJBNO5yvBZCMUJDgfg-1; Fri, 01 Aug 2025 06:32:54 -0400 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-06.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id 556BB180045B for ; Fri, 1 Aug 2025 10:32:53 +0000 (UTC) Received: from localhost.localdomain (unknown [10.43.3.236]) by mx-prod-int-03.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP id A1D831955E89 for ; Fri, 1 Aug 2025 10:32:52 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on lists.libvirt.org X-Spam-Level: X-Spam-Status: No, score=-0.8 required=5.0 tests=DKIM_INVALID,DKIM_SIGNED, MAILING_LIST_MULTI,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H5, RCVD_IN_MSPIKE_WL,RCVD_IN_VALIDITY_RPBL_BLOCKED, RCVD_IN_VALIDITY_SAFE_BLOCKED,SPF_HELO_PASS autolearn=unavailable autolearn_force=no version=3.4.4 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1754044375; 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: in-reply-to:in-reply-to:references:references; bh=qkmirNGsV+hLhUwPziCMtsRgn9BTcmVFVN3gOvKaqIw=; b=LjqgXy4h7xfwGXWBmkRmLquCoigza3ZfHzZf9x+Bl1GYE+RLZytmbFckARqVuMWe+OJe2K q5BK8LnVdZno10oXnO4fF0GKByGJ2vc1v+MmJRtQ59VtQ2rAeczixs2Fns9R0IhD3X55ec KiA0g+JFusMJQbEP5LNcZ1j+0dV/N40= X-MC-Unique: u3I7fJBNO5yvBZCMUJDgfg-1 X-Mimecast-MFC-AGG-ID: u3I7fJBNO5yvBZCMUJDgfg_1754044373 To: devel@lists.libvirt.org Subject: [PATCH 1/2] qemuxml2argvmock: Pretend FW blobs are always present Date: Fri, 1 Aug 2025 12:32:48 +0200 Message-ID: In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 3.0 on 10.30.177.12 X-Mimecast-Spam-Score: 0 X-Mimecast-MFC-PROC-ID: k5U-4e_NcDblAMdQTNjPX0koeHb5tjkPNHLp7GGdtx8_1754044373 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable Message-ID-Hash: VERZXRMUEEMISYSNBFZAT23J27LMJ44D X-Message-ID-Hash: VERZXRMUEEMISYSNBFZAT23J27LMJ44D X-MailFrom: mprivozn@redhat.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; header-match-config-1; header-match-config-2; header-match-config-3; header-match-devel.lists.libvirt.org-0; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; suspicious-header X-Mailman-Version: 3.2.2 Precedence: list List-Id: Development discussions about the libvirt library & tools Archived-At: List-Archive: List-Help: List-Post: List-Subscribe: List-Unsubscribe: From: Michal Privoznik via Devel Reply-To: Michal Privoznik X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZM-MESSAGEID: 1754044421070124100 Content-Type: text/plain; charset="utf-8"; x-default="true" From: Michal Privoznik Soon, the QEMU driver, specifically the part that picks firmware based on firmware descriptor files (qemu_firmware.c) is going to check for the presence of those firmware blobs (well, for their realpath()). Just collect the list of all blobs we use in our tests and mock virFileCanonicalizePath() so that for any path on that list its strdup()-ed version is returned. This means, qemuxmlconftest won't touch host files really. Signed-off-by: Michal Privoznik --- tests/qemuxml2argvmock.c | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/tests/qemuxml2argvmock.c b/tests/qemuxml2argvmock.c index e3f933c44f..9d10b5655f 100644 --- a/tests/qemuxml2argvmock.c +++ b/tests/qemuxml2argvmock.c @@ -33,6 +33,7 @@ #include "virscsivhost.h" #include "virtpm.h" #include "virutil.h" +#include "virfile.h" #include "qemu/qemu_interface.h" #include "qemu/qemu_command.h" #include "domain_interface.h" @@ -296,3 +297,37 @@ virNetDevSetMTU(const char *ifname G_GNUC_UNUSED, { return 0; } + +static char *(*real_virFileCanonicalizePath)(const char *path); + +char * +virFileCanonicalizePath(const char *path) +{ + size_t i; + const char *fws[] =3D { + /* These are locations from our firmware descriptors + * stored in qemufirmwaredata/. */ + "/usr/share/edk2/", + "/usr/share/OVMF/", + "/usr/share/AAVMF/", + "/usr/share/seabios/", + + /* These are 'random' locations from domain XMLs stored + * in qemuxmlconfdata/. */ + "/path/to/OVMF_CODE.fd", + "/path/to/guest_BOTH.fd", + "/path/to/OVMF_VARS.fd", + }; + + for (i =3D 0; i < G_N_ELEMENTS(fws); i++) { + if (STRPREFIX(path, fws[i])) { + return g_strdup(path); + } + } + + if (!real_virFileCanonicalizePath) { + VIR_MOCK_REAL_INIT(virFileCanonicalizePath); + } + + return real_virFileCanonicalizePath(path); +} --=20 2.49.1