From: Emil Velikov <emil.veli...@collabora.com> First one is deprecated in favour of the second option.
The latter is newly introduced and annotates the generated symbols accordingly. Signed-off-by: Emil Velikov <emil.veli...@collabora.com> --- Makefile.am | 4 ++- tests/data/small-private-code.c | 71 +++++++++++++++++++++++++++++++++++++++++ tests/data/small-public-code.c | 61 +++++++++++++++++++++++++++++++++++ tests/scanner-test.sh | 4 +++ 4 files changed, 139 insertions(+), 1 deletion(-) create mode 100644 tests/data/small-private-code.c create mode 100644 tests/data/small-public-code.c diff --git a/Makefile.am b/Makefile.am index 4ffce0d..1a0b1ec 100644 --- a/Makefile.am +++ b/Makefile.am @@ -299,7 +299,9 @@ 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-public-code.c \ + 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/data/small-public-code.c b/tests/data/small-public-code.c new file mode 100644 index 0000000..28a00ab --- /dev/null +++ b/tests/data/small-public-code.c @@ -0,0 +1,61 @@ +/* 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" + +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_EXPORT 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..4d2b42d 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-public-code.c" +generate_and_compare "public-code" "small.xml" "small-public-code.c" +generate_and_compare "private-code" "small.xml" "small-private-code.c" exit $RETCODE -- 2.16.0 _______________________________________________ wayland-devel mailing list wayland-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/wayland-devel