haltest/backend_capture: Remove duplicate code 46/277246/4
authorChangyeon Lee <cyeon.lee@samsung.com>
Mon, 4 Jul 2022 05:46:08 +0000 (14:46 +0900)
committerChangyeon Lee <cyeon.lee@samsung.com>
Thu, 7 Jul 2022 10:07:22 +0000 (19:07 +0900)
Change-Id: Ie16363ad898dcb72874ce98e9542ff80fab72da7

haltests/src/tc_tdm_backend_capture.cpp

index 0e23486..8b2ede9 100644 (file)
@@ -67,6 +67,7 @@ public:
        void TearDown(void);
 
        bool FindLayer(int output_idx, tbm_format fmt, tdm_pos *punch);
+       bool DstPosPrepare(int output_idx, bool half);
        bool TestPrepareDefault(void);
        bool TestPrepare(int output_idx, int w, int h, tbm_format fmt, tdm_transform t, tdm_capture_type c, int frequency, bool stretch);
        void TestDone(void);
@@ -157,7 +158,14 @@ bool TDMBackendCapture::FindLayer(int output_idx, tbm_format fmt, tdm_pos *punch
        tdm_error ret;
        int count;
        int primary_zpos, zpos;
-       tdm_layer *primary = tc_tdm_output_get_primary_layer(outputs[output_idx]);
+       tdm_layer *primary;
+
+       if (tc_tdm_output_is_hwc_enable(outputs[output_idx])) {
+               dst_layer = NULL;
+               return false;
+       }
+
+       primary = tc_tdm_output_get_primary_layer(outputs[output_idx]);
        TDM_UT_RETURN_FALSE_IF_FAIL(primary != NULL);
        TDM_UT_RETURN_FALSE_IF_FAIL(tdm_output_get_layer_count(outputs[output_idx], &count) == TDM_ERROR_NONE);
        TDM_UT_RETURN_FALSE_IF_FAIL(tdm_layer_get_zpos(primary, &primary_zpos) == TDM_ERROR_NONE);
@@ -205,6 +213,30 @@ bool TDMBackendCapture::FindLayer(int output_idx, tbm_format fmt, tdm_pos *punch
        return true;
 }
 
+bool TDMBackendCapture::DstPosPrepare(int output_idx, bool half)
+{
+       const tdm_output_mode *mode;
+       int half_size;
+
+       TDM_UT_RETURN_FALSE_IF_FAIL(tdm_output_get_mode(outputs[output_idx], &mode) == TDM_ERROR_NONE);
+
+       if (half) {
+               half_size = ((mode->hdisplay <= mode->vdisplay) ? mode->hdisplay : mode->vdisplay) / 2;
+
+               dst_pos.x = (mode->hdisplay - half_size) / 2;
+               dst_pos.y = (mode->vdisplay - half_size) / 2;
+               dst_pos.w = half_size;
+               dst_pos.h = half_size;
+       } else {
+               dst_pos.x = 0;
+               dst_pos.y = 0;
+               dst_pos.w = mode->hdisplay;
+               dst_pos.h = mode->vdisplay;
+       }
+
+       return true;
+}
+
 bool TDMBackendCapture::TestPrepareDefault(void)
 {
        tdm_error ret;
@@ -577,10 +609,7 @@ TEST_P(TDMBackendCapture, CaptureAttach)
                        continue;
 
                for (int f = 0; f < format_count; f++) {
-                       if (tc_tdm_output_is_hwc_enable(outputs[o]))
-                               dst_layer = NULL;
-                       else
-                               FindLayer(o, formats[f], &dst_pos);
+                       FindLayer(o, formats[f], &dst_pos);
 
                        EXPECT_EQ(TestPrepare(o, TDM_UT_BUFFER_SIZE, TDM_UT_BUFFER_SIZE, formats[f],
                                                                  TDM_TRANSFORM_NORMAL, TDM_CAPTURE_TYPE_ONESHOT, -1, false), true);
@@ -673,10 +702,7 @@ TEST_P(TDMBackendCapture, CaptureDestroyWithoutCommit)
 
                EXPECT_EQ(tdm_output_get_mode(outputs[o], &mode), TDM_ERROR_NONE);
 
-               if (tc_tdm_output_is_hwc_enable(outputs[o]))
-                       dst_layer = NULL;
-               else
-                       FindLayer(o, formats[f], &dst_pos);
+               FindLayer(o, formats[f], &dst_pos);
 
                EXPECT_EQ(TestPrepare(o, TDM_UT_BUFFER_SIZE, TDM_UT_BUFFER_SIZE, formats[f],
                                                          TDM_TRANSFORM_NORMAL, TDM_CAPTURE_TYPE_ONESHOT, -1, false), true);
@@ -707,10 +733,7 @@ TEST_P(TDMBackendCapture, CaptureDestroyBeforeDone)
 
                EXPECT_EQ(tdm_output_get_mode(outputs[o], &mode), TDM_ERROR_NONE);
 
-               if (tc_tdm_output_is_hwc_enable(outputs[o]))
-                       dst_layer = NULL;
-               else
-                       FindLayer(o, formats[f], &dst_pos);
+               FindLayer(o, formats[f], &dst_pos);
 
                EXPECT_EQ(TestPrepare(o, TDM_UT_BUFFER_SIZE, TDM_UT_BUFFER_SIZE, formats[f],
                                                          TDM_TRANSFORM_NORMAL, TDM_CAPTURE_TYPE_ONESHOT, -1, false), true);
@@ -738,35 +761,22 @@ TEST_P(TDMBackendCapture, CaptureOneshotLetterboxSize)
        bool done;
 
        for (int o = 0; o < output_count; o++) {
-               const tdm_output_mode *mode = NULL;
-
                if (!tc_tdm_output_is_connected(outputs[o]))
                        continue;
 
-               EXPECT_EQ(tdm_output_get_mode(outputs[o], &mode), TDM_ERROR_NONE);
+               EXPECT_EQ(DstPosPrepare(o, true), true);
 
                for (int f = 0; f < format_count; f++) {
-                       int half_size = ((mode->hdisplay <= mode->vdisplay) ? mode->hdisplay : mode->vdisplay) / 2;
-
-                       dst_pos.x = (mode->hdisplay - half_size) / 2;
-                       dst_pos.y = (mode->vdisplay - half_size) / 2;
-                       dst_pos.w = half_size;
-                       dst_pos.h = half_size;
-
                        TDM_UT_INFO("* testing for %c%c%c%c", FOURCC_STR(formats[f]));
 
-                       if (tc_tdm_output_is_hwc_enable(outputs[o]))
-                               dst_layer = NULL;
-                       else {
-                               FindLayer(o, formats[f], &dst_pos);
+                       FindLayer(o, formats[f], &dst_pos);
 
-                               if (!dst_layer) {
-                                       TDM_UT_INFO("no proper layer for %c%c%c%c", FOURCC_STR(formats[f]));
-                                       continue;
-                               }
+                       if (!dst_layer && !tc_tdm_output_is_hwc_enable(outputs[o])) {
+                               TDM_UT_INFO("no proper layer for %c%c%c%c", FOURCC_STR(formats[f]));
+                               continue;
                        }
 
-                       EXPECT_EQ(TestPrepare(o, half_size, half_size, formats[f],
+                       EXPECT_EQ(TestPrepare(o, dst_pos.w, dst_pos.h, formats[f],
                                                                  TDM_TRANSFORM_NORMAL, TDM_CAPTURE_TYPE_ONESHOT, -1, false), true);
 
                        EXPECT_EQ(tdm_capture_set_done_handler(capture, _tc_tdm_capture_done_cb, &done), TDM_ERROR_NONE);
@@ -811,35 +821,23 @@ TEST_P(TDMBackendCapture, CaptureOneshotFullSize)
        bool done;
 
        for (int o = 0; o < output_count; o++) {
-               const tdm_output_mode *mode = NULL;
 
                if (!tc_tdm_output_is_connected(outputs[o]))
                        continue;
 
-               EXPECT_EQ(tdm_output_get_mode(outputs[o], &mode), TDM_ERROR_NONE);
+               EXPECT_EQ(DstPosPrepare(o, true), true);
 
                for (int f = 0; f < format_count; f++) {
-                       int half_size = ((mode->hdisplay <= mode->vdisplay) ? mode->hdisplay : mode->vdisplay) / 2;
-
-                       dst_pos.x = (mode->hdisplay - half_size) / 2;
-                       dst_pos.y = (mode->vdisplay - half_size) / 2;
-                       dst_pos.w = half_size;
-                       dst_pos.h = half_size;
-
                        TDM_UT_INFO("* testing for %c%c%c%c", FOURCC_STR(formats[f]));
 
-                       if (tc_tdm_output_is_hwc_enable(outputs[o]))
-                               dst_layer = NULL;
-                       else {
-                               FindLayer(o, formats[f], &dst_pos);
+                       FindLayer(o, formats[f], &dst_pos);
 
-                               if (!dst_layer) {
-                                       TDM_UT_INFO("no proper layer for %c%c%c%c", FOURCC_STR(formats[f]));
-                                       continue;
-                               }
+                       if (!dst_layer && !tc_tdm_output_is_hwc_enable(outputs[o])) {
+                               TDM_UT_INFO("no proper layer for %c%c%c%c", FOURCC_STR(formats[f]));
+                               continue;
                        }
 
-                       EXPECT_EQ(TestPrepare(o, half_size, half_size, formats[f],
+                       EXPECT_EQ(TestPrepare(o, dst_pos.w, dst_pos.h, formats[f],
                                                                  TDM_TRANSFORM_NORMAL, TDM_CAPTURE_TYPE_ONESHOT, -1, true), true);
 
                        EXPECT_EQ(tdm_capture_set_done_handler(capture, _tc_tdm_capture_done_cb, &done), TDM_ERROR_NONE);
@@ -884,35 +882,23 @@ TEST_P(TDMBackendCapture, CaptureOneshotAttachFewTimesInOneCommit)
        int done;
 
        for (int o = 0; o < output_count; o++) {
-               const tdm_output_mode *mode = NULL;
 
                if (!tc_tdm_output_is_connected(outputs[o]))
                        continue;
 
-               EXPECT_EQ(tdm_output_get_mode(outputs[o], &mode), TDM_ERROR_NONE);
+               EXPECT_EQ(DstPosPrepare(o, true), true);
 
                for (int f = 0; f < format_count; f++) {
-                       int half_size = ((mode->hdisplay <= mode->vdisplay) ? mode->hdisplay : mode->vdisplay) / 2;
-
-                       dst_pos.x = (mode->hdisplay - half_size) / 2;
-                       dst_pos.y = (mode->vdisplay - half_size) / 2;
-                       dst_pos.w = half_size;
-                       dst_pos.h = half_size;
-
                        TDM_UT_INFO("* testing for %c%c%c%c", FOURCC_STR(formats[f]));
 
-                       if (tc_tdm_output_is_hwc_enable(outputs[o]))
-                               dst_layer = NULL;
-                       else {
-                               FindLayer(o, formats[f], &dst_pos);
+                       FindLayer(o, formats[f], &dst_pos);
 
-                               if (!dst_layer) {
-                                       TDM_UT_INFO("no proper layer for %c%c%c%c", FOURCC_STR(formats[f]));
-                                       continue;
-                               }
+                       if (!dst_layer && !tc_tdm_output_is_hwc_enable(outputs[o])) {
+                               TDM_UT_INFO("no proper layer for %c%c%c%c", FOURCC_STR(formats[f]));
+                               continue;
                        }
 
-                       EXPECT_EQ(TestPrepare(o, half_size, half_size, formats[f],
+                       EXPECT_EQ(TestPrepare(o, dst_pos.w, dst_pos.h, formats[f],
                                                                  TDM_TRANSFORM_NORMAL, TDM_CAPTURE_TYPE_ONESHOT, -1, false), true);
 
                        done = 0;
@@ -996,35 +982,23 @@ TEST_P(TDMBackendCapture, CaptureStreamLetterboxSize)
        TDM_UT_SKIP_FLAG(capabilities & TDM_CAPTURE_CAPABILITY_STREAM);
 
        for (int o = 0; o < output_count; o++) {
-               const tdm_output_mode *mode = NULL;
 
                if (!tc_tdm_output_is_connected(outputs[o]))
                        continue;
 
-               EXPECT_EQ(tdm_output_get_mode(outputs[o], &mode), TDM_ERROR_NONE);
+               EXPECT_EQ(DstPosPrepare(o, true), true);
 
                for (int f = 0; f < format_count; f++) {
-                       int half_size = ((mode->hdisplay <= mode->vdisplay) ? mode->hdisplay : mode->vdisplay) / 2;
-
-                       dst_pos.x = (mode->hdisplay - half_size) / 2;
-                       dst_pos.y = (mode->vdisplay - half_size) / 2;
-                       dst_pos.w = half_size;
-                       dst_pos.h = half_size;
-
                        TDM_UT_INFO("* testing for %c%c%c%c", FOURCC_STR(formats[f]));
 
-                       if (tc_tdm_output_is_hwc_enable(outputs[o]))
-                               dst_layer = NULL;
-                       else {
-                               FindLayer(o, formats[f], &dst_pos);
+                       FindLayer(o, formats[f], &dst_pos);
 
-                               if (!dst_layer) {
-                                       TDM_UT_INFO("no proper layer for %c%c%c%c", FOURCC_STR(formats[f]));
-                                       continue;
-                               }
+                       if (!dst_layer && !tc_tdm_output_is_hwc_enable(outputs[o])) {
+                               TDM_UT_INFO("no proper layer for %c%c%c%c", FOURCC_STR(formats[f]));
+                               continue;
                        }
 
-                       EXPECT_EQ(TestPrepare(o, half_size, half_size, formats[f],
+                       EXPECT_EQ(TestPrepare(o, dst_pos.w, dst_pos.h, formats[f],
                                                                  TDM_TRANSFORM_NORMAL, TDM_CAPTURE_TYPE_STREAM, -1, false), true);
 
                        EXPECT_EQ(tdm_capture_set_done_handler(capture, _tc_tdm_capture_stream_done_cb, (void*)this), TDM_ERROR_NONE);
@@ -1060,35 +1034,22 @@ TEST_P(TDMBackendCapture, CaptureStreamFullSize)
        TDM_UT_SKIP_FLAG(capabilities & TDM_CAPTURE_CAPABILITY_STREAM);
 
        for (int o = 0; o < output_count; o++) {
-               const tdm_output_mode *mode = NULL;
-
                if (!tc_tdm_output_is_connected(outputs[o]))
                        continue;
 
-               EXPECT_EQ(tdm_output_get_mode(outputs[o], &mode), TDM_ERROR_NONE);
+               EXPECT_EQ(DstPosPrepare(o, true), true);
 
                for (int f = 0; f < format_count; f++) {
-                       int half_size = ((mode->hdisplay <= mode->vdisplay) ? mode->hdisplay : mode->vdisplay) / 2;
-
-                       dst_pos.x = (mode->hdisplay - half_size) / 2;
-                       dst_pos.y = (mode->vdisplay - half_size) / 2;
-                       dst_pos.w = half_size;
-                       dst_pos.h = half_size;
-
                        TDM_UT_INFO("* testing for %c%c%c%c", FOURCC_STR(formats[f]));
 
-                       if (tc_tdm_output_is_hwc_enable(outputs[o]))
-                               dst_layer = NULL;
-                       else {
-                               FindLayer(o, formats[f], &dst_pos);
+                       FindLayer(o, formats[f], &dst_pos);
 
-                               if (!dst_layer) {
-                                       TDM_UT_INFO("no proper layer for %c%c%c%c", FOURCC_STR(formats[f]));
-                                       continue;
-                               }
+                       if (!dst_layer && !tc_tdm_output_is_hwc_enable(outputs[o])) {
+                               TDM_UT_INFO("no proper layer for %c%c%c%c", FOURCC_STR(formats[f]));
+                               continue;
                        }
 
-                       EXPECT_EQ(TestPrepare(o, half_size, half_size, formats[f],
+                       EXPECT_EQ(TestPrepare(o, dst_pos.w, dst_pos.h, formats[f],
                                                                  TDM_TRANSFORM_NORMAL, TDM_CAPTURE_TYPE_STREAM, -1, true), true);
 
                        EXPECT_EQ(tdm_capture_set_done_handler(capture, _tc_tdm_capture_stream_done_cb, (void*)this), TDM_ERROR_NONE);