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

Submitted by Marek Chalupa on Dec. 5, 2014, 1:36 p.m.

Details

Message ID 1417786610-2440-3-git-send-email-mchqwerty@gmail.com
State Changes Requested
Headers show

Not browsing as part of any series.

Commit Message

Marek Chalupa Dec. 5, 2014, 1:36 p.m.
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)

Signed-off-by: Marek Chalupa <mchqwerty@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(-)

Patch hide | download patch | download mbox

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)

Comments

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. :)

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?)

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@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)
>
On 9 December 2014 at 20:33, Derek Foreman <derekf@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@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