tbm_err = tbm_surface_queue_dequeue(tbm_queue, &tbm_surf);
ASSERT_EQ(tbm_err, TBM_SURFACE_QUEUE_ERROR_NONE);
- tbm_surface_queue_enqueue(tbm_queue, tbm_surf);
+ tbm_err = tbm_surface_queue_enqueue(tbm_queue, tbm_surf);
+ ASSERT_EQ(tbm_err, TBM_SURFACE_QUEUE_ERROR_NONE);
i++;
}
TEST_F(UtWlTbm, SyncCreate)
{
- tbm_fd td;
- tbm_surface_h tbm_surf;
- struct wl_buffer *wl_buf;
+ tbm_fd td = -1;
+ tbm_surface_h tbm_surf = nullptr;
+ struct wl_buffer *wl_buf = nullptr;
td = tbm_sync_timeline_create();
- ASSERT_NE(td, -1);
+ FAIL_NE_GOTO(td, -1, fini);
tbm_surf = tbm_surface_create(100, 200, TBM_FORMAT_ARGB8888);
- ASSERT_NE(tbm_surf, nullptr);
+ FAIL_NE_GOTO(tbm_surf, nullptr, fini);
wl_buf = wayland_tbm_client_create_buffer(wl_tbm_client, tbm_surf);
- ASSERT_NE(wl_buf, nullptr);
- ASSERT_EQ(CheckServerError(), 0);
+ FAIL_NE_GOTO(wl_buf, nullptr, fini);
+ FAIL_EQ_GOTO(CheckServerError(), 0, fini);
wayland_tbm_client_set_sync_timeline(wl_tbm_client, wl_buf, td);
- ASSERT_EQ(CheckServerError(), 0);
+ FAIL_EQ_GOTO(CheckServerError(), 0, fini);
- wayland_tbm_client_destroy_buffer(wl_tbm_client, wl_buf);
- tbm_surface_destroy(tbm_surf);
- close(td);
+fini:
+ if (wl_buf)
+ wayland_tbm_client_destroy_buffer(wl_tbm_client, wl_buf);
+
+ if (tbm_surf)
+ tbm_surface_destroy(tbm_surf);
+
+ if (td != -1)
+ close(td);
}
TEST_F(UtWlTbm, SyncWait)
{
- tbm_fd td, fence;
- tbm_surface_h tbm_surf;
- struct wl_buffer *wl_buf;
+ tbm_fd td = -1, fence = -1;
+ tbm_surface_h tbm_surf = nullptr;
+ struct wl_buffer *wl_buf = nullptr;
td = tbm_sync_timeline_create();
- ASSERT_NE(td, -1);
+ FAIL_NE_GOTO(td, -1, fini);
tbm_surf = tbm_surface_create(100, 200, TBM_FORMAT_ARGB8888);
- ASSERT_NE(tbm_surf, nullptr);
+ FAIL_NE_GOTO(tbm_surf, nullptr, fini);
wl_buf = wayland_tbm_client_create_buffer(wl_tbm_client, tbm_surf);
- ASSERT_NE(wl_buf, nullptr);
- ASSERT_EQ(CheckServerError(), 0);
+ FAIL_NE_GOTO(wl_buf, nullptr, fini);
+ FAIL_EQ_GOTO(CheckServerError(), 0, fini);
fence = tbm_sync_fence_create(td, "test", 0);
- ASSERT_NE(wl_buf, -1);
+ FAIL_NE_GOTO(fence, -1, fini);
wayland_tbm_client_set_sync_timeline(wl_tbm_client, wl_buf, td);
- ASSERT_EQ(CheckServerError(), 0);
+ FAIL_EQ_GOTO(CheckServerError(), 0, fini);
wl_tbm_test_timeline_increase(wl_tbm_test, wl_buf);
- ASSERT_EQ(CheckServerError(), 0);
+ FAIL_EQ_GOTO(CheckServerError(), 0, fini);
- ASSERT_EQ(tbm_sync_fence_wait(fence, 1), 1);
+ FAIL_EQ_GOTO(tbm_sync_fence_wait(fence, 1), 1, fini);
- wayland_tbm_client_destroy_buffer(wl_tbm_client, wl_buf);
- tbm_surface_destroy(tbm_surf);
- close(fence);
- close(td);
+fini:
+ if (wl_buf)
+ wayland_tbm_client_destroy_buffer(wl_tbm_client, wl_buf);
+
+ if (tbm_surf)
+ tbm_surface_destroy(tbm_surf);
+
+ if (fence != -1)
+ close(fence);
+
+ if (td != -1)
+ close(td);
}
TEST_F(UtWlTbm, SyncWaitByTime)
{
- tbm_fd td, fence;
- tbm_surface_h tbm_surf;
- struct wl_buffer *wl_buf;
+ tbm_fd td = -1, fence = -1;
+ tbm_surface_h tbm_surf = nullptr;
+ struct wl_buffer *wl_buf = nullptr;
int cnt = 0, ret;
td = tbm_sync_timeline_create();
- ASSERT_NE(td, -1);
+ FAIL_NE_GOTO(td, -1, fini);
tbm_surf = tbm_surface_create(100, 200, TBM_FORMAT_ARGB8888);
- ASSERT_NE(tbm_surf, nullptr);
+ FAIL_NE_GOTO(tbm_surf, nullptr, fini);
wl_buf = wayland_tbm_client_create_buffer(wl_tbm_client, tbm_surf);
- ASSERT_NE(wl_buf, nullptr);
- ASSERT_EQ(CheckServerError(), 0);
+ FAIL_NE_GOTO(wl_buf, nullptr, fini);
+ FAIL_EQ_GOTO(CheckServerError(), 0, fini);
fence = tbm_sync_fence_create(td, "test", 10);
- ASSERT_NE(wl_buf, -1);
+ FAIL_NE_GOTO(fence, -1, fini);
wayland_tbm_client_set_sync_timeline(wl_tbm_client, wl_buf, td);
- ASSERT_EQ(CheckServerError(), 0);
+ FAIL_EQ_GOTO(CheckServerError(), 0, fini);
while(cnt < 20) {
ret = tbm_sync_fence_wait(fence, 1);
} else if (ret == -1) {
printf("increase cnt to %d\n", ++cnt);
wl_tbm_test_timeline_increase(wl_tbm_test, wl_buf);
- ASSERT_EQ(CheckServerError(), 0);
+ FAIL_EQ_GOTO(CheckServerError(), 0, fini);
continue;
} else {
break;
}
}
- ASSERT_EQ(ret, 1);
+ FAIL_EQ_GOTO(ret, 1, fini);
- wayland_tbm_client_destroy_buffer(wl_tbm_client, wl_buf);
- tbm_surface_destroy(tbm_surf);
- close(fence);
- close(td);
+fini:
+ if (wl_buf)
+ wayland_tbm_client_destroy_buffer(wl_tbm_client, wl_buf);
+ if (tbm_surf)
+ tbm_surface_destroy(tbm_surf);
+ if (fence != -1)
+ close(fence);
+ if (td != -1)
+ close(fence);
}
+