From: Thomas Huth <thuth@redhat.com>
To: "Philippe Mathieu-Daudé" <philmd@linaro.org>,
"Alex Bennée" <alex.bennee@linaro.org>,
qemu-devel@nongnu.org, "Markus Armbruster" <armbru@redhat.com>
Cc: Peter Maydell <peter.maydell@linaro.org>,
"open list:Virt" <qemu-arm@nongnu.org>
Subject: Re: [PULL 23/32] tests/functional: extend test_aarch64_virt with vulkan test
Date: Wed, 19 Feb 2025 14:43:14 +0100 [thread overview]
Message-ID: <87751cfc-b2b9-4995-a024-13905a1c47ca@redhat.com> (raw)
In-Reply-To: <91a78caf-2200-42b7-8da6-e857af38bad7@linaro.org>
On 19/02/2025 14.25, Philippe Mathieu-Daudé wrote:
> (+Markus for CLI)
>
> On 10/1/25 14:17, Alex Bennée wrote:
>> Now that we have virtio-gpu Vulkan support, let's add a test for it.
>> Currently this is using images build by buildroot:
>>
>> https://lists.buildroot.org/pipermail/buildroot/2024-December/768196.html
>>
>> Reviewed-by: Thomas Huth <thuth@redhat.com>
>> Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
>> Message-Id: <20250108121054.1126164-24-alex.bennee@linaro.org>
>>
>> diff --git a/tests/functional/test_aarch64_virt.py b/tests/functional/
>> test_aarch64_virt.py
>> index 201c5ed023..6b2336a28d 100755
>> --- a/tests/functional/test_aarch64_virt.py
>> +++ b/tests/functional/test_aarch64_virt.py
>> @@ -13,10 +13,12 @@
>> import logging
>> from subprocess import check_call, DEVNULL
>> +from qemu.machine.machine import VMLaunchFailure
>> +
>> from qemu_test import QemuSystemTest, Asset
>> -from qemu_test import exec_command_and_wait_for_pattern
>> +from qemu_test import exec_command, exec_command_and_wait_for_pattern
>> from qemu_test import wait_for_console_pattern
>> -from qemu_test import get_qemu_img
>> +from qemu_test import skipIfMissingCommands, get_qemu_img
>> class Aarch64VirtMachine(QemuSystemTest):
>> @@ -132,5 +134,73 @@ def test_aarch64_virt_gicv2(self):
>> self.common_aarch64_virt("virt,gic-version=2")
>> + ASSET_VIRT_GPU_KERNEL = Asset(
>> + 'https://fileserver.linaro.org/s/ce5jXBFinPxtEdx/'
>> + 'download?path=%2F&files='
>> + 'Image',
>> + '89e5099d26166204cc5ca4bb6d1a11b92c217e1f82ec67e3ba363d09157462f6')
>> +
>> + ASSET_VIRT_GPU_ROOTFS = Asset(
>> + 'https://fileserver.linaro.org/s/ce5jXBFinPxtEdx/'
>> + 'download?path=%2F&files='
>> + 'rootfs.ext4.zstd',
>> + '792da7573f5dc2913ddb7c638151d4a6b2d028a4cb2afb38add513c1924bdad4')
>> +
>> + @skipIfMissingCommands('zstd')
>> + def test_aarch64_virt_with_gpu(self):
>> + # This tests boots with a buildroot test image that contains
>> + # vkmark and other GPU exercising tools. We run a headless
>> + # weston that nevertheless still exercises the virtio-gpu
>> + # backend.
>> +
>> + self.set_machine('virt')
>> + self.require_accelerator("tcg")
>> +
>> + kernel_path = self.ASSET_VIRT_GPU_KERNEL.fetch()
>> + image_path = self.uncompress(self.ASSET_VIRT_GPU_ROOTFS,
>> format="zstd")
>> +
>> + self.vm.set_console()
>> + kernel_command_line = (self.KERNEL_COMMON_COMMAND_LINE +
>> + 'console=ttyAMA0 root=/dev/vda')
>> +
>> + self.vm.add_args("-accel", "tcg")
>> + self.vm.add_args("-cpu", "neoverse-v1,pauth-impdef=on")
>> + self.vm.add_args("-machine", "virt,gic-version=max",
>> + '-kernel', kernel_path,
>> + '-append', kernel_command_line)
>> + self.vm.add_args("-smp", "2", "-m", "2048")
>> + self.vm.add_args("-device",
>> + "virtio-gpu-gl-pci,hostmem=4G,blob=on,venus=on")
>> + self.vm.add_args("-display", "egl-headless")
>> + self.vm.add_args("-display", "dbus,gl=on")
>
> [*]
>
>> + self.vm.add_args("-device", "virtio-blk-device,drive=hd0")
>> + self.vm.add_args("-blockdev",
>> + "driver=raw,file.driver=file,"
>> + "node-name=hd0,read-only=on,"
>> + f"file.filename={image_path}")
>> + self.vm.add_args("-snapshot")
>> +
>> + try:
>> + self.vm.launch()
>> + except VMLaunchFailure as excp:
>> + if "old virglrenderer, blob resources unsupported" in
>> excp.output:
>> + self.skipTest("No blob support for virtio-gpu")
>> + elif "old virglrenderer, venus unsupported" in excp.output:
>> + self.skipTest("No venus support for virtio-gpu")
>
> This seems dependent on the order of the CLI arguments, as I got:
>
> qemu-system-aarch64: -device virtio-gpu-gl-pci,hostmem=4G,blob=on,venus=on:
> 'virtio-gpu-gl-pci' is not a valid device model name
>
> I understand it is too complex to check this device availability with
> meson, in order to avoid running the test.
>
> Can we use device introspection instead, like we do in QTest with
> qtest_qom_has_concrete_type() for accelerators? Maybe in the lines of:
>
> @skipIfMissingQOMType('virtio-gpu-gl-pci')
We already have "self.require_device('...')" that can be used to check for
the availability of devices and skip the test if it is not built in ...
would that be suitable here?
Thomas
next prev parent reply other threads:[~2025-02-19 13:43 UTC|newest]
Thread overview: 45+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-01-10 13:17 [PULL 00/32] testing updates for 10.0 (tuxrun, libvirt, dockerfiles, misc) Alex Bennée
2025-01-10 13:17 ` [PULL 01/32] tests/functional: update the arm tuxrun tests Alex Bennée
2025-01-10 13:17 ` [PULL 02/32] tests/functional: update the i386 " Alex Bennée
2025-01-10 13:17 ` [PULL 03/32] tests/functional: add a m68k " Alex Bennée
2025-01-10 13:17 ` [PULL 04/32] tests/functional: update the mips32 " Alex Bennée
2025-01-10 13:17 ` [PULL 05/32] tests/functional: update the mips32el " Alex Bennée
2025-01-10 13:17 ` [PULL 06/32] tests/functional: update the mips64 " Alex Bennée
2025-01-10 13:17 ` [PULL 07/32] tests/functional: update the mips64el " Alex Bennée
2025-01-10 13:17 ` [PULL 08/32] tests/functional: update the ppc32 " Alex Bennée
2025-01-10 13:17 ` [PULL 09/32] tests/functional: update the ppc64 " Alex Bennée
2025-01-10 13:17 ` [PULL 10/32] tests/functional: update the riscv32 " Alex Bennée
2025-01-10 13:17 ` [PULL 11/32] tests/functional: update the riscv64 " Alex Bennée
2025-01-10 13:17 ` [PULL 12/32] tests/functional: update the s390x " Alex Bennée
2025-01-10 13:17 ` [PULL 13/32] tests/functional: update the sparc64 " Alex Bennée
2025-01-10 13:17 ` [PULL 14/32] tests/functional: update the x86_64 " Alex Bennée
2025-01-10 13:17 ` [PULL 15/32] tests/functional/aarch64: add tests for FEAT_RME Alex Bennée
2025-01-24 13:29 ` Thomas Huth
2025-01-24 16:18 ` Pierrick Bouvier
2025-01-25 23:05 ` Alex Bennée
2025-01-10 13:17 ` [PULL 16/32] tests/qtest: remove clock_steps from virtio tests Alex Bennée
2025-01-10 13:17 ` [PULL 17/32] system/qtest: properly feedback results of clock_[step|set] Alex Bennée
2025-01-10 13:17 ` [PULL 18/32] tests/functional: remove hacky sleep from the tests Alex Bennée
2025-01-10 13:17 ` [PULL 19/32] tests/functional: add zstd support to uncompress utility Alex Bennée
2025-01-10 13:17 ` [PULL 20/32] tests/functional: update tuxruntest to use " Alex Bennée
2025-01-10 13:17 ` [PULL 21/32] tests/functional: remove unused kernel_command_line Alex Bennée
2025-01-10 13:17 ` [PULL 22/32] tests/functional: bail aarch64_virt tests early if missing TCG Alex Bennée
2025-01-10 13:17 ` [PULL 23/32] tests/functional: extend test_aarch64_virt with vulkan test Alex Bennée
2025-02-17 16:30 ` Peter Maydell
2025-02-17 17:00 ` Alex Bennée
2025-02-18 6:34 ` Thomas Huth
2025-02-18 10:06 ` Alex Bennée
2025-02-19 13:25 ` Philippe Mathieu-Daudé
2025-02-19 13:43 ` Thomas Huth [this message]
2025-02-19 13:52 ` Philippe Mathieu-Daudé
2025-01-10 13:17 ` [PULL 24/32] tests/lcitool: bump to latest version of libvirt-ci Alex Bennée
2025-01-10 13:17 ` [PULL 25/32] tests/docker: move riscv64 cross container from sid to trixie Alex Bennée
2025-01-10 13:17 ` [PULL 26/32] tests/lcitool: remove temp workaround for debian mips64el Alex Bennée
2025-01-10 13:17 ` [PULL 27/32] tests/vm: fix build_path based path Alex Bennée
2025-01-10 13:17 ` [PULL 28/32] tests/vm: partially un-tabify help output Alex Bennée
2025-01-10 13:17 ` [PULL 29/32] tests/vm: allow interactive login as root Alex Bennée
2025-01-10 13:17 ` [PULL 30/32] pc-bios: ensure keymaps dependencies set vnc tests Alex Bennée
2025-01-10 13:17 ` [PULL 31/32] dockerfiles: Remove 'MAINTAINER' entry in debian-tricore-cross.docker Alex Bennée
2025-01-10 13:17 ` [PULL 32/32] MAINTAINERS: Remove myself from reviewers Alex Bennée
2025-01-10 18:38 ` [PULL 00/32] testing updates for 10.0 (tuxrun, libvirt, dockerfiles, misc) Stefan Hajnoczi
2025-01-11 12:16 ` Alex Bennée
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87751cfc-b2b9-4995-a024-13905a1c47ca@redhat.com \
--to=thuth@redhat.com \
--cc=alex.bennee@linaro.org \
--cc=armbru@redhat.com \
--cc=peter.maydell@linaro.org \
--cc=philmd@linaro.org \
--cc=qemu-arm@nongnu.org \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).