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

Derek Foreman derekf at osg.samsung.com
Thu Feb 22 19:03:49 UTC 2018


On 2018-02-22 05:55 AM, Pekka Paalanen wrote:
> 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.
> 

All looks good to me as well,

Reviewed-by: Derek Foreman <derekf at osg.samsung.com>

for the series.

Thanks,
Derek

> Thanks,
> pq
> 
> 
> 
> _______________________________________________
> wayland-devel mailing list
> wayland-devel at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/wayland-devel
> 



More information about the wayland-devel mailing list