utest: fix all failed tests and add new tests
[platform/core/uifw/libtdm.git] / utests / src / ut_tdm_capture.cpp
index 424f2c6..7670ea5 100644 (file)
@@ -51,7 +51,7 @@ protected:
        virtual void SetEnvs()
        {
                setenv("TDM_DLOG", "1", 1);
-               setenv("XDG_RUNTIME_DIR", ".", 1);
+               setenv("XDG_RUNTIME_DIR", "/run", 1);
                setenv("TBM_DLOG", "1", 1);
                setenv("TDM_DEBUG_MODULE", "all", 1);
                setenv("TDM_DEBUG", "1", 1);
@@ -78,8 +78,8 @@ protected:
                /* FIXME: fix the error. If we initialize TBM before TDM we get fail
                 * in the tdm_output_set_dpms */
 #if 0
-               tbm_bufmgr = tbm_bufmgr_init(-1);
-               ASSERT_FALSE(tbm_bufmgr == NULL);
+               bufmgr = tbm_bufmgr_init(-1);
+               ASSERT_FALSE(bufmgr == NULL);
 #endif
 
                dpy = tdm_display_init(&error);
@@ -255,6 +255,13 @@ void TDMCapture::UtCaptureGetInfo(UtCapture *capture, double scale,
        int w = output_mode->hdisplay * scale;
        int h = output_mode->vdisplay * scale;
 
+       if (transform == TDM_TRANSFORM_90 || transform == TDM_TRANSFORM_270 ||
+               transform == TDM_TRANSFORM_FLIPPED_90 || transform == TDM_TRANSFORM_FLIPPED_270) {
+               int tmp = w;
+               w = h;
+               h = tmp;
+       }
+
        info->dst_config.size.h = w;
        info->dst_config.size.v = h;
        info->dst_config.pos.x = 0;
@@ -318,6 +325,7 @@ protected:
        void SetUp(void);
        void TearDown(void);
        void UtHandleCaptureEvent();
+       int UtPrepareToCapture(double scale, tdm_transform transform, tdm_capture_type type);
        int UtPrepareToCapture(double scale, tdm_transform transform);
        int UtPrepareToCapture();
 };
@@ -450,7 +458,7 @@ void TDMCaptureCommit::UtHandleCaptureEvent()
        }
 }
 
-int TDMCaptureCommit::UtPrepareToCapture(double scale, tdm_transform transform)
+int TDMCaptureCommit::UtPrepareToCapture(double scale, tdm_transform transform, tdm_capture_type type)
 {
        tdm_error error;
        tbm_surface_h buffer;
@@ -459,6 +467,7 @@ int TDMCaptureCommit::UtPrepareToCapture(double scale, tdm_transform transform)
                tdm_info_capture info = {0};
 
                UtCaptureGetInfo(&utCapture, scale, transform, &info);
+               info.type = type;
 
                error = tdm_capture_set_done_handler(utCapture.capture, UtCaptureDoneHandler, this);
                EXPECT_EQ(TDM_ERROR_NONE, error);
@@ -491,6 +500,11 @@ int TDMCaptureCommit::UtPrepareToCapture()
        return UtPrepareToCapture(1.0, TDM_TRANSFORM_NORMAL);
 }
 
+int TDMCaptureCommit::UtPrepareToCapture(double scale, tdm_transform transform)
+{
+       return UtPrepareToCapture(1.0, TDM_TRANSFORM_NORMAL, TDM_CAPTURE_TYPE_ONESHOT);
+}
+
 class TDMCaptureCommitThread : public TDMCaptureCommit {
 protected:
        void SetEnvs()
@@ -845,3 +859,122 @@ TEST_F(TDMCaptureCommit, CaptureCommitSuccessScaleAndTransform)
 
        ASSERT_EQ(captures.size(), utCaptureDoneHandlerSuccessCounter);
 }
