[PATCH weston v1 02/17] tests: link tests against libtoytoolkit

Marek Chalupa mchqwerty at gmail.com
Wed Dec 10 03:54:22 PST 2014


On 9 December 2014 at 20:33, Derek Foreman <derekf at osg.samsung.com> wrote:

> On 05/12/14 07:36 AM, Marek Chalupa wrote:
> > We want to use toytoolkit in tests. This patch also
> > removes collisions of symbols defined in libtoytoolkit
> > with symbols defined in tests (i. e. shm_listener)
>
> This patch introduces a compiler warning over the definition of
> xzalloc() in presentation-test.c.
>
> It's fixed later in the series, so I'm being pretty pedantic here. :)
>

Better be pedantic than to let through some errors :)


>
> Why link all existing tests against toytoolkit instead of just ones that
> use toytoolkit functionality?  (I see this patch makes toytoolkit
> provide xzalloc to all the tests, is that why?)
>

Because later I add client_create_toytoolkit() function to
weston-test-client-helpers.c.
It uses toytoolkit functions and static functions from
weston-test-client-helper.c.
Since weston-test-client-helper.c is a part of libtest-client,
libtoytoolkit needs to be linked to libtest-client.
And as you said, it provides the definition of xzalloc.

I think it could be workaround to link it just to some tests, but... I
don't think
it's worth the work that would be needed to achieve this.

Anyway, I found out that I don't need to add the CLIENT_CFLAGS to every
test if I change the next patch a little bit. It reduces this patch a lot.


