utest: add checking the return value 94/172994/3
authorSangjin.Lee <lsj119@samsung.com>
Mon, 19 Mar 2018 07:06:46 +0000 (16:06 +0900)
committerSooChan Lim <sc1.lim@samsung.com>
Mon, 26 Mar 2018 04:25:59 +0000 (04:25 +0000)
Change-Id: I3affb403de3ebd6498795d4cbf18bd1502992b69

utests/src/ut_base.h
utests/src/ut_wayland_tbm.cpp

index 756d4ff..9f94df2 100644 (file)
@@ -1,6 +1,23 @@
 #define WL_HIDE_DEPRECATED
 #include "gtest/gtest.h"
 
+#define FAIL_NE_GOTO(con1, con2, to)   \
+       do {                                            \
+               if ((con1) == (con2)) { \
+                       ADD_FAILURE();          \
+                       goto to;                        \
+               }                                               \
+       } while(0)
+
+
+#define FAIL_EQ_GOTO(con1, con2, to)   \
+                       do {                                            \
+                               if ((con1) != (con2)) { \
+                                       ADD_FAILURE();          \
+                                       goto to;                        \
+                               }                                               \
+                       } while(0)
+
 extern int launch_server(void);
 extern void kill_server(int pid);
 
index 10f2077..e75313a 100644 (file)
@@ -769,7 +769,8 @@ TEST_F(UtWlTbm, BufQueueFlush)
                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++;
        }
 
@@ -829,83 +830,97 @@ TEST_F(UtWlTbm, MonitorDumpQueue)
 
 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);
@@ -915,17 +930,23 @@ TEST_F(UtWlTbm, SyncWaitByTime)
                } 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);
 }
+