[PATCH 16/20] networkxml2xmltest: Store parsed def for future tests

Michal Privoznik via Devel posted 20 patches 4 days, 15 hours ago
[PATCH 16/20] networkxml2xmltest: Store parsed def for future tests
Posted by Michal Privoznik via Devel 4 days, 15 hours ago
From: Michal Privoznik <mprivozn@redhat.com>

Soon, the testRun() will run more than one test case. The input
network XML, however, stays the same. Instead of parsing it and
throwing away immediately, store it temporarily.

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
---
 tests/networkxml2xmltest.c | 12 ++++++++----
 1 file changed, 8 insertions(+), 4 deletions(-)

diff --git a/tests/networkxml2xmltest.c b/tests/networkxml2xmltest.c
index e90b38088a..4a4cf329e4 100644
--- a/tests/networkxml2xmltest.c
+++ b/tests/networkxml2xmltest.c
@@ -27,6 +27,7 @@ struct _testInfo {
     unsigned int flags;
     testCompareNetXML2XMLResult expectResult;
     virNetworkXMLOption *xmlopt; /* borrowed, immutable */
+    virNetworkDef *def;
     char *inxml;
     char *outxml;
 };
@@ -40,6 +41,7 @@ void testInfoFree(testInfo *info)
     if (!info)
         return;
 
+    virNetworkDefFree(info->def);
     VIR_FREE(info->inxml);
     VIR_FREE(info->outxml);
     VIR_FREE(info);
@@ -52,23 +54,23 @@ testCompareXMLToXMLFiles(const void *data)
     g_autofree char *actual = NULL;
     int ret;
     testCompareNetXML2XMLResult result = TEST_COMPARE_NET_XML2XML_RESULT_SUCCESS;
-    g_autoptr(virNetworkDef) dev = NULL;
+    g_autoptr(virNetworkDef) def = NULL;
 
-    if (!(dev = virNetworkDefParse(NULL, info->inxml, info->xmlopt, false))) {
+    if (!(def = virNetworkDefParse(NULL, info->inxml, info->xmlopt, false))) {
         result = TEST_COMPARE_NET_XML2XML_RESULT_FAIL_PARSE;
         goto cleanup;
     }
     if (info->expectResult == TEST_COMPARE_NET_XML2XML_RESULT_FAIL_PARSE)
         goto cleanup;
 
-    if (networkValidateTests(dev) < 0) {
+    if (networkValidateTests(def) < 0) {
         result = TEST_COMPARE_NET_XML2XML_RESULT_FAIL_VALIDATE;
         goto cleanup;
     }
     if (info->expectResult == TEST_COMPARE_NET_XML2XML_RESULT_FAIL_VALIDATE)
         goto cleanup;
 
-    if (!(actual = virNetworkDefFormat(dev, info->xmlopt, info->flags))) {
+    if (!(actual = virNetworkDefFormat(def, info->xmlopt, info->flags))) {
         result = TEST_COMPARE_NET_XML2XML_RESULT_FAIL_FORMAT;
         goto cleanup;
     }
@@ -88,6 +90,8 @@ testCompareXMLToXMLFiles(const void *data)
         if (info->expectResult != TEST_COMPARE_NET_XML2XML_RESULT_SUCCESS) {
             VIR_TEST_DEBUG("Got expected failure code=%d msg=%s",
                            result, virGetLastErrorMessage());
+        } else {
+            info->def = g_steal_pointer(&def);
         }
     } else {
         ret = -1;
-- 
2.52.0