tests: fix use of fixedcontent variable

Commit 8563560026 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.
This commit is contained in:
Laine Stump 2016-09-19 13:44:21 -04:00
parent 381b9d0b0a
commit 4e2d642afb

View 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;
}