vboxsnapshotxmltest: Don't write to a file in abs_srcdir

In the test, the snapshot XML is written into a file that's located
under:

  abs_srcdir/vboxsnapshotxmldata/testResult.vbox

However, the abs_srcdir doesn't have to be necessarily writable. It
should have been abs_builddir instead. Moreover, the label in the func
creating the file is called 'fail' while it fulfils the duty of
'cleanup' label.

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
This commit is contained in:
Michal Privoznik 2014-07-01 15:23:36 +02:00
parent e5f5805f62
commit 7315189ec0
1 changed files with 16 additions and 13 deletions

View File

@ -59,38 +59,41 @@ testCompareXMLtoXMLFiles(const char *xml)
char *pathResult = NULL;
int ret = -1;
virVBoxSnapshotConfMachinePtr machine = NULL;
if (virAsprintf(&pathResult, "%s/vboxsnapshotxmldata/testResult.vbox",
abs_srcdir) < 0)
if (VIR_STRDUP(pathResult,
abs_builddir "/vboxsnapshotxmldata/testResult.vbox") < 0)
return -1;
if (virFileMakePath(abs_builddir "/vboxsnapshotxmldata") < 0)
goto cleanup;
if (virtTestLoadFile(xml, &xmlData) < 0)
goto fail;
goto cleanup;
if (!(machine = virVBoxSnapshotConfLoadVboxFile(xml, (char*)"")))
goto fail;
goto cleanup;
if (virVBoxSnapshotConfSaveVboxFile(machine, pathResult) < 0)
goto fail;
goto cleanup;
if (virtTestLoadFile(pathResult, &actual) < 0)
goto fail;
if (unlink(pathResult) < 0)
goto fail;
goto cleanup;
if (!(actual = testFilterXML(actual)))
goto fail;
goto cleanup;
if (!(xmlData = testFilterXML(xmlData)))
goto fail;
goto cleanup;
if (STRNEQ(actual, xmlData)) {
virtTestDifference(stderr, xmlData, actual);
goto fail;
goto cleanup;
}
ret = 0;
fail:
cleanup:
unlink(pathResult);
rmdir(abs_builddir "/vboxsnapshotxmldata");
VIR_FREE(xmlData);
VIR_FREE(actual);
virVBoxSnapshotConfMachineFree(machine);