[libvirt] [PATCH for 1.2.6] vboxsnapshotxmltest: Don't write to a file in abs_srcdir
Martin Kletzander
mkletzan at redhat.com
Tue Jul 1 14:21:03 UTC 2014
On Tue, Jul 01, 2014 at 03:28:49PM +0200, Michal Privoznik wrote:
>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 at redhat.com>
>---
> tests/vboxsnapshotxmltest.c | 27 ++++++++++++++++-----------
> 1 file changed, 16 insertions(+), 11 deletions(-)
>
>diff --git a/tests/vboxsnapshotxmltest.c b/tests/vboxsnapshotxmltest.c
>index 7795688..85ef96a 100644
>--- a/tests/vboxsnapshotxmltest.c
>+++ b/tests/vboxsnapshotxmltest.c
>@@ -59,42 +59,47 @@ 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;
>+ goto cleanup;
>
> if (unlink(pathResult) < 0)
>- goto fail;
>+ goto cleanup;
>
This unlink should be done in the clean-up as well, otherwise rmdir()
won't remove the directory in case the test fails for example in
virtTestLoadFile().
ACK with that changed.
Martin
> 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:
> VIR_FREE(xmlData);
> VIR_FREE(actual);
> virVBoxSnapshotConfMachineFree(machine);
> VIR_FREE(pathResult);
>+ rmdir(abs_builddir "/vboxsnapshotxmldata");
>
> return ret;
> }
>--
>1.8.5.5
>
>--
>libvir-list mailing list
>libvir-list at redhat.com
>https://www.redhat.com/mailman/listinfo/libvir-list
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: Digital signature
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20140701/07e84de2/attachment-0001.sig>
More information about the libvir-list
mailing list