]> xenbits.xensource.com Git - libvirt.git/commitdiff
tests: fix use of fixedcontent variable
authorLaine Stump <laine@laine.org>
Mon, 19 Sep 2016 17:44:21 +0000 (13:44 -0400)
committerLaine Stump <laine@laine.org>
Mon, 19 Sep 2016 21:22:26 +0000 (17:22 -0400)
Commit 8563560026d192c2cf047b550ffd468692245ed6 switched from
hardcoded use of strcontent to hardcoded use of fixedcontent
(fixedcontent is *sometimes* a copy of strcontent with a \n
appended). This was a problem because sometimes fixedcontent is *not*
a copy of strcontent, but is instead NULL, leading to the regenerated
test case output being a 0 length file.

This patch creates a new const char *cmpcontent initialized to
strcontent, but changed to fixedcontent if/when fixedcontent is
created, then always uses cmpcontent instead of (str|fixed)content.

tests/testutils.c

index f87628edee68aeb45e44b575f892288b91a27eea..c934785033c2045bff38cc14d2b6405008ed56b5 100644 (file)
@@ -694,6 +694,7 @@ virTestCompareToFile(const char *strcontent,
     int ret = -1;
     char *filecontent = NULL;
     char *fixedcontent = NULL;
+    const char *cmpcontent = strcontent;
 
     if (virTestLoadFile(filename, &filecontent) < 0 && !virTestGetRegenerate())
         goto failure;
@@ -703,13 +704,13 @@ virTestCompareToFile(const char *strcontent,
         strcontent[strlen(strcontent) - 1] != '\n') {
         if (virAsprintf(&fixedcontent, "%s\n", strcontent) < 0)
             goto failure;
+        cmpcontent = fixedcontent;
     }
 
-    if (STRNEQ_NULLABLE(fixedcontent ? fixedcontent : strcontent,
-                        filecontent)) {
+    if (STRNEQ_NULLABLE(cmpcontent, filecontent)) {
         virTestDifferenceFull(stderr,
                               filecontent, filename,
-                              fixedcontent, NULL);
+                              cmpcontent, NULL);
         goto failure;
     }