This allows individual driver tests to hook in their own code before
the def is formatted and compared.
We will eventually use this in the qemuxml2xml
---
tests/bhyvexml2xmltest.c | 3 ++-
tests/genericxml2xmltest.c | 3 ++-
tests/lxcxml2xmltest.c | 3 ++-
tests/qemuxml2xmltest.c | 6 ++++--
tests/testutils.c | 7 ++++++-
tests/testutils.h | 6 +++++-
6 files changed, 21 insertions(+), 7 deletions(-)
diff --git a/tests/bhyvexml2xmltest.c b/tests/bhyvexml2xmltest.c
index d860a41..2d34a00 100644
--- a/tests/bhyvexml2xmltest.c
+++ b/tests/bhyvexml2xmltest.c
@@ -32,7 +32,8 @@ testCompareXMLToXMLHelper(const void *data)
ret = testCompareDomXML2XMLFiles(driver.caps, driver.xmlopt, xml_in,
info->different ? xml_out : xml_in,
- false);
+ false,
+ NULL, NULL);
cleanup:
VIR_FREE(xml_in);
diff --git a/tests/genericxml2xmltest.c b/tests/genericxml2xmltest.c
index 7f79896..aa3a570 100644
--- a/tests/genericxml2xmltest.c
+++ b/tests/genericxml2xmltest.c
@@ -39,7 +39,8 @@ testCompareXMLToXMLHelper(const void *data)
ret = testCompareDomXML2XMLFiles(caps, xmlopt, xml_in,
info->different ? xml_out : xml_in,
- !info->inactive_only);
+ !info->inactive_only,
+ NULL, NULL);
cleanup:
VIR_FREE(xml_in);
VIR_FREE(xml_out);
diff --git a/tests/lxcxml2xmltest.c b/tests/lxcxml2xmltest.c
index e460d0a..aafebb4 100644
--- a/tests/lxcxml2xmltest.c
+++ b/tests/lxcxml2xmltest.c
@@ -44,7 +44,8 @@ testCompareXMLToXMLHelper(const void *data)
ret = testCompareDomXML2XMLFiles(caps, xmlopt, xml_in,
info->different ? xml_out : xml_in,
- !info->inactive_only);
+ !info->inactive_only,
+ NULL, NULL);
cleanup:
VIR_FREE(xml_in);
VIR_FREE(xml_out);
diff --git a/tests/qemuxml2xmltest.c b/tests/qemuxml2xmltest.c
index d4e94f0..e3b61c0 100644
--- a/tests/qemuxml2xmltest.c
+++ b/tests/qemuxml2xmltest.c
@@ -42,7 +42,8 @@ testXML2XMLActive(const void *opaque)
const struct testInfo *info = opaque;
return testCompareDomXML2XMLFiles(driver.caps, driver.xmlopt,
- info->inName, info->outActiveName, true);
+ info->inName, info->outActiveName, true,
+ NULL, NULL);
}
@@ -52,7 +53,8 @@ testXML2XMLInactive(const void *opaque)
const struct testInfo *info = opaque;
return testCompareDomXML2XMLFiles(driver.caps, driver.xmlopt, info->inName,
- info->outInactiveName, false);
+ info->outInactiveName, false,
+ NULL, NULL);
}
diff --git a/tests/testutils.c b/tests/testutils.c
index 506eee7..c4f1616 100644
--- a/tests/testutils.c
+++ b/tests/testutils.c
@@ -1097,7 +1097,9 @@ virDomainXMLOptionPtr virTestGenericDomainXMLConfInit(void)
int
testCompareDomXML2XMLFiles(virCapsPtr caps, virDomainXMLOptionPtr xmlopt,
- const char *infile, const char *outfile, bool live)
+ const char *infile, const char *outfile, bool live,
+ testCompareDomXML2XMLPreFormatCallback cb,
+ const void *opaque)
{
char *actual = NULL;
int ret = -1;
@@ -1115,6 +1117,9 @@ testCompareDomXML2XMLFiles(virCapsPtr caps, virDomainXMLOptionPtr
xmlopt,
goto fail;
}
+ if (cb && cb(def, opaque) < 0)
+ goto fail;
+
if (!(actual = virDomainDefFormat(def, caps, format_flags)))
goto fail;
diff --git a/tests/testutils.h b/tests/testutils.h
index b1d7397..df2b2a6 100644
--- a/tests/testutils.h
+++ b/tests/testutils.h
@@ -137,10 +137,14 @@ int virtTestMain(int argc,
virCapsPtr virTestGenericCapsInit(void);
virDomainXMLOptionPtr virTestGenericDomainXMLConfInit(void);
+typedef int (*testCompareDomXML2XMLPreFormatCallback)(virDomainDefPtr def,
+ const void *opaque);
int testCompareDomXML2XMLFiles(virCapsPtr caps,
virDomainXMLOptionPtr xmlopt,
const char *inxml,
const char *outfile,
- bool live);
+ bool live,
+ testCompareDomXML2XMLPreFormatCallback cb,
+ const void *opaque);
#endif /* __VIT_TEST_UTILS_H__ */
--
2.5.0