]> xenbits.xensource.com Git - libvirt.git/commitdiff
tests: Share domain XML2XML compare helper
authorCole Robinson <crobinso@redhat.com>
Fri, 8 Jan 2016 20:55:44 +0000 (15:55 -0500)
committerCole Robinson <crobinso@redhat.com>
Sat, 9 Jan 2016 02:21:34 +0000 (21:21 -0500)
This creates a shared function in testutils.c that consolidates all
the slightly different implementations.

tests/bhyvexml2xmltest.c
tests/lxcxml2xmltest.c
tests/qemuxml2xmltest.c
tests/testutils.c
tests/testutils.h

index 826baea4031e093bdfb23f569df13819775b2b12..d860a41dd31f131efcc4d28c5ba44b37cb15b65f 100644 (file)
 
 static bhyveConn driver;
 
-static int
-testCompareXMLToXMLFiles(const char *inxml, const char *outxml)
-{
-    char *actual = NULL;
-    virDomainDefPtr def = NULL;
-    int ret = -1;
-
-    if (!(def = virDomainDefParseFile(inxml, driver.caps, driver.xmlopt,
-                                      VIR_DOMAIN_DEF_PARSE_INACTIVE)))
-        goto fail;
-
-    if (!(actual = virDomainDefFormat(def, VIR_DOMAIN_DEF_FORMAT_INACTIVE)))
-        goto fail;
-
-    if (virtTestCompareToFile(actual, outxml) < 0)
-        goto fail;
-
-    ret = 0;
-
- fail:
-    VIR_FREE(actual);
-    virDomainDefFree(def);
-    return ret;
-}
-
 struct testInfo {
     const char *name;
     bool different;
@@ -55,8 +30,9 @@ testCompareXMLToXMLHelper(const void *data)
                     abs_srcdir, info->name) < 0)
         goto cleanup;
 
-    ret = testCompareXMLToXMLFiles(xml_in,
-                                   info->different ? xml_out : xml_in);
+    ret = testCompareDomXML2XMLFiles(driver.caps, driver.xmlopt, xml_in,
+                                     info->different ? xml_out : xml_in,
+                                     false);
 
  cleanup:
     VIR_FREE(xml_in);
index 8d824b9bcf2dbfc1fa6f39a49e5eeb21246b286c..e460d0af21d238e137a13df4b376e64e15297250 100644 (file)
 static virCapsPtr caps;
 static virDomainXMLOptionPtr xmlopt;
 
-static int
-testCompareXMLToXMLFiles(const char *inxml, const char *outxml, bool live)
-{
-    char *actual = NULL;
-    int ret = -1;
-    virDomainDefPtr def = NULL;
-
-    if (!(def = virDomainDefParseFile(inxml, caps, xmlopt,
-                                      live ? 0 : VIR_DOMAIN_DEF_PARSE_INACTIVE)))
-        goto fail;
-
-    if (!virDomainDefCheckABIStability(def, def)) {
-        fprintf(stderr, "ABI stability check failed on %s", inxml);
-        goto fail;
-    }
-
-    if (!(actual = virDomainDefFormat(def, VIR_DOMAIN_DEF_FORMAT_SECURE)))
-        goto fail;
-
-    if (virtTestCompareToFile(actual, outxml) < 0)
-        goto fail;
-
-    ret = 0;
- fail:
-    VIR_FREE(actual);
-    virDomainDefFree(def);
-    return ret;
-}
-
 struct testInfo {
     const char *name;
     int different;
@@ -71,24 +42,9 @@ testCompareXMLToXMLHelper(const void *data)
                     abs_srcdir, info->name) < 0)
         goto cleanup;
 
-    if (info->different) {
-        if (testCompareXMLToXMLFiles(xml_in, xml_out, false) < 0)
-            goto cleanup;
-    } else {
-        if (testCompareXMLToXMLFiles(xml_in, xml_in, false) < 0)
-            goto cleanup;
-    }
-    if (!info->inactive_only) {
-        if (info->different) {
-            if (testCompareXMLToXMLFiles(xml_in, xml_out, true) < 0)
-                goto cleanup;
-        } else {
-            if (testCompareXMLToXMLFiles(xml_in, xml_in, true) < 0)
-                goto cleanup;
-        }
-    }
-
-    ret = 0;
+    ret = testCompareDomXML2XMLFiles(caps, xmlopt, xml_in,
+                                     info->different ? xml_out : xml_in,
+                                     !info->inactive_only);
  cleanup:
     VIR_FREE(xml_in);
     VIR_FREE(xml_out);
index d65418265f201892f62cd307cb30b5fd118d6b52..312bb53eacdc1e633d7a966f092ad0864d5e62d0 100644 (file)
@@ -39,57 +39,13 @@ struct testInfo {
     char *outInactiveFile;
 };
 
