[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