diff --git a/tests/functional/test_aarch64_virt.py
b/tests/functional/test_aarch64_virt.py
index 453e84c39f..4ac66905b8 100755
--- a/tests/functional/test_aarch64_virt.py
+++ b/tests/functional/test_aarch64_virt.py
@@ -13,11 +13,14 @@
import os
import logging
+from qemu.machine.machine import VMLaunchFailure
+
from qemu_test import BUILD_DIR
from qemu_test import QemuSystemTest, Asset
from qemu_test import exec_command, wait_for_console_pattern
-from qemu_test import get_qemu_img, run_cmd
-
+from qemu_test import exec_command_and_wait_for_pattern
+from qemu_test import has_cmd, get_qemu_img, run_cmd
+from unittest import skipUnless
class Aarch64VirtMachine(QemuSystemTest):
KERNEL_COMMON_COMMAND_LINE = 'printk.time=0 '
@@ -101,7 +104,9 @@ def common_aarch64_virt(self, machine):
# Add the device
self.vm.add_args('-blockdev',
-
f"driver=qcow2,file.driver=file,file.filename={image_path},node-name=scratch")
+ "driver=qcow2,file."
+ "driver=file,file."
+ f"filename={image_path},node-name=scratch")
self.vm.add_args('-device',
'virtio-blk-device,drive=scratch')
@@ -130,5 +135,78 @@ 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')
+
+ @skipUnless(*has_cmd('zstd'))