+
+TEST_F(TDMCaptureCommit, CaptureCommitSuccessScaleAndTransform90)
+{
+       SKIP_FLAG(has_capture);
+       tdm_error error;
+
+       ASSERT_NE(-1, UtPrepareToCapture(2.0, TDM_TRANSFORM_90));
+
+       for (UtCapture & utCapture : captures) {
+               error = tdm_capture_commit(utCapture.capture);
+               ASSERT_EQ(TDM_ERROR_NONE, error);
+       }
+
+       UtHandleCaptureEvent();
+
+       ASSERT_EQ(captures.size(), utCaptureDoneHandlerSuccessCounter);
+}
+
+TEST_F(TDMCaptureCommit, CaptureCommitSuccessScaleAndTransform270)
+{
+       SKIP_FLAG(has_capture);
+       tdm_error error;
+
+       ASSERT_NE(-1, UtPrepareToCapture(2.0, TDM_TRANSFORM_270));
+
+       for (UtCapture & utCapture : captures) {
+               error = tdm_capture_commit(utCapture.capture);
+               ASSERT_EQ(TDM_ERROR_NONE, error);
+       }
+
+       UtHandleCaptureEvent();
+
+       ASSERT_EQ(captures.size(), utCaptureDoneHandlerSuccessCounter);
+}
+
+TEST_F(TDMCaptureCommit, CaptureCommitSuccessScaleAndTransformFliped)
+{
+       SKIP_FLAG(has_capture);
+       tdm_error error;
+
+       ASSERT_NE(-1, UtPrepareToCapture(2.0, TDM_TRANSFORM_FLIPPED));
+
+       for (UtCapture & utCapture : captures) {
+               error = tdm_capture_commit(utCapture.capture);
+               ASSERT_EQ(TDM_ERROR_NONE, error);
+       }
+
+       UtHandleCaptureEvent();
+
+       ASSERT_EQ(captures.size(), utCaptureDoneHandlerSuccessCounter);
+}
+
+TEST_F(TDMCaptureCommit, CaptureCommitSuccessScaleAndTransformFliped90)
+{
+       SKIP_FLAG(has_capture);
+       tdm_error error;
+
+       ASSERT_NE(-1, UtPrepareToCapture(2.0, TDM_TRANSFORM_FLIPPED_90));
+
+       for (UtCapture & utCapture : captures) {
+               error = tdm_capture_commit(utCapture.capture);
+               ASSERT_EQ(TDM_ERROR_NONE, error);
+       }
+
+       UtHandleCaptureEvent();
+
+       ASSERT_EQ(captures.size(), utCaptureDoneHandlerSuccessCounter);
+}
+
+TEST_F(TDMCaptureCommit, CaptureCommitSuccessScaleAndTransformFliped180)
+{
+       SKIP_FLAG(has_capture);
+       tdm_error error;
+
+       ASSERT_NE(-1, UtPrepareToCapture(2.0, TDM_TRANSFORM_FLIPPED_180));
+
+       for (UtCapture & utCapture : captures) {
+               error = tdm_capture_commit(utCapture.capture);
+               ASSERT_EQ(TDM_ERROR_NONE, error);
+       }
+
+       UtHandleCaptureEvent();
+
+       ASSERT_EQ(captures.size(), utCaptureDoneHandlerSuccessCounter);
+}
+
+TEST_F(TDMCaptureCommit, CaptureCommitSuccessScaleAndTransformFliped270)
+{
+       SKIP_FLAG(has_capture);
+       tdm_error error;
+
+       ASSERT_NE(-1, UtPrepareToCapture(2.0, TDM_TRANSFORM_FLIPPED_270));
+
+       for (UtCapture & utCapture : captures) {
+               error = tdm_capture_commit(utCapture.capture);
+               ASSERT_EQ(TDM_ERROR_NONE, error);
+       }
+
+       UtHandleCaptureEvent();
+
+       ASSERT_EQ(captures.size(), utCaptureDoneHandlerSuccessCounter);
+}
+
+TEST_F(TDMCaptureCommit, CaptureCommitSuccessScaleStream)
+{
+       SKIP_FLAG(has_capture);
+       tdm_error error;
+
+       ASSERT_NE(-1, UtPrepareToCapture(1.0, TDM_TRANSFORM_NORMAL, TDM_CAPTURE_TYPE_STREAM));
+
+       for (UtCapture & utCapture : captures) {
+               error = tdm_capture_commit(utCapture.capture);
+               ASSERT_EQ(TDM_ERROR_NONE, error);
+       }
+
+       UtHandleCaptureEvent();
+
+       ASSERT_EQ(captures.size(), utCaptureDoneHandlerSuccessCounter);
+}
\ No newline at end of file