tests: Add support for multiple variants of data for the same qemu version+architecture

'qemucapabilitiestest' and other users of the capability data can
benefit from adding a discriminator string to have multiple instances
for the same version+architecture tuple.

This will in the future allow us to have specific capability versions
for test cases which require a specific host feature or are based on a
different operating system.

Add the basic skeleton for parsing the variant string and passing it
around into test cases.

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:
Peter Krempa
2023-03-08 14:49:56 +01:00
parent 36a735c553
commit 2102a31bc2
7 changed files with 55 additions and 11 deletions

View File

@@ -39,6 +39,7 @@ struct _testQemuData {
const char *prefix;
const char *version;
const char *archName;
const char *variant;
const char *suffix;
int ret;
};
@@ -78,12 +79,12 @@ testQemuCaps(const void *opaque)
unsigned int fakeMicrocodeVersion = 0;
const char *p;
repliesFile = g_strdup_printf("%s/%s_%s_%s.%s",
repliesFile = g_strdup_printf("%s/%s_%s_%s%s.%s",
data->inputDir, data->prefix, data->version,
data->archName, data->suffix);
capsFile = g_strdup_printf("%s/%s_%s_%s.xml",
data->archName, data->variant, data->suffix);
capsFile = g_strdup_printf("%s/%s_%s_%s%s.xml",
data->outputDir, data->prefix, data->version,
data->archName);
data->archName, data->variant);
if (!(mon = qemuMonitorTestNewFromFileFull(repliesFile, &data->driver, NULL,
NULL)))
@@ -142,9 +143,9 @@ testQemuCapsCopy(const void *opaque)
g_autoptr(virQEMUCaps) copy = NULL;
g_autofree char *actual = NULL;
capsFile = g_strdup_printf("%s/%s_%s_%s.xml",
capsFile = g_strdup_printf("%s/%s_%s_%s%s.xml",
data->outputDir, data->prefix, data->version,
data->archName);
data->archName, data->variant);
if (!(orig = qemuTestParseCapabilitiesArch(
virArchFromString(data->archName), capsFile)))
@@ -167,6 +168,7 @@ doCapsTest(const char *inputDir,
const char *prefix,
const char *version,
const char *archName,
const char *variant,
const char *suffix,
void *opaque)
{
@@ -181,6 +183,7 @@ doCapsTest(const char *inputDir,
data->prefix = prefix;
data->version = version;
data->archName = archName;
data->variant = variant,
data->suffix = suffix;
if (virTestRun(title, testQemuCaps, data) < 0)