From 8e0fd243f8801efcae071b460e65b8241879e0c9 Mon Sep 17 00:00:00 2001 From: Cole Robinson Date: Wed, 27 Jan 2016 15:55:01 -0500 Subject: [PATCH] tests: utils: Add PreFormat callback for CompareXML2XML helper 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 d860a41dd3..2d34a00fec 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 7f7989686f..aa3a570854 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 e460d0af21..aafebb4da8 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 d4e94f0cfe..e3b61c0dff 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 506eee7743..c4f16165ac 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 b1d7397c8a..df2b2a6667 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__ */ -- GitLab