rearrange the directories of git repository
[platform/core/uifw/libds-tizen.git] / tests / test-backend.c
1 #include <assert.h>
2 #include <stdbool.h>
3 #include <stdio.h>
4
5 #include <wayland-server.h>
6 #include <libds/backend/wayland.h>
7
8 static struct ds_backend *
9 create_possible_wl_backend(struct wl_display *display)
10 {
11     struct ds_backend *backend;
12     char wl_name[512];
13
14     for (int i = 0; i < 5; i++) {
15         snprintf(wl_name, sizeof wl_name, "wayland-%d", i);
16         backend = ds_wl_backend_create(display, wl_name);
17         if (backend)
18             break;
19     }
20
21     return backend;
22 }
23
24 static void
25 test_wl_backend_create(void)
26 {
27     struct wl_display *display;
28     struct ds_backend *backend;
29
30     display = wl_display_create();
31     
32     backend = create_possible_wl_backend(display);
33     assert(backend);
34
35     ds_backend_destroy(backend);
36 }
37
38 struct test
39 {
40     struct wl_listener backend_destroy;
41     bool cb_called;
42 };
43
44 static void
45 cb_backend_destroy(struct wl_listener *listener, void *data)
46 {
47     struct test *test;
48
49     test = wl_container_of(listener, test, backend_destroy);
50     test->cb_called = true;
51 }
52
53 static void
54 test_wl_backend_destroy_signal(void)
55 {
56     struct wl_display *display;
57     struct ds_backend *backend;
58     struct test test;
59
60     display = wl_display_create();
61
62     backend = create_possible_wl_backend(display);
63     assert(backend);
64
65     test.cb_called = false;
66     test.backend_destroy.notify = cb_backend_destroy;
67     ds_backend_add_destroy_listener(backend, &test.backend_destroy);
68
69     wl_display_destroy(display);
70     assert(test.cb_called);
71 }
72
73 int
74 main(void)
75 {
76     test_wl_backend_create();
77     test_wl_backend_destroy_signal();
78
79     return 0;
80 }