> I don't think I see any harm in it, and doing this seems to put us
> within reach of having exactly one definition of xzalloc() in the source
> tree.  ;)
>
> > Signed-off-by: Marek Chalupa <mchqwerty at gmail.com>
> > ---
> >  Makefile.am                       | 26 +++++++++++++++-----------
> >  tests/weston-test-client-helper.c |  5 +++--
> >  tests/weston-test-client-helper.h | 14 ++------------
> >  tests/weston-test-runner.h        |  2 ++
> >  4 files changed, 22 insertions(+), 25 deletions(-)
> >
> > diff --git a/Makefile.am b/Makefile.am
> > index 4f4bb28..47c44dc 100644
> > --- a/Makefile.am
> > +++ b/Makefile.am
> > @@ -1003,51 +1003,55 @@ libtest_client_la_SOURCES =                   \
> >  nodist_libtest_client_la_SOURCES =           \
> >       protocol/wayland-test-protocol.c        \
> >       protocol/wayland-test-client-protocol.h
> > -libtest_client_la_CFLAGS = $(AM_CFLAGS) $(TEST_CLIENT_CFLAGS)
> > -libtest_client_la_LIBADD = $(TEST_CLIENT_LIBS) libshared.la
> libtest-runner.la
> > +libtest_client_la_CFLAGS = $(AM_CFLAGS) $(TEST_CLIENT_CFLAGS)
> $(CLIENT_CFLAGS)
> > +libtest_client_la_LIBADD =                   \
> > +     $(TEST_CLIENT_LIBS)                     \
> > +     libshared.la                            \
> > +     libtest-runner.la                       \
> > +     libtoytoolkit.la
> >
> >  bad_buffer_weston_SOURCES = tests/bad-buffer-test.c
> > -bad_buffer_weston_CFLAGS = $(AM_CFLAGS) $(TEST_CLIENT_CFLAGS)
> > +bad_buffer_weston_CFLAGS = $(AM_CFLAGS) $(TEST_CLIENT_CFLAGS)
> $(CLIENT_CFLAGS)
> >  bad_buffer_weston_LDADD = libtest-client.la
> >
> >  keyboard_weston_SOURCES = tests/keyboard-test.c
> > -keyboard_weston_CFLAGS = $(AM_CFLAGS) $(TEST_CLIENT_CFLAGS)
> > +keyboard_weston_CFLAGS = $(AM_CFLAGS) $(TEST_CLIENT_CFLAGS)
> $(CLIENT_CFLAGS)
> >  keyboard_weston_LDADD = libtest-client.la
> >
> >  event_weston_SOURCES = tests/event-test.c
> > -event_weston_CFLAGS = $(AM_CFLAGS) $(TEST_CLIENT_CFLAGS)
> > +event_weston_CFLAGS = $(AM_CFLAGS) $(TEST_CLIENT_CFLAGS)
> $(CLIENT_CFLAGS)
> >  event_weston_LDADD = libtest-client.la
> >
> >  button_weston_SOURCES = tests/button-test.c
> > -button_weston_CFLAGS = $(AM_CFLAGS) $(TEST_CLIENT_CFLAGS)
> > +button_weston_CFLAGS = $(AM_CFLAGS) $(TEST_CLIENT_CFLAGS)
> $(CLIENT_CFLAGS)
> >  button_weston_LDADD = libtest-client.la
> >
> >  text_weston_SOURCES = tests/text-test.c
> >  nodist_text_weston_SOURCES =                 \
> >       protocol/text-protocol.c                \
> >       protocol/text-client-protocol.h
> > -text_weston_CFLAGS = $(AM_CFLAGS) $(TEST_CLIENT_CFLAGS)
> > +text_weston_CFLAGS = $(AM_CFLAGS) $(TEST_CLIENT_CFLAGS) $(CLIENT_CFLAGS)
> >  text_weston_LDADD = libtest-client.la
> >
> >  subsurface_weston_SOURCES = tests/subsurface-test.c
> > -subsurface_weston_CFLAGS = $(AM_CFLAGS) $(TEST_CLIENT_CFLAGS)
> > +subsurface_weston_CFLAGS = $(AM_CFLAGS) $(TEST_CLIENT_CFLAGS)
> $(CLIENT_CFLAGS)
> >  subsurface_weston_LDADD = libtest-client.la
> >
> >  presentation_weston_SOURCES = tests/presentation-test.c
> >  nodist_presentation_weston_SOURCES =         \
> >       protocol/presentation_timing-protocol.c \
> >       protocol/presentation_timing-client-protocol.h
> > -presentation_weston_CFLAGS = $(AM_CFLAGS) $(TEST_CLIENT_CFLAGS)
> > +presentation_weston_CFLAGS = $(AM_CFLAGS) $(TEST_CLIENT_CFLAGS)
> $(CLIENT_CFLAGS)
> >  presentation_weston_LDADD = libtest-client.la
> >
> >  roles_weston_SOURCES = tests/roles-test.c
> > -roles_weston_CFLAGS = $(AM_CFLAGS) $(TEST_CLIENT_CFLAGS)
> > +roles_weston_CFLAGS = $(AM_CFLAGS) $(TEST_CLIENT_CFLAGS)
> $(CLIENT_CFLAGS)
> >  roles_weston_LDADD = libtest-client.la
> >
> >  if ENABLE_EGL
> >  weston_tests += buffer-count.weston
> >  buffer_count_weston_SOURCES = tests/buffer-count-test.c
> > -buffer_count_weston_CFLAGS = $(GCC_CFLAGS) $(EGL_TESTS_CFLAGS)
> > +buffer_count_weston_CFLAGS = $(GCC_CFLAGS) $(EGL_TESTS_CFLAGS)
> $(CLIENT_CFLAGS)
> >  buffer_count_weston_LDADD = libtest-client.la $(EGL_TESTS_LIBS)
> >  endif
> >
> > diff --git a/tests/weston-test-client-helper.c
> b/tests/weston-test-client-helper.c
> > index e374a96..45c2957 100644
> > --- a/tests/weston-test-client-helper.c
> > +++ b/tests/weston-test-client-helper.c
> > @@ -30,6 +30,7 @@
> >  #include <sys/mman.h>
> >
> >  #include "../shared/os-compatibility.h"
> > +#include "../clients/window.h"
> >  #include "weston-test-client-helper.h"
> >
> >  int
> > @@ -328,7 +329,7 @@ shm_format(void *data, struct wl_shm *wl_shm,
> uint32_t format)
> >               client->has_argb = 1;
> >  }
> >
> > -struct wl_shm_listener shm_listener = {
> > +struct wl_shm_listener wl_shm_listener = {
> >       shm_format
> >  };
> >
> > @@ -466,7 +467,7 @@ handle_global(void *data, struct wl_registry
> *registry,
> >               client->wl_shm =
> >                       wl_registry_bind(registry, id,
> >                                        &wl_shm_interface, 1);
> > -             wl_shm_add_listener(client->wl_shm, &shm_listener, client);
> > +             wl_shm_add_listener(client->wl_shm, &wl_shm_listener,
> client);
> >       } else if (strcmp(interface, "wl_output") == 0) {
> >               output = xzalloc(sizeof *output);
> >               output->wl_output =
> > diff --git a/tests/weston-test-client-helper.h
> b/tests/weston-test-client-helper.h
> > index 2cf3d8f..721fc5f 100644
> > --- a/tests/weston-test-client-helper.h
> > +++ b/tests/weston-test-client-helper.h
> > @@ -26,9 +26,10 @@
> >  #include "config.h"
> >
> >  #include <assert.h>
> > -#include "weston-test-runner.h"
> >  #include "wayland-test-client-protocol.h"
> >
> > +#include "weston-test-runner.h"
> > +
> >  struct client {
> >       struct wl_display *wl_display;
> >       struct wl_registry *wl_registry;
> > @@ -101,17 +102,6 @@ struct surface {
> >       void *data;
> >  };
> >
> > -static inline void *
> > -xzalloc(size_t size)
> > -{
> > -        void *p;
> > -
> > -        p = calloc(1, size);
> > -        assert(p);
> > -
> > -        return p;
> > -}
> > -
> >  struct client *
> >  client_create(int x, int y, int width, int height);
> >
> > diff --git a/tests/weston-test-runner.h b/tests/weston-test-runner.h
> > index 193b76d..33de67e 100644
> > --- a/tests/weston-test-runner.h
> > +++ b/tests/weston-test-runner.h
> > @@ -41,7 +41,9 @@ struct weston_test {
> >       int must_fail;
> >  } __attribute__ ((aligned (32)));
> >
> > +#ifndef ARRAY_LENGTH
> >  #define ARRAY_LENGTH(a) ((int) (sizeof (a) / sizeof (a)[0]))
> > +#endif
> >
> >  #define TEST_BEGIN(name, arg)                                        \
> >       static void name(arg)
> >
>
>
Thanks,
Marek
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/wayland-devel/attachments/20141210/59fe52e2/attachment-0001.html>


More information about the wayland-devel mailing list