Signed-off-by: Jonas Ådahl <jad...@gmail.com> --- tests/data/noexport-small-client-core.h | 195 ++++++++++++++++++++++++++++++++ tests/data/noexport-small-code-core.c | 61 ++++++++++ tests/data/noexport-small-server-core.h | 154 +++++++++++++++++++++++++ tests/data/static-small-client-core.h | 195 ++++++++++++++++++++++++++++++++ tests/data/static-small-code-core.c | 61 ++++++++++ tests/data/static-small-server-core.h | 154 +++++++++++++++++++++++++ tests/scanner-test.sh | 12 ++ 7 files changed, 832 insertions(+) create mode 100644 tests/data/noexport-small-client-core.h create mode 100644 tests/data/noexport-small-code-core.c create mode 100644 tests/data/noexport-small-server-core.h create mode 100644 tests/data/static-small-client-core.h create mode 100644 tests/data/static-small-code-core.c create mode 100644 tests/data/static-small-server-core.h
diff --git a/tests/data/noexport-small-client-core.h b/tests/data/noexport-small-client-core.h new file mode 100644 index 0000000..c85cca6 --- /dev/null +++ b/tests/data/noexport-small-client-core.h @@ -0,0 +1,195 @@ +/* SCANNER TEST */ + +#ifndef SMALL_TEST_CLIENT_PROTOCOL_H +#define SMALL_TEST_CLIENT_PROTOCOL_H + +#include <stdint.h> +#include <stddef.h> +#include "wayland-client-core.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/** + * @page page_small_test The small_test protocol + * @section page_ifaces_small_test Interfaces + * - @subpage page_iface_intf_A - the thing A + * @section page_copyright_small_test Copyright + * <pre> + * + * 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. + * </pre> + */ +struct another_intf; +struct intf_A; +struct intf_not_here; + +/** + * @page page_iface_intf_A intf_A + * @section page_iface_intf_A_desc Description + * + * A useless example trying to tickle the scanner. + * @section page_iface_intf_A_api API + * See @ref iface_intf_A. + */ +/** + * @defgroup iface_intf_A The intf_A interface + * + * A useless example trying to tickle the scanner. + */ +extern const struct wl_interface intf_A_interface; + +#ifndef INTF_A_FOO_ENUM +#define INTF_A_FOO_ENUM +enum intf_A_foo { + /** + * this is the first + */ + INTF_A_FOO_FIRST = 0, + /** + * this is the second + */ + INTF_A_FOO_SECOND = 1, + /** + * this is the third + * @since 2 + */ + INTF_A_FOO_THIRD = 2, +}; +/** + * @ingroup iface_intf_A + */ +#define INTF_A_FOO_THIRD_SINCE_VERSION 2 +#endif /* INTF_A_FOO_ENUM */ + +/** + * @ingroup iface_intf_A + * @struct intf_A_listener + */ +struct intf_A_listener { + /** + */ + void (*hey)(void *data, + struct intf_A *intf_A); +}; + +/** + * @ingroup iface_intf_A + */ +static inline int +intf_A_add_listener(struct intf_A *intf_A, + const struct intf_A_listener *listener, void *data) +{ + return wl_proxy_add_listener((struct wl_proxy *) intf_A, + (void (**)(void)) listener, data); +} + +#define INTF_A_RQ1 0 +#define INTF_A_RQ2 1 +#define INTF_A_DESTROY 2 + +/** + * @ingroup iface_intf_A + */ +#define INTF_A_HEY_SINCE_VERSION 1 + +/** + * @ingroup iface_intf_A + */ +#define INTF_A_RQ1_SINCE_VERSION 1 +/** + * @ingroup iface_intf_A + */ +#define INTF_A_RQ2_SINCE_VERSION 1 +/** + * @ingroup iface_intf_A + */ +#define INTF_A_DESTROY_SINCE_VERSION 1 + +/** @ingroup iface_intf_A */ +static inline void +intf_A_set_user_data(struct intf_A *intf_A, void *user_data) +{ + wl_proxy_set_user_data((struct wl_proxy *) intf_A, user_data); +} + +/** @ingroup iface_intf_A */ +static inline void * +intf_A_get_user_data(struct intf_A *intf_A) +{ + return wl_proxy_get_user_data((struct wl_proxy *) intf_A); +} + +static inline uint32_t +intf_A_get_version(struct intf_A *intf_A) +{ + return wl_proxy_get_version((struct wl_proxy *) intf_A); +} + +/** + * @ingroup iface_intf_A + */ +static inline void * +intf_A_rq1(struct intf_A *intf_A, const struct wl_interface *interface, uint32_t version) +{ + struct wl_proxy *untyped_new; + + untyped_new = wl_proxy_marshal_constructor_versioned((struct wl_proxy *) intf_A, + INTF_A_RQ1, interface, version, interface->name, version, NULL); + + return (void *) untyped_new; +} + +/** + * @ingroup iface_intf_A + */ +static inline struct intf_not_here * +intf_A_rq2(struct intf_A *intf_A, const char *str, int32_t i, uint32_t u, wl_fixed_t f, int32_t fd, struct another_intf *obj) +{ + struct wl_proxy *typed_new; + + typed_new = wl_proxy_marshal_constructor((struct wl_proxy *) intf_A, + INTF_A_RQ2, &intf_not_here_interface, NULL, str, i, u, f, fd, obj); + + return (struct intf_not_here *) typed_new; +} + +/** + * @ingroup iface_intf_A + */ +static inline void +intf_A_destroy(struct intf_A *intf_A) +{ + wl_proxy_marshal((struct wl_proxy *) intf_A, + INTF_A_DESTROY); + + wl_proxy_destroy((struct wl_proxy *) intf_A); +} + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/tests/data/noexport-small-code-core.c b/tests/data/noexport-small-code-core.c new file mode 100644 index 0000000..0ed7815 --- /dev/null +++ b/tests/data/noexport-small-code-core.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 }, +}; + +const struct wl_interface intf_A_interface = { + "intf_A", 3, + 3, intf_A_requests, + 1, intf_A_events, +}; + diff --git a/tests/data/noexport-small-server-core.h b/tests/data/noexport-small-server-core.h new file mode 100644 index 0000000..6dd2d05 --- /dev/null +++ b/tests/data/noexport-small-server-core.h @@ -0,0 +1,154 @@ +/* SCANNER TEST */ + +#ifndef SMALL_TEST_SERVER_PROTOCOL_H +#define SMALL_TEST_SERVER_PROTOCOL_H + +#include <stdint.h> +#include <stddef.h> +#include "wayland-server-core.h" + +#ifdef __cplusplus +extern "C" { +#endif + +struct wl_client; +struct wl_resource; + +/** + * @page page_small_test The small_test protocol + * @section page_ifaces_small_test Interfaces + * - @subpage page_iface_intf_A - the thing A + * @section page_copyright_small_test Copyright + * <pre> + * + * 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. + * </pre> + */ +struct another_intf; +struct intf_A; +struct intf_not_here; + +/** + * @page page_iface_intf_A intf_A + * @section page_iface_intf_A_desc Description + * + * A useless example trying to tickle the scanner. + * @section page_iface_intf_A_api API + * See @ref iface_intf_A. + */ +/** + * @defgroup iface_intf_A The intf_A interface + * + * A useless example trying to tickle the scanner. + */ +extern const struct wl_interface intf_A_interface; + +#ifndef INTF_A_FOO_ENUM +#define INTF_A_FOO_ENUM +enum intf_A_foo { + /** + * this is the first + */ + INTF_A_FOO_FIRST = 0, + /** + * this is the second + */ + INTF_A_FOO_SECOND = 1, + /** + * this is the third + * @since 2 + */ + INTF_A_FOO_THIRD = 2, +}; +/** + * @ingroup iface_intf_A + */ +#define INTF_A_FOO_THIRD_SINCE_VERSION 2 +#endif /* INTF_A_FOO_ENUM */ + +/** + * @ingroup iface_intf_A + * @struct intf_A_interface + */ +struct intf_A_interface { + /** + * @param interface name of the objects interface + * @param version version of the objects interface + */ + void (*rq1)(struct wl_client *client, + struct wl_resource *resource, + const char *interface, uint32_t version, uint32_t untyped_new); + /** + */ + void (*rq2)(struct wl_client *client, + struct wl_resource *resource, + uint32_t typed_new, + const char *str, + int32_t i, + uint32_t u, + wl_fixed_t f, + int32_t fd, + struct wl_resource *obj); + /** + */ + void (*destroy)(struct wl_client *client, + struct wl_resource *resource); +}; + +#define INTF_A_HEY 0 + +/** + * @ingroup iface_intf_A + */ +#define INTF_A_HEY_SINCE_VERSION 1 + +/** + * @ingroup iface_intf_A + */ +#define INTF_A_RQ1_SINCE_VERSION 1 +/** + * @ingroup iface_intf_A + */ +#define INTF_A_RQ2_SINCE_VERSION 1 +/** + * @ingroup iface_intf_A + */ +#define INTF_A_DESTROY_SINCE_VERSION 1 + +/** + * @ingroup iface_intf_A + * Sends an hey event to the client owning the resource. + * @param resource_ The client's resource + */ +static inline void +intf_A_send_hey(struct wl_resource *resource_) +{ + wl_resource_post_event(resource_, INTF_A_HEY); +} + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/tests/data/static-small-client-core.h b/tests/data/static-small-client-core.h new file mode 100644 index 0000000..8af8cae --- /dev/null +++ b/tests/data/static-small-client-core.h @@ -0,0 +1,195 @@ +/* SCANNER TEST */ + +#ifndef SMALL_TEST_CLIENT_PROTOCOL_H +#define SMALL_TEST_CLIENT_PROTOCOL_H + +#include <stdint.h> +#include <stddef.h> +#include "wayland-client-core.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/** + * @page page_small_test The small_test protocol + * @section page_ifaces_small_test Interfaces + * - @subpage page_iface_intf_A - the thing A + * @section page_copyright_small_test Copyright + * <pre> + * + * 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. + * </pre> + */ +struct another_intf; +struct intf_A; +struct intf_not_here; + +/** + * @page page_iface_intf_A intf_A + * @section page_iface_intf_A_desc Description + * + * A useless example trying to tickle the scanner. + * @section page_iface_intf_A_api API + * See @ref iface_intf_A. + */ +/** + * @defgroup iface_intf_A The intf_A interface + * + * A useless example trying to tickle the scanner. + */ +static const struct wl_interface intf_A_interface; + +#ifndef INTF_A_FOO_ENUM +#define INTF_A_FOO_ENUM +enum intf_A_foo { + /** + * this is the first + */ + INTF_A_FOO_FIRST = 0, + /** + * this is the second + */ + INTF_A_FOO_SECOND = 1, + /** + * this is the third + * @since 2 + */ + INTF_A_FOO_THIRD = 2, +}; +/** + * @ingroup iface_intf_A + */ +#define INTF_A_FOO_THIRD_SINCE_VERSION 2 +#endif /* INTF_A_FOO_ENUM */ + +/** + * @ingroup iface_intf_A + * @struct intf_A_listener + */ +struct intf_A_listener { + /** + */ + void (*hey)(void *data, + struct intf_A *intf_A); +}; + +/** + * @ingroup iface_intf_A + */ +static inline int +intf_A_add_listener(struct intf_A *intf_A, + const struct intf_A_listener *listener, void *data) +{ + return wl_proxy_add_listener((struct wl_proxy *) intf_A, + (void (**)(void)) listener, data); +} + +#define INTF_A_RQ1 0 +#define INTF_A_RQ2 1 +#define INTF_A_DESTROY 2 + +/** + * @ingroup iface_intf_A + */ +#define INTF_A_HEY_SINCE_VERSION 1 + +/** + * @ingroup iface_intf_A + */ +#define INTF_A_RQ1_SINCE_VERSION 1 +/** + * @ingroup iface_intf_A + */ +#define INTF_A_RQ2_SINCE_VERSION 1 +/** + * @ingroup iface_intf_A + */ +#define INTF_A_DESTROY_SINCE_VERSION 1 + +/** @ingroup iface_intf_A */ +static inline void +intf_A_set_user_data(struct intf_A *intf_A, void *user_data) +{ + wl_proxy_set_user_data((struct wl_proxy *) intf_A, user_data); +} + +/** @ingroup iface_intf_A */ +static inline void * +intf_A_get_user_data(struct intf_A *intf_A) +{ + return wl_proxy_get_user_data((struct wl_proxy *) intf_A); +} + +static inline uint32_t +intf_A_get_version(struct intf_A *intf_A) +{ + return wl_proxy_get_version((struct wl_proxy *) intf_A); +} + +/** + * @ingroup iface_intf_A + */ +static inline void * +intf_A_rq1(struct intf_A *intf_A, const struct wl_interface *interface, uint32_t version) +{ + struct wl_proxy *untyped_new; + + untyped_new = wl_proxy_marshal_constructor_versioned((struct wl_proxy *) intf_A, + INTF_A_RQ1, interface, version, interface->name, version, NULL); + + return (void *) untyped_new; +} + +/** + * @ingroup iface_intf_A + */ +static inline struct intf_not_here * +intf_A_rq2(struct intf_A *intf_A, const char *str, int32_t i, uint32_t u, wl_fixed_t f, int32_t fd, struct another_intf *obj) +{ + struct wl_proxy *typed_new; + + typed_new = wl_proxy_marshal_constructor((struct wl_proxy *) intf_A, + INTF_A_RQ2, &intf_not_here_interface, NULL, str, i, u, f, fd, obj); + + return (struct intf_not_here *) typed_new; +} + +/** + * @ingroup iface_intf_A + */ +static inline void +intf_A_destroy(struct intf_A *intf_A) +{ + wl_proxy_marshal((struct wl_proxy *) intf_A, + INTF_A_DESTROY); + + wl_proxy_destroy((struct wl_proxy *) intf_A); +} + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/tests/data/static-small-code-core.c b/tests/data/static-small-code-core.c new file mode 100644 index 0000000..8d372a5 --- /dev/null +++ b/tests/data/static-small-code-core.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" + +static const struct wl_interface another_intf_interface; +static 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 }, +}; + +static const struct wl_interface intf_A_interface = { + "intf_A", 3, + 3, intf_A_requests, + 1, intf_A_events, +}; + diff --git a/tests/data/static-small-server-core.h b/tests/data/static-small-server-core.h new file mode 100644 index 0000000..402b276 --- /dev/null +++ b/tests/data/static-small-server-core.h @@ -0,0 +1,154 @@ +/* SCANNER TEST */ + +#ifndef SMALL_TEST_SERVER_PROTOCOL_H +#define SMALL_TEST_SERVER_PROTOCOL_H + +#include <stdint.h> +#include <stddef.h> +#include "wayland-server-core.h" + +#ifdef __cplusplus +extern "C" { +#endif + +struct wl_client; +struct wl_resource; + +/** + * @page page_small_test The small_test protocol + * @section page_ifaces_small_test Interfaces + * - @subpage page_iface_intf_A - the thing A + * @section page_copyright_small_test Copyright + * <pre> + * + * 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. + * </pre> + */ +struct another_intf; +struct intf_A; +struct intf_not_here; + +/** + * @page page_iface_intf_A intf_A + * @section page_iface_intf_A_desc Description + * + * A useless example trying to tickle the scanner. + * @section page_iface_intf_A_api API + * See @ref iface_intf_A. + */ +/** + * @defgroup iface_intf_A The intf_A interface + * + * A useless example trying to tickle the scanner. + */ +static const struct wl_interface intf_A_interface; + +#ifndef INTF_A_FOO_ENUM +#define INTF_A_FOO_ENUM +enum intf_A_foo { + /** + * this is the first + */ + INTF_A_FOO_FIRST = 0, + /** + * this is the second + */ + INTF_A_FOO_SECOND = 1, + /** + * this is the third + * @since 2 + */ + INTF_A_FOO_THIRD = 2, +}; +/** + * @ingroup iface_intf_A + */ +#define INTF_A_FOO_THIRD_SINCE_VERSION 2 +#endif /* INTF_A_FOO_ENUM */ + +/** + * @ingroup iface_intf_A + * @struct intf_A_interface + */ +struct intf_A_interface { + /** + * @param interface name of the objects interface + * @param version version of the objects interface + */ + void (*rq1)(struct wl_client *client, + struct wl_resource *resource, + const char *interface, uint32_t version, uint32_t untyped_new); + /** + */ + void (*rq2)(struct wl_client *client, + struct wl_resource *resource, + uint32_t typed_new, + const char *str, + int32_t i, + uint32_t u, + wl_fixed_t f, + int32_t fd, + struct wl_resource *obj); + /** + */ + void (*destroy)(struct wl_client *client, + struct wl_resource *resource); +}; + +#define INTF_A_HEY 0 + +/** + * @ingroup iface_intf_A + */ +#define INTF_A_HEY_SINCE_VERSION 1 + +/** + * @ingroup iface_intf_A + */ +#define INTF_A_RQ1_SINCE_VERSION 1 +/** + * @ingroup iface_intf_A + */ +#define INTF_A_RQ2_SINCE_VERSION 1 +/** + * @ingroup iface_intf_A + */ +#define INTF_A_DESTROY_SINCE_VERSION 1 + +/** + * @ingroup iface_intf_A + * Sends an hey event to the client owning the resource. + * @param resource_ The client's resource + */ +static inline void +intf_A_send_hey(struct wl_resource *resource_) +{ + wl_resource_post_event(resource_, INTF_A_HEY); +} + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/tests/scanner-test.sh b/tests/scanner-test.sh index 7854b86..7e13af7 100755 --- a/tests/scanner-test.sh +++ b/tests/scanner-test.sh @@ -48,4 +48,16 @@ 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" +generate_and_compare "-Vstatic -c code" "small.xml" "static-small-code-core.c" +generate_and_compare "-Vstatic -c client-header" "small.xml" "static-small-client-core.h" +generate_and_compare "-Vstatic -c server-header" "small.xml" "static-small-server-core.h" + +generate_and_compare "-Vcompiler-default -c code" "small.xml" "noexport-small-code-core.c" +generate_and_compare "-Vcompiler-default -c client-header" "small.xml" "noexport-small-client-core.h" +generate_and_compare "-Vcompiler-default -c server-header" "small.xml" "noexport-small-server-core.h" + +generate_and_compare "-Vexport -c code" "small.xml" "small-code-core.c" +generate_and_compare "-Vexport -c client-header" "small.xml" "small-client-core.h" +generate_and_compare "-Vexport -c server-header" "small.xml" "small-server-core.h" + exit $RETCODE -- 2.13.0 _______________________________________________ wayland-devel mailing list wayland-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/wayland-devel