utests: add more tc 25/171925/1
authorBoram Park <boram1288.park@samsung.com>
Thu, 8 Mar 2018 06:39:37 +0000 (15:39 +0900)
committerBoram Park <boram1288.park@samsung.com>
Thu, 8 Mar 2018 06:39:37 +0000 (15:39 +0900)
Change-Id: I304f08c9f390acdfd4a7935be4a404afaa6e6c63

utests/src/ut_tdm_output.cpp
utests/src/ut_tdm_vblank.cpp

index 4556178..e543a55 100644 (file)
@@ -1334,6 +1334,28 @@ TEST_P(TDMOutput, OutputWaitVblankFewTimesInOneVblank)
        }
 }
 
+TEST_P(TDMOutput, OutputWaitVblankBeforeDpmsOff)
+{
+       TDM_UT_SKIP_FLAG(has_outputs);
+
+       for (int o = 0; o < output_count; o++) {
+               if (!ut_tdm_output_is_connected(outputs[o]))
+                       continue;
+
+               ASSERT_TRUE(ut_tdm_output_prepare(dpy, outputs[o]) == true);
+
+               for (int t = 0; t < 10; t++) {
+                       bool done = false;
+
+                       ASSERT_TRUE(tdm_output_wait_vblank(outputs[o], 1, 0, _ut_tdm_output_done_cb, &done) == TDM_ERROR_NONE);
+                       if (t == 9)
+                               ASSERT_TRUE(tdm_output_set_dpms(outputs[o], TDM_OUTPUT_DPMS_OFF) == TDM_ERROR_NONE);
+                       while(!done)
+                               ASSERT_TRUE(tdm_display_handle_events(dpy) == TDM_ERROR_NONE);
+               }
+       }
+}
+
 TEST_P(TDMOutput, OutputRemoveVblankHandler)
 {
        TDM_UT_SKIP_FLAG(has_outputs);
index a4d9f8b..3b3e8e3 100644 (file)
@@ -1126,6 +1126,33 @@ TEST_P(TDMVblank, VblankWaitDpmsOff)
        }
 }
 
+TEST_P(TDMVblank, VblankWaitBeforeDpmsOff)
+{
+       TDM_UT_SKIP_FLAG(has_outputs);
+
+       ASSERT_TRUE(TestPrepareOutput() == true);
+       ASSERT_TRUE(TestCreateVblanks() == true);
+
+       for (int v = 0; v < vblank_count; v++) {
+               unsigned int temp = 0;
+               tdm_error ret;
+               tdm_output *output = tdm_vblank_get_output(vblanks[v], &ret);
+               ASSERT_TRUE(ret == TDM_ERROR_NONE);
+
+               if (!ut_tdm_output_is_connected(output))
+                       continue;
+
+               ASSERT_TRUE(ut_tdm_output_unset(dpy, output) == true);
+
+               ASSERT_TRUE(tdm_vblank_wait(vblanks[v], 0, 0, 1, _ut_tdm_vblank_cb, &temp) == TDM_ERROR_NONE);
+
+               ASSERT_TRUE(tdm_output_set_dpms(output, TDM_OUTPUT_DPMS_OFF) == TDM_ERROR_NONE);
+
+               while (temp == 0)
+                       ASSERT_TRUE(tdm_display_handle_events(dpy) == TDM_ERROR_NONE);
+       }
+}
+
 TEST_P(TDMVblank, VblankWaitSetEnableFakeDpmsOff)
 {
        TDM_UT_SKIP_FLAG(has_outputs);