On Tue, Jan 04, 2022 at 07:52:50PM +0100, Andrea Bolognani wrote: > Signed-off-by: Andrea Bolognani <abologna@xxxxxxxxxx> > --- > tests/testutilsqemu.c | 40 ++++++++++++++++++++++++++++++++++++++++ > 1 file changed, 40 insertions(+) > > diff --git a/tests/testutilsqemu.c b/tests/testutilsqemu.c > index 7fdb82daec..a75995c77a 100644 > --- a/tests/testutilsqemu.c > +++ b/tests/testutilsqemu.c > @@ -106,6 +106,18 @@ static const char *const *kvm_machines[VIR_ARCH_LAST] = { > [VIR_ARCH_S390X] = s390x_machines, > }; > > +static const char *const *hvf_machines[VIR_ARCH_LAST] = { > + [VIR_ARCH_I686] = NULL, > + [VIR_ARCH_X86_64] = x86_64_machines, > + [VIR_ARCH_AARCH64] = aarch64_machines, > + [VIR_ARCH_ARMV7L] = NULL, > + [VIR_ARCH_PPC64] = NULL, > + [VIR_ARCH_PPC] = NULL, > + [VIR_ARCH_RISCV32] = NULL, > + [VIR_ARCH_RISCV64] = NULL, > + [VIR_ARCH_S390X] = NULL, > +}; > + > static const char *qemu_default_ram_id[VIR_ARCH_LAST] = { > [VIR_ARCH_I686] = "pc.ram", > [VIR_ARCH_X86_64] = "pc.ram", > @@ -214,6 +226,18 @@ testQemuAddGuest(virCaps *caps, > NULL, nmachines, machines); > } > > + if (hvf_machines[emu_arch] != NULL) { > + nmachines = g_strv_length((char **)hvf_machines[emu_arch]); > + machines = virCapabilitiesAllocMachines(hvf_machines[emu_arch], > + nmachines); > + if (machines == NULL) > + goto error; > + > + virCapabilitiesAddGuestDomain(guest, VIR_DOMAIN_VIRT_HVF, > + qemu_emulators[emu_arch], > + NULL, nmachines, machines); > + } > + > return 0; > > error: > @@ -403,6 +427,22 @@ int qemuTestCapsCacheInsert(virFileCache *cache, > virQEMUCapsSet(tmpCaps, QEMU_CAPS_KVM); > } > } > + if (hvf_machines[i] != NULL) { > + for (j = 0; hvf_machines[i][j] != NULL; j++) { > + virQEMUCapsAddMachine(tmpCaps, > + VIR_DOMAIN_VIRT_HVF, > + hvf_machines[i][j], > + NULL, > + NULL, > + 0, > + false, > + false, > + true, > + defaultRAMid, > + false); > + virQEMUCapsSet(tmpCaps, QEMU_CAPS_HVF); > + } > + } > } IIUC this means in tests we're going to build capabilities that indicate support for KVM and HVF at the same time. This is not a scenario that applies in the real world, so I'm a little uncomfortable with this. It is the simple option, though I would prefer if the individual tests could express "gimme capabilities for linux" vs "gimme capabilities for macOS" Also relies on fact that we don't #ifdef any of the interesting code in the QEMU driver related to KVM/HVF. Probably ok-ish assumption in most cases, at least for unit tests. Regards, Daniel -- |: https://berrange.com -o- https://www.flickr.com/photos/dberrange :| |: https://libvirt.org -o- https://fstop138.berrange.com :| |: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|