-static int
-testXML2XMLHelper(const char *inxml,
-                  const char *inXmlData,
-                  const char *outxml,
-                  const char *outXmlData,
-                  bool live)
-{
-    char *actual = NULL;
-    int ret = -1;
-    virDomainDefPtr def = NULL;
-    unsigned int parse_flags = live ? 0 : VIR_DOMAIN_DEF_PARSE_INACTIVE;
-    unsigned int format_flags = VIR_DOMAIN_DEF_FORMAT_SECURE;
-    if (!live)
-        format_flags |= VIR_DOMAIN_DEF_FORMAT_INACTIVE;
-
-    if (!(def = virDomainDefParseString(inXmlData, driver.caps, driver.xmlopt,
-                                        parse_flags)))
-        goto fail;
-
-    if (!virDomainDefCheckABIStability(def, def)) {
-        VIR_TEST_DEBUG("ABI stability check failed on %s", inxml);
-        goto fail;
-    }
-
-    if (!(actual = virDomainDefFormat(def, format_flags)))
-        goto fail;
-
-    if (STRNEQ(outXmlData, actual)) {
-        virtTestDifferenceFull(stderr, outXmlData, outxml, actual, inxml);
-        goto fail;
-    }
-
-    ret = 0;
-
- fail:
-    VIR_FREE(actual);
-    virDomainDefFree(def);
-    return ret;
-}
-
-
 static int
 testXML2XMLActive(const void *opaque)
 {
     const struct testInfo *info = opaque;
 
-    return testXML2XMLHelper(info->inName,
-                             info->inFile,
-                             info->outActiveName,
-                             info->outActiveFile,
-                             true);
+    return testCompareDomXML2XMLFiles(driver.caps, driver.xmlopt,
+                                      info->inName, info->outActiveName, true);
 }
 
 
@@ -98,11 +54,8 @@ testXML2XMLInactive(const void *opaque)
 {
     const struct testInfo *info = opaque;
 
-    return testXML2XMLHelper(info->inName,
-                             info->inFile,
-                             info->outInactiveName,
-                             info->outInactiveFile,
-                             false);
+    return testCompareDomXML2XMLFiles(driver.caps, driver.xmlopt, info->inName,
+                                      info->outInactiveName, false);
 }
 
 
index 0091fcd432a761c42aadb98672527d6905b29131..4ffea0c4ad9386471437b961b4d97f49ffd793ab 100644 (file)
@@ -1072,6 +1072,40 @@ virDomainXMLOptionPtr virTestGenericDomainXMLConfInit(void)
 }
 
 
+int
+testCompareDomXML2XMLFiles(virCapsPtr caps, virDomainXMLOptionPtr xmlopt,
+                           const char *infile, const char *outfile, bool live)
+{
+    char *actual = NULL;
+    int ret = -1;
+    virDomainDefPtr def = NULL;
+    unsigned int parse_flags = live ? 0 : VIR_DOMAIN_DEF_PARSE_INACTIVE;
+    unsigned int format_flags = VIR_DOMAIN_DEF_FORMAT_SECURE;
+    if (!live)
+        format_flags |= VIR_DOMAIN_DEF_FORMAT_INACTIVE;
+
+    if (!(def = virDomainDefParseFile(infile, caps, xmlopt, parse_flags)))
+        goto fail;
+
+    if (!virDomainDefCheckABIStability(def, def)) {
+        VIR_TEST_DEBUG("ABI stability check failed on %s", infile);
+        goto fail;
+    }
+
+    if (!(actual = virDomainDefFormat(def, format_flags)))
+        goto fail;
+
+    if (virtTestCompareToFile(actual, outfile) < 0)
+        goto fail;
+
+    ret = 0;
+ fail:
+    VIR_FREE(actual);
+    virDomainDefFree(def);
+    return ret;
+}
+
+
 static int virtTestCounter;
 static char virtTestCounterStr[128];
 static char *virtTestCounterPrefixEndOffset;
index 3bd90044a873a1c38a1a4463b1b98edae380b586..b1d7397c8aac01352ebcfab2aa6f5c56649c2849 100644 (file)
@@ -137,4 +137,10 @@ int virtTestMain(int argc,
 virCapsPtr virTestGenericCapsInit(void);
 virDomainXMLOptionPtr virTestGenericDomainXMLConfInit(void);
 
+int testCompareDomXML2XMLFiles(virCapsPtr caps,
+                               virDomainXMLOptionPtr xmlopt,
+                               const char *inxml,
+                               const char *outfile,
+                               bool live);
+
 #endif /* __VIT_TEST_UTILS_H__ */