protocol: Add summary description for wl_data_device_manager
[profile/ivi/wayland.git] / tests / event-loop-test.c
index b1dc3f6..e630cde 100644 (file)
@@ -23,7 +23,8 @@
 #include <stdlib.h>
 #include <assert.h>
 #include <unistd.h>
-#include "../src/wayland-server.h"
+#include <signal.h>
+#include "wayland-server.h"
 #include "test-runner.h"
 
 static int
@@ -31,12 +32,13 @@ fd_dispatch(int fd, uint32_t mask, void *data)
 {
        int *p = data;
 
+       assert(mask == 0);
        *p = 1;
 
        return 0;
 }
 
-TEST(post_dispatch_check)
+TEST(event_loop_post_dispatch_check)
 {
        struct wl_event_loop *loop = wl_event_loop_create();
        struct wl_event_source *source;
@@ -80,7 +82,7 @@ free_source_callback(int fd, uint32_t mask, void *data)
        return 1;
 }
 
-TEST(free_source_with_data)
+TEST(event_loop_free_source_with_data)
 {
        struct wl_event_loop *loop = wl_event_loop_create();
        struct free_source_context context;
@@ -120,4 +122,66 @@ TEST(free_source_with_data)
        if (context.source2)
                wl_event_source_remove(context.source2);
        wl_event_loop_destroy(loop);
+
+       assert(close(context.p1[0]) == 0);
+       assert(close(context.p1[1]) == 0);
+       assert(close(context.p2[0]) == 0);
+       assert(close(context.p2[1]) == 0);
+}
+
+static int
+signal_callback(int signal_number, void *data)
+{
+       int *got_it = data;
+
+       assert(signal_number == SIGUSR1);
+       *got_it = 1;
+
+       return 1;
+}
+
+TEST(event_loop_signal)
+{
+       struct wl_event_loop *loop = wl_event_loop_create();
+       struct wl_event_source *source;
+       int got_it = 0;
+
+       source = wl_event_loop_add_signal(loop, SIGUSR1,
+                                         signal_callback, &got_it);
+       wl_event_loop_dispatch(loop, 0);
+       assert(!got_it);
+       kill(getpid(), SIGUSR1);
+       wl_event_loop_dispatch(loop, 0);
+       assert(got_it);
+
+       wl_event_source_remove(source);
+       wl_event_loop_destroy(loop);
+}
+
+
+static int
+timer_callback(void *data)
+{
+       int *got_it = data;
+
+       *got_it = 1;
+
+       return 1;
+}
+
+TEST(event_loop_timer)
+{
+       struct wl_event_loop *loop = wl_event_loop_create();
+       struct wl_event_source *source;
+       int got_it = 0;
+
+       source = wl_event_loop_add_timer(loop, timer_callback, &got_it);
+       wl_event_source_timer_update(source, 10);
+       wl_event_loop_dispatch(loop, 0);
+       assert(!got_it);
+       wl_event_loop_dispatch(loop, 20);
+       assert(got_it);
+
+       wl_event_source_remove(source);
+       wl_event_loop_destroy(loop);
 }