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);
/* 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);
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;
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();
};
}
}
-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;
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);
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()
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