diff --git a/tests/domaincapsdata/qemu_5.0.0-tcg-virt.riscv64.xml b/tests/domaincapsdata/qemu_5.0.0-tcg-virt.riscv64.xml
new file mode 100644
index 0000000000..6218583336
--- /dev/null
+++ b/tests/domaincapsdata/qemu_5.0.0-tcg-virt.riscv64.xml
@@ -0,0 +1,142 @@
+
+ /usr/bin/qemu-system-riscv64
+ qemu
+ virt
+ riscv64
+
+
+
+
+
+ /usr/share/AAVMF/AAVMF_CODE.fd
+ /usr/share/AAVMF/AAVMF32_CODE.fd
+ /usr/share/OVMF/OVMF_CODE.fd
+
+ rom
+ pflash
+
+
+ yes
+ no
+
+
+ no
+
+
+
+
+
+
+
+
+
+
+
+ file
+ anonymous
+ memfd
+
+
+
+
+
+ disk
+ cdrom
+ floppy
+ lun
+
+
+ fdc
+ scsi
+ virtio
+ usb
+ sata
+
+
+ virtio
+ virtio-transitional
+ virtio-non-transitional
+
+
+
+
+ sdl
+ vnc
+ spice
+ egl-headless
+
+
+
+
+
+ subsystem
+
+
+ default
+ mandatory
+ requisite
+ optional
+
+
+ usb
+ pci
+ scsi
+
+
+
+ default
+ vfio
+
+
+
+
+ virtio
+ virtio-transitional
+ virtio-non-transitional
+
+
+ random
+ egd
+ builtin
+
+
+
+
+ path
+ handle
+ virtiofs
+
+
+
+
+
+ usb
+
+
+
+
+ pty
+ unix
+ spicevmc
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/tests/domaincapsdata/qemu_5.0.0-virt.riscv64.xml b/tests/domaincapsdata/qemu_5.0.0-virt.riscv64.xml
new file mode 100644
index 0000000000..772556d19e
--- /dev/null
+++ b/tests/domaincapsdata/qemu_5.0.0-virt.riscv64.xml
@@ -0,0 +1,145 @@
+
+ /usr/bin/qemu-system-riscv64
+ kvm
+ virt
+ riscv64
+
+
+
+
+ /usr/share/AAVMF/AAVMF_CODE.fd
+ /usr/share/AAVMF/AAVMF32_CODE.fd
+ /usr/share/OVMF/OVMF_CODE.fd
+
+ rom
+ pflash
+
+
+ yes
+ no
+
+
+ no
+
+
+
+
+
+
+ off
+
+
+
+
+
+
+
+
+ file
+ anonymous
+ memfd
+
+
+
+
+
+ disk
+ cdrom
+ floppy
+ lun
+
+
+ fdc
+ scsi
+ virtio
+ usb
+ sata
+
+
+ virtio
+ virtio-transitional
+ virtio-non-transitional
+
+
+
+
+ sdl
+ vnc
+ spice
+ egl-headless
+
+
+
+
+
+ subsystem
+
+
+ default
+ mandatory
+ requisite
+ optional
+
+
+ usb
+ pci
+ scsi
+
+
+
+ default
+ vfio
+
+
+
+
+ virtio
+ virtio-transitional
+ virtio-non-transitional
+
+
+ random
+ egd
+ builtin
+
+
+
+
+ path
+ handle
+ virtiofs
+
+
+
+
+
+ usb
+
+
+
+
+ pty
+ unix
+ spicevmc
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/tests/domaincapsdata/qemu_5.2.0-tcg-virt.riscv64.xml b/tests/domaincapsdata/qemu_5.2.0-tcg-virt.riscv64.xml
new file mode 100644
index 0000000000..6218583336
--- /dev/null
+++ b/tests/domaincapsdata/qemu_5.2.0-tcg-virt.riscv64.xml
@@ -0,0 +1,142 @@
+
+ /usr/bin/qemu-system-riscv64
+ qemu
+ virt
+ riscv64
+
+
+
+
+
+ /usr/share/AAVMF/AAVMF_CODE.fd
+ /usr/share/AAVMF/AAVMF32_CODE.fd
+ /usr/share/OVMF/OVMF_CODE.fd
+
+ rom
+ pflash
+
+
+ yes
+ no
+
+
+ no
+
+
+
+
+
+
+
+
+
+
+
+ file
+ anonymous
+ memfd
+
+
+
+
+
+ disk
+ cdrom
+ floppy
+ lun
+
+
+ fdc
+ scsi
+ virtio
+ usb
+ sata
+
+
+ virtio
+ virtio-transitional
+ virtio-non-transitional
+
+
+
+
+ sdl
+ vnc
+ spice
+ egl-headless
+
+
+
+
+
+ subsystem
+
+
+ default
+ mandatory
+ requisite
+ optional
+
+
+ usb
+ pci
+ scsi
+
+
+
+ default
+ vfio
+
+
+
+
+ virtio
+ virtio-transitional
+ virtio-non-transitional
+
+
+ random
+ egd
+ builtin
+
+
+
+
+ path
+ handle
+ virtiofs
+
+
+
+
+
+ usb
+
+
+
+
+ pty
+ unix
+ spicevmc
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/tests/domaincapsdata/qemu_5.2.0-virt.riscv64.xml b/tests/domaincapsdata/qemu_5.2.0-virt.riscv64.xml
new file mode 100644
index 0000000000..772556d19e
--- /dev/null
+++ b/tests/domaincapsdata/qemu_5.2.0-virt.riscv64.xml
@@ -0,0 +1,145 @@
+
+ /usr/bin/qemu-system-riscv64
+ kvm
+ virt
+ riscv64
+
+
+
+
+ /usr/share/AAVMF/AAVMF_CODE.fd
+ /usr/share/AAVMF/AAVMF32_CODE.fd
+ /usr/share/OVMF/OVMF_CODE.fd
+
+ rom
+ pflash
+
+
+ yes
+ no
+
+
+ no
+
+
+
+
+
+
+ off
+
+
+
+
+
+
+
+
+ file
+ anonymous
+ memfd
+
+
+
+
+
+ disk
+ cdrom
+ floppy
+ lun
+
+
+ fdc
+ scsi
+ virtio
+ usb
+ sata
+
+
+ virtio
+ virtio-transitional
+ virtio-non-transitional
+
+
+
+
+ sdl
+ vnc
+ spice
+ egl-headless
+
+
+
+
+
+ subsystem
+
+
+ default
+ mandatory
+ requisite
+ optional
+
+
+ usb
+ pci
+ scsi
+
+
+
+ default
+ vfio
+
+
+
+
+ virtio
+ virtio-transitional
+ virtio-non-transitional
+
+
+ random
+ egd
+ builtin
+
+
+
+
+ path
+ handle
+ virtiofs
+
+
+
+
+
+ usb
+
+
+
+
+ pty
+ unix
+ spicevmc
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/tests/domaincapsdata/qemu_8.0.0-tcg-virt.riscv64.xml b/tests/domaincapsdata/qemu_8.0.0-tcg-virt.riscv64.xml
new file mode 100644
index 0000000000..f5814253b5
--- /dev/null
+++ b/tests/domaincapsdata/qemu_8.0.0-tcg-virt.riscv64.xml
@@ -0,0 +1,148 @@
+
+ /usr/bin/qemu-system-riscv64
+ qemu
+ virt
+ riscv64
+
+
+
+
+
+ /usr/share/AAVMF/AAVMF_CODE.fd
+ /usr/share/AAVMF/AAVMF32_CODE.fd
+ /usr/share/OVMF/OVMF_CODE.fd
+
+ rom
+ pflash
+
+
+ yes
+ no
+
+
+ no
+
+
+
+
+
+
+
+
+
+
+
+ file
+ anonymous
+ memfd
+
+
+
+
+
+ disk
+ cdrom
+ floppy
+ lun
+
+
+ fdc
+ scsi
+ virtio
+ usb
+ sata
+
+
+ virtio
+ virtio-transitional
+ virtio-non-transitional
+
+
+
+
+ vnc
+ spice
+
+
+
+
+
+ subsystem
+
+
+ default
+ mandatory
+ requisite
+ optional
+
+
+ usb
+ pci
+ scsi
+
+
+
+ default
+ vfio
+
+
+
+
+ virtio
+ virtio-transitional
+ virtio-non-transitional
+
+
+ random
+ egd
+ builtin
+
+
+
+
+ path
+ handle
+ virtiofs
+
+
+
+
+ tpm-tis
+
+
+ passthrough
+ emulator
+ external
+
+
+ 2.0
+
+
+
+
+
+ pty
+ unix
+ spicevmc
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/tests/domaincapsdata/qemu_8.0.0-virt.riscv64.xml b/tests/domaincapsdata/qemu_8.0.0-virt.riscv64.xml
new file mode 100644
index 0000000000..b583ba5d63
--- /dev/null
+++ b/tests/domaincapsdata/qemu_8.0.0-virt.riscv64.xml
@@ -0,0 +1,151 @@
+
+ /usr/bin/qemu-system-riscv64
+ kvm
+ virt
+ riscv64
+
+
+
+
+ /usr/share/AAVMF/AAVMF_CODE.fd
+ /usr/share/AAVMF/AAVMF32_CODE.fd
+ /usr/share/OVMF/OVMF_CODE.fd
+
+ rom
+ pflash
+
+
+ yes
+ no
+
+
+ no
+
+
+
+
+
+
+ off
+
+
+
+
+
+
+
+
+ file
+ anonymous
+ memfd
+
+
+
+
+
+ disk
+ cdrom
+ floppy
+ lun
+
+
+ fdc
+ scsi
+ virtio
+ usb
+ sata
+
+
+ virtio
+ virtio-transitional
+ virtio-non-transitional
+
+
+
+
+ vnc
+ spice
+
+
+
+
+
+ subsystem
+
+
+ default
+ mandatory
+ requisite
+ optional
+
+
+ usb
+ pci
+ scsi
+
+
+
+ default
+ vfio
+
+
+
+
+ virtio
+ virtio-transitional
+ virtio-non-transitional
+
+
+ random
+ egd
+ builtin
+
+
+
+
+ path
+ handle
+ virtiofs
+
+
+
+
+ tpm-tis
+
+
+ passthrough
+ emulator
+ external
+
+
+ 2.0
+
+
+
+
+
+ pty
+ unix
+ spicevmc
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/tests/domaincapstest.c b/tests/domaincapstest.c
index b3cf4426f3..359ead2d32 100644
--- a/tests/domaincapstest.c
+++ b/tests/domaincapstest.c
@@ -337,8 +337,18 @@ doTestQemu(const char *inputDir G_GNUC_UNUSED,
VIR_DOMAIN_VIRT_KVM, opaque) < 0)
ret = -1;
} else if (STRPREFIX(arch, "riscv")) {
- /* Unfortunately we have to skip RISC-V at the moment */
- return 0;
+ /* For riscv64 we test two combinations:
+ *
+ * - KVM with virt machine
+ * - TCG with virt machine
+ */
+ if (doTestQemuInternal(version, "virt", arch,
+ VIR_DOMAIN_VIRT_KVM, opaque) < 0)
+ ret = -1;
+
+ if (doTestQemuInternal(version, "virt", arch,
+ VIR_DOMAIN_VIRT_QEMU, opaque) < 0)
+ ret = -1;
} else {
if (doTestQemuInternal(version, NULL, arch,
VIR_DOMAIN_VIRT_KVM, opaque) < 0)
diff --git a/tests/testutilshostcpus.h b/tests/testutilshostcpus.h
index e38d7c8b5a..74c6e0d22a 100644
--- a/tests/testutilshostcpus.h
+++ b/tests/testutilshostcpus.h
@@ -147,6 +147,14 @@ static virCPUDef cpuSparcData = {
.threads = 1,
};
+static virCPUDef cpuRiscv64Data = {
+ .type = VIR_CPU_TYPE_HOST,
+ .arch = VIR_ARCH_RISCV64,
+ .sockets = 1,
+ .cores = 4,
+ .threads = 1,
+};
+
static inline virCPUDef *
testUtilsHostCpusGetDefForModel(const char *model)
{
@@ -182,6 +190,8 @@ testUtilsHostCpusGetDefForArch(virArch arch)
return virCPUDefCopy(&cpuAarch64Data);
else if (arch == VIR_ARCH_SPARC)
return virCPUDefCopy(&cpuSparcData);
+ else if (arch == VIR_ARCH_RISCV64)
+ return virCPUDefCopy(&cpuRiscv64Data);
return NULL;
}