From nobody Mon Sep 8 17:07:21 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 header.i=maximilian_martin@gmx.de; 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=1755528378; cv=none; d=zohomail.com; s=zohoarc; b=G6BtYt49HZ7IdG6ajYQxlpgnmpCziwAkTckv8rapx4Z4cMno8a0XUYi9arbFwBRn5Gl3MRwTHdxVDmXrEnXXNbFbSMe87UreAG37F8fDrAWHfb1Nyd/qOrQAy13lYCZAUDFoLbWAFiDUHRC186oEwSuvGzNHAFcZBUjdmWIXD3w= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1755528378; 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:Reply-To:Reply-To:References:Subject:Subject:To:To:Message-Id; bh=hL3N7vqNbNpAwuim14BlRWCBv1CCndZmXATEU4ZwB6Q=; b=LjU3tdrJHG3SQcz7hS6i8uG/k4KwZRZAXjpZzPWZmPFUCk15iomsh+X9GXrhmWqv5K//dHNXlsC6jnOLImsZKHKFGl9wylXN1pzIBvTDLX0r/OZ+tf7NPefDmsRJRcJz3N22BTG5ReOqQKYZ6HLPsM3lAX5lRWXKPTGgRsPsERM= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail header.i=maximilian_martin@gmx.de; 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 1755528378114934.5040027256833; Mon, 18 Aug 2025 07:46:18 -0700 (PDT) Received: by lists.libvirt.org (Postfix, from userid 996) id 28E03C7E; Mon, 18 Aug 2025 10:46:17 -0400 (EDT) Received: from lists.libvirt.org (localhost [IPv6:::1]) by lists.libvirt.org (Postfix) with ESMTP id BCDE6D58; Mon, 18 Aug 2025 10:39:42 -0400 (EDT) Received: by lists.libvirt.org (Postfix, from userid 996) id A7AE0A99; Mon, 18 Aug 2025 10:39:36 -0400 (EDT) Received: from mout.gmx.net (mout.gmx.net [212.227.15.19]) (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 AB42BA95 for ; Mon, 18 Aug 2025 10:39:31 -0400 (EDT) Received: from cu-host.fritz.box ([185.17.205.244]) by mail.gmx.net (mrgmx004 [212.227.17.190]) with ESMTPSA (Nemesis) id 1MDhlV-1ufScF32sZ-0094b4; Mon, 18 Aug 2025 16:34:20 +0200 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on lists.libvirt.org X-Spam-Level: X-Spam-Status: No, score=-1.5 required=5.0 tests=DKIM_INVALID,DKIM_SIGNED, MAILING_LIST_MULTI,RCVD_IN_DNSWL_LOW,RCVD_IN_MSPIKE_H5, RCVD_IN_MSPIKE_WL,RCVD_IN_VALIDITY_RPBL_BLOCKED, RCVD_IN_VALIDITY_SAFE_BLOCKED,SPF_HELO_NONE autolearn=unavailable autolearn_force=no version=3.4.4 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmx.de; s=s31663417; t=1755527969; x=1756132769; i=maximilian_martin@gmx.de; bh=hL3N7vqNbNpAwuim14BlRWCBv1CCndZmXATEU4ZwB6Q=; h=X-UI-Sender-Class:From:To:Cc:Subject:Date:Message-Id:In-Reply-To: References:MIME-Version:Content-Transfer-Encoding:cc: content-transfer-encoding:content-type:date:from:message-id: mime-version:reply-to:subject:to; b=A5bDDse3XvriV8i9jvtZdCDHx0qrcSMEHO7QVv5T5XvGgVa9PZ96Uc5oIxrZtT8v 5/Lc+M6QrAcyJvslKsBcULeEr9FvbTxFaU145DbE6tZu0WaMEiTwJp071CJ/CXUrN vpBS/MlJVLzarhOFw80tpwjyoucG1ssmqhILJhW2adG51cz3VC6prZhHid55+nL9t gbN0l39B6vdlUotEUW2EbIFuUnqtT7acc+OjqOT6yh+kSUPM1d5wRBdrqpbLxr6eB Ea5mNyMMuSGwRkYaCS9RFgAFWsGJsRna5o/zMugGU8A8H0KZf4UQ5SrGBQXsMNLN2 mly37l2NnSr6oHpWcg== X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a To: devel@lists.libvirt.org Subject: [PATCH v3 5/7] tests: validate an XML config with USB bus/port set Date: Mon, 18 Aug 2025 16:34:15 +0200 Message-Id: <20250818143417.765-6-maximilian_martin@gmx.de> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250818143417.765-1-maximilian_martin@gmx.de> References: <20250818143417.765-1-maximilian_martin@gmx.de> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Provags-ID: V03:K1:EShbNdRoOrF11RdKEmYFCi5V7vgllDOnnh7HNSERyA/yexm6MdJ V/T8hBx6ZvUgeVwkq4HZrhY4c728dUHQIp4Aeg4zU9xbVpAQaMXFqQED+22jcOhCl0ZoTem m8yAw8MwjHOmOSHFbxEk32XgKMpUg3X+f6PjE3roY6ixQ+Deyazz149RJhrSjCM6qvyydSr /W2989sX0NfXtUdaV/4Cw== UI-OutboundReport: notjunk:1;M01:P0:zsXDYLaKOr8=;GglzAnldNlnoxNPx/2cOKBNPOt/ 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 W+S2hugVnWv2syFbkwyEtanyBW1yCQ0WEaWW6 Message-ID-Hash: DNJMR7RIKXBV3HPQPBU5VSUMKWJE6EG7 X-Message-ID-Hash: DNJMR7RIKXBV3HPQPBU5VSUMKWJE6EG7 X-MailFrom: maximilian_martin@gmx.de 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 CC: Maximilian Martin 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: Maximilian Martin via Devel Reply-To: Maximilian Martin X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZM-MESSAGEID: 1755528380838116600 Content-Type: text/plain; charset="utf-8" From: Maximilian Martin USB bus/port addressing is translated into a bus/device addressing at startup using the hostdev logic. This test covers XML parsing and CLI formatting for bus/port addressing. Signed-off-by: Maximilian Martin --- ...ostdev-usb-address-port.x86_64-latest.args | 36 +++++++++++++++ ...hostdev-usb-address-port.x86_64-latest.xml | 45 +++++++++++++++++++ .../hostdev-usb-address-port.xml | 28 ++++++++++++ tests/qemuxmlconftest.c | 7 +++ 4 files changed, 116 insertions(+) create mode 100644 tests/qemuxmlconfdata/hostdev-usb-address-port.x86_64-l= atest.args create mode 100644 tests/qemuxmlconfdata/hostdev-usb-address-port.x86_64-l= atest.xml create mode 100644 tests/qemuxmlconfdata/hostdev-usb-address-port.xml diff --git a/tests/qemuxmlconfdata/hostdev-usb-address-port.x86_64-latest.a= rgs b/tests/qemuxmlconfdata/hostdev-usb-address-port.x86_64-latest.args new file mode 100644 index 0000000000..8996f05223 --- /dev/null +++ b/tests/qemuxmlconfdata/hostdev-usb-address-port.x86_64-latest.args @@ -0,0 +1,36 @@ +LC_ALL=3DC \ +PATH=3D/bin \ +HOME=3D/var/lib/libvirt/qemu/domain--1-QEMUGuest1 \ +USER=3Dtest \ +LOGNAME=3Dtest \ +XDG_DATA_HOME=3D/var/lib/libvirt/qemu/domain--1-QEMUGuest1/.local/share \ +XDG_CACHE_HOME=3D/var/lib/libvirt/qemu/domain--1-QEMUGuest1/.cache \ +XDG_CONFIG_HOME=3D/var/lib/libvirt/qemu/domain--1-QEMUGuest1/.config \ +/usr/bin/qemu-system-x86_64 \ +-name guest=3DQEMUGuest1,debug-threads=3Don \ +-S \ +-object '{"qom-type":"secret","id":"masterKey0","format":"raw","file":"/va= r/lib/libvirt/qemu/domain--1-QEMUGuest1/master-key.aes"}' \ +-machine pc,usb=3Doff,dump-guest-core=3Doff,memory-backend=3Dpc.ram,acpi= =3Doff \ +-accel tcg \ +-cpu qemu64 \ +-m size=3D219136k \ +-object '{"qom-type":"memory-backend-ram","id":"pc.ram","size":224395264}'= \ +-overcommit mem-lock=3Doff \ +-smp 1,sockets=3D1,cores=3D1,threads=3D1 \ +-uuid c7a5fdbd-edaf-9455-926a-d65c16db1809 \ +-display none \ +-no-user-config \ +-nodefaults \ +-chardev socket,id=3Dcharmonitor,fd=3D1729,server=3Don,wait=3Doff \ +-mon chardev=3Dcharmonitor,id=3Dmonitor,mode=3Dcontrol \ +-rtc base=3Dutc \ +-no-shutdown \ +-boot strict=3Don \ +-device '{"driver":"piix3-usb-uhci","id":"usb","bus":"pci.0","addr":"0x1.0= x2"}' \ +-blockdev '{"driver":"host_device","filename":"/dev/HostVG/QEMUGuest1","no= de-name":"libvirt-1-storage","read-only":false}' \ +-device '{"driver":"ide-hd","bus":"ide.0","unit":0,"drive":"libvirt-1-stor= age","id":"ide0-0-0","bootindex":1}' \ +-audiodev '{"id":"audio1","driver":"none"}' \ +-device '{"driver":"usb-host","hostdevice":"/dev/bus/usb/002/004","id":"ho= stdev0","bus":"usb.0","port":"1"}' \ +-device '{"driver":"virtio-balloon-pci","id":"balloon0","bus":"pci.0","add= r":"0x2"}' \ +-sandbox on,obsolete=3Ddeny,elevateprivileges=3Ddeny,spawn=3Ddeny,resource= control=3Ddeny \ +-msg timestamp=3Don diff --git a/tests/qemuxmlconfdata/hostdev-usb-address-port.x86_64-latest.x= ml b/tests/qemuxmlconfdata/hostdev-usb-address-port.x86_64-latest.xml new file mode 100644 index 0000000000..7a280d9ecd --- /dev/null +++ b/tests/qemuxmlconfdata/hostdev-usb-address-port.x86_64-latest.xml @@ -0,0 +1,45 @@ + + QEMUGuest1 + c7a5fdbd-edaf-9455-926a-d65c16db1809 + 219100 + 219100 + 1 + + hvm + + + + qemu64 + + + destroy + restart + destroy + + /usr/bin/qemu-system-x86_64 + + + + +
+ + +
+ + + +
+ + + +