[libvirt PATCH 10/21] tests: Use glib memory function in testConfRoundTrip
Ján Tomko
jtomko at redhat.com
Fri Sep 11 16:01:18 UTC 2020
On a Friday in 2020, Tim Wiederhake wrote:
>This also fixes a (hypothetical) bug where testConfRoundTrip would return 0 if
>virConfWriteMem() returned 0 and virTestCompareToFile failed.
>
The bug is not hypothetical, it renders all the tests using testConfRoundTrip
useless since they always pass even if the functionality they're
supposed to be testing give a different output.
Since it's a real bug, I think it deserves a separate commit.
>Signed-off-by: Tim Wiederhake <twiederh at redhat.com>
>---
> tests/virconftest.c | 29 ++++++++++-------------------
> 1 file changed, 10 insertions(+), 19 deletions(-)
>
>diff --git a/tests/virconftest.c b/tests/virconftest.c
>index ab29b5b712..c683344f49 100644
>--- a/tests/virconftest.c
>+++ b/tests/virconftest.c
>@@ -32,40 +32,31 @@
> static int testConfRoundTrip(const void *opaque)
> {
> const char *name = opaque;
>- int ret = -1;
> g_autoptr(virConf) conf = NULL;
> int len = 10000;
>- char *buffer = NULL;
>- char *srcfile = NULL;
>- char *dstfile = NULL;
>+ g_autofree char *buffer = NULL;
>+ g_autofree char *srcfile = NULL;
>+ g_autofree char *dstfile = NULL;
>
> srcfile = g_strdup_printf("%s/virconfdata/%s.conf", abs_srcdir, name);
> dstfile = g_strdup_printf("%s/virconfdata/%s.out", abs_srcdir, name);
>
>- if (VIR_ALLOC_N_QUIET(buffer, len) < 0) {
>- fprintf(stderr, "out of memory\n");
>- goto cleanup;
>- }
>+ buffer = g_new0(char, len);
> conf = virConfReadFile(srcfile, 0);
> if (conf == NULL) {
> fprintf(stderr, "Failed to process %s\n", srcfile);
>- goto cleanup;
>+ return -1;
> }
>- ret = virConfWriteMem(buffer, &len, conf);
>- if (ret < 0) {
>+
>+ if (virConfWriteMem(buffer, &len, conf) < 0) {
With this change separated.
Reviewed-by: Ján Tomko <jtomko at redhat.com>
Jano
> fprintf(stderr, "Failed to serialize %s back\n", srcfile);
>- goto cleanup;
>+ return -1;
> }
>
> if (virTestCompareToFile(buffer, dstfile) < 0)
>- goto cleanup;
>+ return -1;
>
>- ret = 0;
>- cleanup:
>- VIR_FREE(srcfile);
>- VIR_FREE(dstfile);
>- VIR_FREE(buffer);
>- return ret;
>+ return 0;
> }
>
>
>--
>2.26.2
>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 488 bytes
Desc: not available
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20200911/eefbb915/attachment-0001.sig>
More information about the libvir-list
mailing list