return 0;
}
+static void
+testUpdateQEMUCapsHostCPUModel(virQEMUCaps *qemuCaps, virArch hostArch)
+{
+ virQEMUCapsUpdateHostCPUModel(qemuCaps, hostArch, VIR_DOMAIN_VIRT_KVM);
+ virQEMUCapsUpdateHostCPUModel(qemuCaps, hostArch, VIR_DOMAIN_VIRT_QEMU);
+}
static int
testUpdateQEMUCaps(const struct testQemuInfo *info,
!!(info->flags & FLAG_SKIP_LEGACY_CPUS)) < 0)
return -1;
- virQEMUCapsUpdateHostCPUModel(info->qemuCaps, caps->host.arch,
- VIR_DOMAIN_VIRT_KVM);
- virQEMUCapsUpdateHostCPUModel(info->qemuCaps, caps->host.arch,
- VIR_DOMAIN_VIRT_QEMU);
+ testUpdateQEMUCapsHostCPUModel(info->qemuCaps, caps->host.arch);
return 0;
}
if (info->arch != VIR_ARCH_NONE && info->arch != VIR_ARCH_X86_64)
qemuTestSetHostArch(&driver, info->arch);
+ if (info->args.capsHostCPUModel) {
+ virCPUDef *hostCPUModel = qemuTestGetCPUDef(info->args.capsHostCPUModel);
+
+ qemuTestSetHostCPU(&driver, driver.hostarch, hostCPUModel);
+ testUpdateQEMUCapsHostCPUModel(info->qemuCaps, driver.hostarch);
+ }
+
if (!(conn = virGetConnect()))
goto cleanup;
info->args.capsver = va_arg(argptr, char *);
break;
+ case ARG_CAPS_HOST_CPU_MODEL:
+ info->args.capsHostCPUModel = va_arg(argptr, int);
+ break;
+
case ARG_HOST_OS:
info->args.hostOS = va_arg(argptr, int);
break;
ARG_PARSEFLAGS,
ARG_CAPS_ARCH,
ARG_CAPS_VER,
+ ARG_CAPS_HOST_CPU_MODEL,
ARG_HOST_OS,
ARG_END,
} testQemuInfoArgName;
GHashTable *qapiSchemaCache;
};
+typedef enum {
+ QEMU_CPU_DEF_DEFAULT,
+ QEMU_CPU_DEF_HASWELL,
+ QEMU_CPU_DEF_POWER8,
+ QEMU_CPU_DEF_POWER9,
+} qemuTestCPUDef;
+
struct testQemuArgs {
bool newargs;
virQEMUCaps *fakeCaps;
bool fakeCapsUsed;
char *capsver;
char *capsarch;
+ qemuTestCPUDef capsHostCPUModel;
int gic;
testQemuHostOS hostOS;
bool invalidarg;
virQEMUCaps *qemuTestParseCapabilitiesArch(virArch arch,
const char *capsFile);
-
-
-typedef enum {
- QEMU_CPU_DEF_DEFAULT,
- QEMU_CPU_DEF_HASWELL,
- QEMU_CPU_DEF_POWER8,
- QEMU_CPU_DEF_POWER9,
-} qemuTestCPUDef;
-
virCPUDef *qemuTestGetCPUDef(qemuTestCPUDef d);
void qemuTestSetHostArch(virQEMUDriver *driver,