diff options
author | Jason Ekstrand <jason@jlekstrand.net> | 2013-01-11 14:29:32 -0600 |
---|---|---|
committer | Kristian Høgsberg <krh@bitplanet.net> | 2013-01-11 15:52:39 -0500 |
commit | 31511d0ea08e9419bf6a3169ea196a551b4a94be (patch) | |
tree | bd928e6744b225d3f39a9e27487b73f73c199e9a /tests | |
parent | 0d2c233e15137abf9c9ec55b8b9b120318af1375 (diff) |
Added a destroy signal to the wl_display object.
Added a destroy signal to the wl_display object.
Diffstat (limited to 'tests')
-rw-r--r-- | tests/Makefile.am | 2 | ||||
-rw-r--r-- | tests/display-test.c | 79 |
2 files changed, 81 insertions, 0 deletions
diff --git a/tests/Makefile.am b/tests/Makefile.am index cf821c0..54157bc 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -1,6 +1,7 @@ TESTS = \ array-test \ client-test \ + display-test \ connection-test \ event-loop-test \ fixed-test \ @@ -22,6 +23,7 @@ test_runner_src = test-runner.c test-runner.h test-helpers.c array_test_SOURCES = array-test.c $(test_runner_src) client_test_SOURCES = client-test.c $(test_runner_src) +display_test_SOURCES = display-test.c $(test_runner_src) connection_test_SOURCES = connection-test.c $(test_runner_src) event_loop_test_SOURCES = event-loop-test.c $(test_runner_src) fixed_test_SOURCES = fixed-test.c $(test_runner_src) diff --git a/tests/display-test.c b/tests/display-test.c new file mode 100644 index 0000000..95b939e --- /dev/null +++ b/tests/display-test.c @@ -0,0 +1,79 @@ +/* + * Copyright © 2012 Intel Corporation + * Copyright © 2013 Jason Ekstrand + * + * 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 <stdio.h> +#include <stdlib.h> +#include <stdarg.h> +#include <string.h> +#include <assert.h> +#include <sys/socket.h> +#include <unistd.h> +#include <errno.h> +#include <sys/types.h> +#include <sys/stat.h> + +#include "wayland-server.h" +#include "wayland-private.h" +#include "test-runner.h" + +struct display_destroy_listener { + struct wl_listener listener; + int done; +}; + +static void +display_destroy_notify(struct wl_listener *l, void *data) +{ + struct display_destroy_listener *listener; + + listener = container_of(l, struct display_destroy_listener, listener); + listener->done = 1; +} + +TEST(display_destroy_listener) +{ + struct wl_display *display; + struct display_destroy_listener a, b; + + display = wl_display_create(); + assert(display); + + a.listener.notify = &display_destroy_notify; + a.done = 0; + wl_display_add_destroy_listener(display, &a.listener); + + assert(wl_display_get_destroy_listener(display, display_destroy_notify) == + &a.listener); + + b.listener.notify = display_destroy_notify; + b.done = 0; + wl_display_add_destroy_listener(display, &b.listener); + + wl_list_remove(&a.listener.link); + + wl_display_destroy(display); + + assert(!a.done); + assert(b.done); +} + |