info->args.capsver = va_arg(argptr, char *);
break;
+ case ARG_CAPS_VARIANT:
+ info->args.capsvariant = va_arg(argptr, char *);
+ break;
+
case ARG_CAPS_HOST_CPU_MODEL:
info->args.capsHostCPUModel = va_arg(argptr, int);
break;
info->args.newargs = false;
+ if (!info->args.capsvariant)
+ info->args.capsvariant = "";
+
if (info->args.invalidarg) {
fprintf(stderr, "Invalid argument encountered by 'testQemuInfoSetArgs'\n");
return -1;
info->arch = virArchFromString(info->args.capsarch);
if (STREQ(info->args.capsver, "latest")) {
- struct testQemuCapsFile *f = g_hash_table_lookup(info->conf->capslatest, info->args.capsarch);
+ g_autofree char *archvariant = g_strdup_printf("%s%s", info->args.capsarch, info->args.capsvariant);
+ struct testQemuCapsFile *f = g_hash_table_lookup(info->conf->capslatest, archvariant);
if (!f) {
fprintf(stderr, "'latest' caps for '%s' were not found\n", info->args.capsarch);
capsfile = g_strdup(f->path);
stripmachinealiases = true;
} else {
- capsfile = g_strdup_printf("%s/caps_%s_%s.xml",
+ capsfile = g_strdup_printf("%s/caps_%s_%s%s.xml",
TEST_QEMU_CAPS_PATH,
info->args.capsver,
- info->args.capsarch);
+ info->args.capsarch,
+ info->args.capsvariant);
}
if (!g_hash_table_lookup_extended(info->conf->capscache, capsfile, NULL, (void **) &cachedcaps)) {