qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH v2 08/11] tests/9pfs: introduce local tests


From: Daniel P . Berrangé
Subject: Re: [PATCH v2 08/11] tests/9pfs: introduce local tests
Date: Fri, 2 Oct 2020 15:35:35 +0100
User-agent: Mutt/1.14.6 (2020-07-11)

On Fri, Oct 02, 2020 at 04:26:48PM +0200, Christian Schoenebeck wrote:
> On Freitag, 2. Oktober 2020 13:51:54 CEST Christian Schoenebeck wrote:
> > This patch introduces 9pfs test cases using the 9pfs 'local'
> > filesystem driver which reads/writes/creates/deletes real files
> > and directories.
> > 
> > In this initial version, there is only one local test which actually
> > only checks if the 9pfs 'local' device was created successfully.
> > 
> > Before the 9pfs 'local' tests are run, a test directory 'qtest-9p-local'
> > is created (with world rwx permissions) under the current working
> > directory. At this point that test directory is not auto deleted yet.
> > 
> > Signed-off-by: Christian Schoenebeck <qemu_oss@crudebyte.com>
> > ---
> >  tests/qtest/libqos/virtio-9p.c | 100 +++++++++++++++++++++++++++++++++
> >  tests/qtest/libqos/virtio-9p.h |   5 ++
> >  tests/qtest/virtio-9p-test.c   |  44 ++++++++++-----
> >  3 files changed, 135 insertions(+), 14 deletions(-)
> > 
> > diff --git a/tests/qtest/libqos/virtio-9p.c b/tests/qtest/libqos/virtio-9p.c
> > index 2e300063e3..86e40e5d56 100644
> > --- a/tests/qtest/libqos/virtio-9p.c
> > +++ b/tests/qtest/libqos/virtio-9p.c
> > @@ -24,6 +24,63 @@
> >  #include "qgraph.h"
> > 
> >  static QGuestAllocator *alloc;
> > +static char *local_test_path;
> > +
> > +static char *strpr(const char* format, ...) GCC_FMT_ATTR(1, 2);
> > +
> > +/* Concatenates the passed 2 pathes. Returned result must be freed. */
> > +static char *concat_path(const char* a, const char* b)
> > +{
> > +    const int len = strlen(a) + strlen("/") + strlen(b);
> > +    char *path = g_malloc0(len + 1);
> > +    snprintf(path, len + 1, "%s/%s", a, b);
> > +    g_assert(strlen(path) == len);
> > +    return path;
> > +}
> 
> Ok, but maybe I could make that concat_path() function wrap g_strconcat().

Or even one of g_build_path or g_build_filename may be useful

> > +/*
> > + * Lazy sprintf() implementation which auto allocates buffer. Returned
> > result + * must be freed.
> > + */
> > +static char *strpr(const char* format, ...)
> > +{
> > +    va_list argp;
> > +
> > +    va_start(argp, format);
> > +    const int sz = vsnprintf(NULL, 0, format, argp) + 1;
> > +    va_end(argp);
> > +
> > +    g_assert(sz > 0);
> > +    char *s = g_malloc0(sz);
> > +
> > +    va_start(argp, format);
> > +    const int len = vsnprintf(s, sz, format, argp);
> > +    va_end(argp);
> > +
> > +    g_assert(len + 1 == sz);
> > +    return s;
> > +}
> 
> And this strpr() function entirely be replaced by g_strdup_printf().

Yep, its preferrable to use g_strdup_printf instead of manually
allocating.

Regards,
Daniel
-- 
|: https://berrange.com      -o-    https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org         -o-            https://fstop138.berrange.com :|
|: https://entangle-photo.org    -o-    https://www.instagram.com/dberrange :|




reply via email to

[Prev in Thread] Current Thread [Next in Thread]