tests: add frame_callback_wait_nofail
authorMarek Chalupa <mchqwerty@gmail.com>
Wed, 16 Jul 2014 09:32:50 +0000 (11:32 +0200)
committerPekka Paalanen <pq@iki.fi>
Tue, 22 Jul 2014 16:15:28 +0000 (19:15 +0300)
With expect_protocol_error, we need a possibility to wait for a frame
without aborting the test when wl_display_dispatch returns -1;
This patch adds function frame_callback_wait_nofail that only
returns 1 or 0 (instead of aborting on error).

Reviewed-by: Pekka Paalanen <ppaalanen@gmail.com>
tests/weston-test-client-helper.c
tests/weston-test-client-helper.h

index 92cee9f..79097fa 100644 (file)
@@ -80,12 +80,15 @@ frame_callback_set(struct wl_surface *surface, int *done)
        return callback;
 }
 
-void
-frame_callback_wait(struct client *client, int *done)
+int
+frame_callback_wait_nofail(struct client *client, int *done)
 {
        while (!*done) {
-               assert(wl_display_dispatch(client->wl_display) >= 0);
+               if (wl_display_dispatch(client->wl_display) < 0)
+                       return 0;
        }
+
+       return 1;
 }
 
 void
index f154661..684afc6 100644 (file)
@@ -120,8 +120,10 @@ move_client(struct client *client, int x, int y);
 struct wl_callback *
 frame_callback_set(struct wl_surface *surface, int *done);
 
-void
-frame_callback_wait(struct client *client, int *done);
+int
+frame_callback_wait_nofail(struct client *client, int *done);
+
+#define frame_callback_wait(c, d) assert(frame_callback_wait_nofail((c), (d)))
 
 int
 get_n_egl_buffers(struct client *client);