[PATCH wayland v2 4/4] tests: add code, public-code and private-code tests

Pekka Paalanen ppaalanen at gmail.com
Thu Feb 22 11:55:01 UTC 2018


On Thu, 22 Feb 2018 11:23:39 +0000
Emil Velikov <emil.l.velikov at gmail.com> wrote:

> From: Emil Velikov <emil.velikov at collabora.com>
> 
> First one is deprecated in favour of the second option.
> 
> The latter is newly introduced and annotates the generated symbols
> accordingly.
> 
> v2: Don't introduce small-public-code.c - reuse small-code.c (Pekka)
> 
> Cc: Pekka Paalanen <ppaalanen at gmail.com>
> Signed-off-by: Emil Velikov <emil.velikov at collabora.com>
> ---
>  Makefile.am                     |  3 +-
>  tests/data/small-private-code.c | 71 +++++++++++++++++++++++++++++++++++++++++
>  tests/scanner-test.sh           |  4 +++
>  3 files changed, 77 insertions(+), 1 deletion(-)
>  create mode 100644 tests/data/small-private-code.c
> 
> diff --git a/Makefile.am b/Makefile.am
> index 4ffce0d..2731ee7 100644
> --- a/Makefile.am
> +++ b/Makefile.am
> @@ -299,7 +299,8 @@ EXTRA_DIST += tests/scanner-test.sh			\
>  	tests/data/small-server.h			\
>  	tests/data/small-code-core.c			\
>  	tests/data/small-client-core.h			\
> -	tests/data/small-server-core.h
> +	tests/data/small-server-core.h			\
> +	tests/data/small-private-code.c
>  
>  tests/scanner-test.sh: $(top_builddir)/wayland-scanner
>  
> diff --git a/tests/data/small-private-code.c b/tests/data/small-private-code.c
> new file mode 100644
> index 0000000..e447607
> --- /dev/null
> +++ b/tests/data/small-private-code.c
> @@ -0,0 +1,71 @@
> +/* SCANNER TEST */
> +
> +/*
> + * Copyright © 2016 Collabora, Ltd.
> + *
> + * Permission is hereby granted, free of charge, to any person
> + * obtaining a copy of this software and associated documentation files
> + * (the "Software"), to deal in the Software without restriction,
> + * including without limitation the rights to use, copy, modify, merge,
> + * publish, distribute, sublicense, and/or sell copies of the Software,
> + * and to permit persons to whom the Software is furnished to do so,
> + * subject to the following conditions:
> + *
> + * The above copyright notice and this permission notice (including the
> + * next paragraph) shall be included in all copies or substantial
> + * portions of the Software.
> + *
> + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
> + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
> + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
> + * NONINFRINGEMENT.  IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
> + * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
> + * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
> + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
> + * SOFTWARE.
> + */
> +
> +#include <stdlib.h>
> +#include <stdint.h>
> +#include "wayland-util.h"
> +
> +#ifndef __has_attribute
> +# define __has_attribute(x) 0  /* Compatibility with non-clang compilers. */
> +#endif
> +
> +#if (__has_attribute(visibility) || defined(__GNUC__) && __GNUC__ >= 4
> +#define WL_PRIVATE __attribute__ ((visibility("hidden")))
> +#else
> +#define WL_PRIVATE
> +#endif
> +
> +extern const struct wl_interface another_intf_interface;
> +extern const struct wl_interface intf_not_here_interface;
> +
> +static const struct wl_interface *types[] = {
> +	NULL,
> +	&intf_not_here_interface,
> +	NULL,
> +	NULL,
> +	NULL,
> +	NULL,
> +	NULL,
> +	&another_intf_interface,
> +};
> +
> +static const struct wl_message intf_A_requests[] = {
> +	{ "rq1", "sun", types + 0 },
> +	{ "rq2", "nsiufho", types + 1 },
> +	{ "destroy", "", types + 0 },
> +};
> +
> +static const struct wl_message intf_A_events[] = {
> +	{ "hey", "", types + 0 },
> +};
> +
> +WL_PRIVATE const struct wl_interface intf_A_interface = {
> +	"intf_A", 3,
> +	3, intf_A_requests,
> +	1, intf_A_events,
> +};
> +
> diff --git a/tests/scanner-test.sh b/tests/scanner-test.sh
> index 7854b86..ff25089 100755
> --- a/tests/scanner-test.sh
> +++ b/tests/scanner-test.sh
> @@ -48,4 +48,8 @@ generate_and_compare "-c code" "small.xml" "small-code-core.c"
>  generate_and_compare "-c client-header" "small.xml" "small-client-core.h"
>  generate_and_compare "-c server-header" "small.xml" "small-server-core.h"
>  
> +# The existing "code" must produce result identical to "public-code"
> +generate_and_compare "code" "small.xml" "small-code.c"
> +generate_and_compare "public-code" "small.xml" "small-code.c"
> +generate_and_compare "private-code" "small.xml" "small-private-code.c"
>  exit $RETCODE

Hi Emil,

this is exactly what I had in mind.

Reviewed-by: Pekka Paalanen <pekka.paalanen at collabora.co.uk>

I'll push this series tomorrow if nothing else is heard.


Thanks,
pq
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 833 bytes
Desc: OpenPGP digital signature
URL: <https://lists.freedesktop.org/archives/wayland-devel/attachments/20180222/3c16e14b/attachment.sig>


More information about the wayland-devel mailing list