[PATCH wayland v3] tests: add an headers test
Bryce Harrington
bryce at osg.samsung.com
Thu May 21 16:01:34 PDT 2015
On Thu, May 21, 2015 at 08:43:13PM +0300, Giulio Camuffo wrote:
> This test checks that the protocol and library headers include only what
> they are supposed to include. That is, that the core headers do not
> include the protocol headers and that the core protocol headers do not
> include the non core library headers.
> The build process now generates core protocol headers, but they are only
> used in the test and don't get installed.
> ---
>
> v3: generate the core headers specifically for the test. for real
Reviewed-by: Bryce Harrington <bryce at osg.samsung.com>
LGTM, pushed:
12cab2c..1fab2e7 master -> master
> Makefile.am | 19 +++++++++++++--
> tests/headers-protocol-core-test.c | 31 +++++++++++++++++++++++
> tests/headers-protocol-test.c | 31 +++++++++++++++++++++++
> tests/headers-test.c | 50 ++++++++++++++++++++++++++++++++++++++
> 4 files changed, 129 insertions(+), 2 deletions(-)
> create mode 100644 tests/headers-protocol-core-test.c
> create mode 100644 tests/headers-protocol-test.c
> create mode 100644 tests/headers-test.c
>
> diff --git a/Makefile.am b/Makefile.am
> index 5b44d6f..c19494f 100644
> --- a/Makefile.am
> +++ b/Makefile.am
> @@ -85,9 +85,16 @@ protocol/%-server-protocol.h : $(top_srcdir)/protocol/%.xml
> protocol/%-client-protocol.h : $(top_srcdir)/protocol/%.xml
> $(AM_V_GEN)$(MKDIR_P) $(dir $@) && $(wayland_scanner) client-header < $< > $@
>
> +protocol/%-server-protocol-core.h : $(top_srcdir)/protocol/%.xml
> + $(AM_V_GEN)$(MKDIR_P) $(dir $@) && $(wayland_scanner) server-header -c < $< > $@
> +
> +protocol/%-client-protocol-core.h : $(top_srcdir)/protocol/%.xml
> + $(AM_V_GEN)$(MKDIR_P) $(dir $@) && $(wayland_scanner) client-header -c < $< > $@
> +
> BUILT_SOURCES = \
> $(nodist_libwayland_server_la_SOURCES) \
> - $(nodist_libwayland_client_la_SOURCES)
> + $(nodist_libwayland_client_la_SOURCES) \
> + $(nodist_headers_test_SOURCES)
>
> CLEANFILES = $(BUILT_SOURCES)
> DISTCLEANFILES = src/wayland-version.h
> @@ -132,7 +139,8 @@ TESTS = \
> queue-test \
> signal-test \
> resources-test \
> - message-test
> + message-test \
> + headers-test
>
> if ENABLE_CPP_TEST
> TESTS += cpp-compile-test
> @@ -188,6 +196,13 @@ resources_test_SOURCES = tests/resources-test.c
> resources_test_LDADD = libtest-runner.la
> message_test_SOURCES = tests/message-test.c
> message_test_LDADD = libtest-runner.la
> +headers_test_SOURCES = tests/headers-test.c \
> + tests/headers-protocol-test.c \
> + tests/headers-protocol-core-test.c
> +headers_test_LDADD = libtest-runner.la
> +nodist_headers_test_SOURCES = \
> + protocol/wayland-server-protocol-core.h \
> + protocol/wayland-client-protocol-core.h
>
> if ENABLE_CPP_TEST
> cpp_compile_test_SOURCES = tests/cpp-compile-test.cpp
> diff --git a/tests/headers-protocol-core-test.c b/tests/headers-protocol-core-test.c
> new file mode 100644
> index 0000000..60a8a62
> --- /dev/null
> +++ b/tests/headers-protocol-core-test.c
> @@ -0,0 +1,31 @@
> +/*
> + * Copyright © 2015 Giulio Camuffo
> + *
> + * Permission to use, copy, modify, distribute, and sell this software and its
> + * documentation for any purpose is hereby granted without fee, provided that
> + * the above copyright notice appear in all copies and that both that copyright
> + * notice and this permission notice appear in supporting documentation, and
> + * that the name of the copyright holders not be used in advertising or
> + * publicity pertaining to distribution of the software without specific,
> + * written prior permission. The copyright holders make no representations
> + * about the suitability of this software for any purpose. It is provided "as
> + * is" without express or implied warranty.
> + *
> + * THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
> + * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
> + * EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY SPECIAL, INDIRECT OR
> + * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
> + * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
> + * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
> + * OF THIS SOFTWARE.
> + */
> +
> +#include "wayland-client-protocol-core.h"
> +#include "wayland-server-protocol-core.h"
> +
> +#ifdef WAYLAND_CLIENT_H
> +#error including wayland-client-protocol-core.h included wayland-client.h!
> +#endif
> +#ifdef WAYLAND_SERVER_H
> +#error including wayland-server-protocol-core.h included wayland-server.h!
> +#endif
> diff --git a/tests/headers-protocol-test.c b/tests/headers-protocol-test.c
> new file mode 100644
> index 0000000..f8726ba
> --- /dev/null
> +++ b/tests/headers-protocol-test.c
> @@ -0,0 +1,31 @@
> +/*
> + * Copyright © 2015 Giulio Camuffo
> + *
> + * Permission to use, copy, modify, distribute, and sell this software and its
> + * documentation for any purpose is hereby granted without fee, provided that
> + * the above copyright notice appear in all copies and that both that copyright
> + * notice and this permission notice appear in supporting documentation, and
> + * that the name of the copyright holders not be used in advertising or
> + * publicity pertaining to distribution of the software without specific,
> + * written prior permission. The copyright holders make no representations
> + * about the suitability of this software for any purpose. It is provided "as
> + * is" without express or implied warranty.
> + *
> + * THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
> + * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
> + * EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY SPECIAL, INDIRECT OR
> + * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
> + * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
> + * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
> + * OF THIS SOFTWARE.
> + */
> +
> +#include "wayland-client-protocol.h"
> +#include "wayland-server-protocol.h"
> +
> +#ifndef WAYLAND_CLIENT_H
> +#error including wayland-client-protocol.h did not include wayland-client.h!
> +#endif
> +#ifndef WAYLAND_SERVER_H
> +#error including wayland-server-protocol.h did not include wayland-server.h!
> +#endif
> diff --git a/tests/headers-test.c b/tests/headers-test.c
> new file mode 100644
> index 0000000..6dc3878
> --- /dev/null
> +++ b/tests/headers-test.c
> @@ -0,0 +1,50 @@
> +/*
> + * Copyright © 2015 Giulio Camuffo
> + *
> + * Permission to use, copy, modify, distribute, and sell this software and its
> + * documentation for any purpose is hereby granted without fee, provided that
> + * the above copyright notice appear in all copies and that both that copyright
> + * notice and this permission notice appear in supporting documentation, and
> + * that the name of the copyright holders not be used in advertising or
> + * publicity pertaining to distribution of the software without specific,
> + * written prior permission. The copyright holders make no representations
> + * about the suitability of this software for any purpose. It is provided "as
> + * is" without express or implied warranty.
> + *
> + * THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
> + * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
> + * EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY SPECIAL, INDIRECT OR
> + * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
> + * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
> + * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
> + * OF THIS SOFTWARE.
> + */
> +
> +#include "wayland-client-core.h"
> +#include "wayland-server-core.h"
> +
> +#ifdef WL_DISPLAY_SYNC
> +#error including wayland-client-core.h imported protocol symbols!
> +#endif
> +#ifdef WL_DISPLAY_ERROR
> +#error including wayland-server-core.h imported protocol symbols!
> +#endif
> +
> +#ifdef WAYLAND_CLIENT_H
> +#error including wayland-client-core.h included the non-core header!
> +#endif
> +#ifdef WAYLAND_SERVER_H
> +#error including wayland-server-core.h included the non-core header!
> +#endif
> +
> +#include "wayland-client.h"
> +#include "wayland-server.h"
> +
> +#ifndef WL_DISPLAY_SYNC
> +#error including wayland-client.h did not import protocol symbols!
> +#endif
> +#ifndef WL_DISPLAY_ERROR
> +#error including wayland-server.h did not import protocol symbols!
> +#endif
> +
> +int main(int argc, char **argv) { return 0; }
> --
> 2.4.1
>
> _______________________________________________
> wayland-devel mailing list
> wayland-devel at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/wayland-devel
More information about the wayland-devel
mailing list