mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-01-22 04:25:18 +00:00
testutilsqemu: Add support for specifying the variant for qemuxml2(argv|xml)test
Add the possibility to control the variant of the test data for real caps testing in qemuxml2argvtest and qemuxml2xmltest. Signed-off-by: Peter Krempa <pkrempa@redhat.com> Reviewed-by: Martin Kletzander <mkletzan@redhat.com> Reviewed-by: Ján Tomko <jtomko@redhat.com>
This commit is contained in:
parent
12aedb4145
commit
87474f1d1f
@ -943,6 +943,10 @@ testQemuInfoSetArgs(struct testQemuInfo *info,
|
|||||||
info->args.capsver = va_arg(argptr, char *);
|
info->args.capsver = va_arg(argptr, char *);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case ARG_CAPS_VARIANT:
|
||||||
|
info->args.capsvariant = va_arg(argptr, char *);
|
||||||
|
break;
|
||||||
|
|
||||||
case ARG_CAPS_HOST_CPU_MODEL:
|
case ARG_CAPS_HOST_CPU_MODEL:
|
||||||
info->args.capsHostCPUModel = va_arg(argptr, int);
|
info->args.capsHostCPUModel = va_arg(argptr, int);
|
||||||
break;
|
break;
|
||||||
@ -1008,6 +1012,9 @@ testQemuInfoInitArgs(struct testQemuInfo *info)
|
|||||||
|
|
||||||
info->args.newargs = false;
|
info->args.newargs = false;
|
||||||
|
|
||||||
|
if (!info->args.capsvariant)
|
||||||
|
info->args.capsvariant = "";
|
||||||
|
|
||||||
if (info->args.invalidarg) {
|
if (info->args.invalidarg) {
|
||||||
fprintf(stderr, "Invalid argument encountered by 'testQemuInfoSetArgs'\n");
|
fprintf(stderr, "Invalid argument encountered by 'testQemuInfoSetArgs'\n");
|
||||||
return -1;
|
return -1;
|
||||||
@ -1025,7 +1032,8 @@ testQemuInfoInitArgs(struct testQemuInfo *info)
|
|||||||
info->arch = virArchFromString(info->args.capsarch);
|
info->arch = virArchFromString(info->args.capsarch);
|
||||||
|
|
||||||
if (STREQ(info->args.capsver, "latest")) {
|
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) {
|
if (!f) {
|
||||||
fprintf(stderr, "'latest' caps for '%s' were not found\n", info->args.capsarch);
|
fprintf(stderr, "'latest' caps for '%s' were not found\n", info->args.capsarch);
|
||||||
@ -1035,10 +1043,11 @@ testQemuInfoInitArgs(struct testQemuInfo *info)
|
|||||||
capsfile = g_strdup(f->path);
|
capsfile = g_strdup(f->path);
|
||||||
stripmachinealiases = true;
|
stripmachinealiases = true;
|
||||||
} else {
|
} else {
|
||||||
capsfile = g_strdup_printf("%s/caps_%s_%s.xml",
|
capsfile = g_strdup_printf("%s/caps_%s_%s%s.xml",
|
||||||
TEST_QEMU_CAPS_PATH,
|
TEST_QEMU_CAPS_PATH,
|
||||||
info->args.capsver,
|
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)) {
|
if (!g_hash_table_lookup_extended(info->conf->capscache, capsfile, NULL, (void **) &cachedcaps)) {
|
||||||
|
@ -51,6 +51,7 @@ typedef enum {
|
|||||||
ARG_PARSEFLAGS,
|
ARG_PARSEFLAGS,
|
||||||
ARG_CAPS_ARCH,
|
ARG_CAPS_ARCH,
|
||||||
ARG_CAPS_VER,
|
ARG_CAPS_VER,
|
||||||
|
ARG_CAPS_VARIANT,
|
||||||
ARG_CAPS_HOST_CPU_MODEL,
|
ARG_CAPS_HOST_CPU_MODEL,
|
||||||
ARG_HOST_OS,
|
ARG_HOST_OS,
|
||||||
ARG_FD_GROUP, /* name, nfds, fd[0], ... fd[n-1] */
|
ARG_FD_GROUP, /* name, nfds, fd[0], ... fd[n-1] */
|
||||||
@ -86,6 +87,7 @@ struct testQemuArgs {
|
|||||||
virBitmap *fakeCapsDel;
|
virBitmap *fakeCapsDel;
|
||||||
char *capsver;
|
char *capsver;
|
||||||
char *capsarch;
|
char *capsarch;
|
||||||
|
const char *capsvariant;
|
||||||
qemuTestCPUDef capsHostCPUModel;
|
qemuTestCPUDef capsHostCPUModel;
|
||||||
int gic;
|
int gic;
|
||||||
testQemuHostOS hostOS;
|
testQemuHostOS hostOS;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user