wayland-tbm-server-protocol.h \
wayland-tbm-client-protocol.h
-libwayland_tbm_server_la_LDFLAGS = -export-dynamic
+libwayland_tbm_server_la_LDFLAGS = $(LDFLAGS) -export-dynamic
libwayland_tbm_server_la_CFLAGS = \
$(AM_CFLAGS) \
$(WL_TBM_COMMON_CFLAGS) \
wayland-tbm-client-protocol.h \
wayland-tbm-protocol.c
-libwayland_tbm_client_la_LDFLAGS = -export-dynamic
+libwayland_tbm_client_la_LDFLAGS = $(LDFLAGS) -export-dynamic
libwayland_tbm_client_la_CFLAGS = \
$(AM_CFLAGS) \
$(WL_TBM_COMMON_CFLAGS) \
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
DEALINGS IN THE SOFTWARE.
*/
+#include "gtest/gtest.h"
#include "ut_base.h"
#include "wayland-tbm-server.h"
#include "wayland-tbm-test-server-protocol.h"
struct wl_display *wl_disp;
struct wayland_tbm_server *wl_tbm_server;
struct wl_global *wl_tbm_test;
+
+ struct wl_listener client_add_cb;
+ struct wl_listener client_destroy_cb;
} wlt_server_t;
typedef struct
wl_resource_set_implementation(res, &wl_tbm_test_impl, data, _res_wl_tbm_test_destroy);
}
+static void
+_wl_tbm_test_client_add_cb(struct wl_listener *listener, void *data)
+{
+ struct wl_client *client = (struct wl_client*) data;
+ wl_client_add_destroy_listener(client, &wlt_server.client_destroy_cb);
+}
+
+static void
+_wl_tbm_test_client_destory_cb(struct wl_listener *listener, void *data)
+{
+ wayland_tbm_server_deinit(wlt_server.wl_tbm_server);
+ wlt_server.wl_tbm_server = nullptr;
+
+ wl_display_terminate(wlt_server.wl_disp);
+}
+
+#ifdef TIZEN_TEST_GCOV
+extern "C" void __gcov_flush(void);
+#endif
+
int
launch_server(void)
{
if (pid != 0)
return pid;
+#ifdef TIZEN_TEST_GCOV
+ setenv("GCOV_PREFIX", "/tmp", 1);
+#endif
+
wlt_server.wl_disp = wl_display_create();
if (!wlt_server.wl_disp)
exit(-1);
if (!wlt_server.wl_tbm_server)
exit(-1);
+ wlt_server.client_add_cb.notify = _wl_tbm_test_client_add_cb;
+ wlt_server.client_destroy_cb.notify = _wl_tbm_test_client_destory_cb;
+ wl_display_add_client_created_listener(wlt_server.wl_disp, &wlt_server.client_add_cb);
+
wlt_server.wl_tbm_test = wl_global_create(wlt_server.wl_disp,
&wl_tbm_test_interface,
1,
wl_display_run(wlt_server.wl_disp);
+ wl_display_destroy(wlt_server.wl_disp);
+#ifdef TIZEN_TEST_GCOV
+ __gcov_flush();
+#endif
+ exit(0);
+
return pid;
}
void
kill_server(int pid)
{
+ printf("[Client] Pre kill Server(%d)\n", pid);
kill(pid, SIGINT);
+ printf("[Client] Post kill Server(%d)\n", pid);
}
\ No newline at end of file
#include "gtest/gtest.h"
+#ifdef TIZEN_TEST_GCOV
+extern "C" void __gcov_flush(void);
+#endif
+
int main(int argc, char **argv)
{
+ auto AllTestSuccess = false;
+
+#ifdef TIZEN_TEST_GCOV
+ setenv("GCOV_PREFIX", "/tmp", 1);
+#endif
+
try {
::testing::InitGoogleTest(&argc, argv);
::testing::FLAGS_gtest_death_test_style = "fast";
exit(EXIT_FAILURE);
}
- return RUN_ALL_TESTS();
+ AllTestSuccess = RUN_ALL_TESTS();
+
+#ifdef TIZEN_TEST_GCOV
+ __gcov_flush();
+#endif
+ return AllTestSuccess;
}
\ No newline at end of file
wl_disp = wl_display_connect("ut_wayland_tbm");
if (wl_disp == nullptr)
{
- sleep(1);
+ usleep(1000);
printf("Wait... connect to server\n");
}
} while (wl_disp == nullptr && cnt++ < 10);
wayland_tbm_client_deinit(wl_tbm_client);
wl_tbm_client = nullptr;
+ wl_tbm_test_destroy(wl_tbm_test);
+ wl_tbm_test = nullptr;
+
wl_display_roundtrip(wl_disp);
wl_display_disconnect(wl_disp);
-
- kill_server(server_pid);
}
void UtWlTbm::SetUp()