haltest: add hwc property functions tc 75/235475/1
authorJunkyeong Kim <jk0430.kim@samsung.com>
Fri, 5 Jun 2020 01:35:06 +0000 (10:35 +0900)
committerJunkyeong Kim <jk0430.kim@samsung.com>
Fri, 5 Jun 2020 01:35:11 +0000 (10:35 +0900)
Change-Id: I99dbb20d9c669879d0c5c9d3c203cd2b13ade345
Signed-off-by: Junkyeong Kim <jk0430.kim@samsung.com>
haltests/src/tc_tdm_hwc.cpp

index b3618e933f351cebca531e4d03acf568efb5260d..8307bedfe9f0ebcc2ce8b38edf6acb00008f83fb 100644 (file)
@@ -135,6 +135,100 @@ TEST_P(TDMHwc, GetSupportedFormatsSuccessful)
        }
 }
 
+
+/* tdm_hwc_get_video_available_properties() */
+TEST_P(TDMHwc, GetAvailableVideoPropertiesFailNull)
+{
+       TDM_UT_SKIP_FLAG(has_outputs);
+
+       tdm_hwc *hwc = NULL;
+       tdm_error error = TDM_ERROR_NONE;
+       const tdm_prop *props;
+       int count;
+
+       for (int o = 0; o < output_count; o++) {
+               hwc = tdm_output_get_hwc(outputs[o], &error);
+               if (hwc) {
+                       error = tdm_hwc_get_video_available_properties(NULL, &props, &count);
+                       ASSERT_NE(TDM_ERROR_NONE, error);
+
+                       error = tdm_hwc_get_video_available_properties(hwc, NULL, &count);
+                       ASSERT_NE(TDM_ERROR_NONE, error);
+
+                       error = tdm_hwc_get_video_available_properties(hwc, &props, NULL);
+                       ASSERT_NE(TDM_ERROR_NONE, error);
+               } else {
+                       error = tdm_hwc_get_video_available_properties(hwc, &props, &count);
+                       ASSERT_NE(TDM_ERROR_NONE, error);
+               }
+       }
+}
+
+TEST_P(TDMHwc, GetAvailableVideoPropertiesSuccess)
+{
+       TDM_UT_SKIP_FLAG(has_outputs);
+
+       tdm_hwc *hwc = NULL;
+       tdm_error error = TDM_ERROR_NONE;
+       const tdm_prop *props;
+       int count;
+
+       for (int o = 0; o < output_count; o++) {
+               hwc = tdm_output_get_hwc(outputs[o], &error);
+               if (hwc) {
+                       error = tdm_hwc_get_video_available_properties(hwc, &props, &count);
+                       ASSERT_TRUE(TDM_ERROR_NONE == error || TDM_ERROR_NOT_IMPLEMENTED == error);
+               } else {
+                       error = tdm_hwc_get_video_available_properties(hwc, &props, &count);
+                       ASSERT_NE(TDM_ERROR_NONE, error);
+               }
+       }
+}
+
+/* tdm_hwc_get_capabilities() */
+TEST_P(TDMHwc, GetAvailableCapabilitiesFailNull)
+{
+       TDM_UT_SKIP_FLAG(has_outputs);
+
+       tdm_hwc *hwc = NULL;
+       tdm_error error = TDM_ERROR_NONE;
+       tdm_hwc_capability hwc_caps;
+
+       for (int o = 0; o < output_count; o++) {
+               hwc = tdm_output_get_hwc(outputs[o], &error);
+               if (hwc) {
+                       error = tdm_hwc_get_capabilities(NULL, &hwc_caps);
+                       ASSERT_NE(TDM_ERROR_NONE, error);
+
+                       error = tdm_hwc_get_capabilities(hwc, NULL);
+                       ASSERT_NE(TDM_ERROR_NONE, error);
+               } else {
+                       error = tdm_hwc_get_capabilities(hwc, &hwc_caps);
+                       ASSERT_NE(TDM_ERROR_NONE, error);
+               }
+       }
+}
+
+TEST_P(TDMHwc, GetAvailableCapabilitiesSuccess)
+{
+       TDM_UT_SKIP_FLAG(has_outputs);
+
+       tdm_hwc *hwc = NULL;
+       tdm_error error = TDM_ERROR_NONE;
+       tdm_hwc_capability hwc_caps;
+
+       for (int o = 0; o < output_count; o++) {
+               hwc = tdm_output_get_hwc(outputs[o], &error);
+               if (hwc) {
+                       error = tdm_hwc_get_capabilities(hwc, &hwc_caps);
+                       ASSERT_TRUE(TDM_ERROR_NONE == error || TDM_ERROR_NOT_IMPLEMENTED == error);
+               } else {
+                       error = tdm_hwc_get_capabilities(hwc, &hwc_caps);
+                       ASSERT_NE(TDM_ERROR_NONE, error);
+               }
+       }
+}
+
 /* tdm_hwc_get_available_properties() */
 TEST_P(TDMHwc, GetAvailablePropertiesFailNullWin)
 {
@@ -518,6 +612,113 @@ TEST_P(TDMHwc, CommitSuccessful)
        }
 }
 
+/* tdm_hwc_set_property() */
+TEST_P(TDMHwc, SetPropertyFailNull)
+{
+       TDM_UT_SKIP_FLAG(has_outputs);
+
+       tdm_hwc *hwc = NULL;
+       tdm_error error = TDM_ERROR_NONE;
+       tdm_value value;
+
+       value.u32 = 0;
+
+       for (int o = 0; o < output_count; o++) {
+               hwc = tdm_output_get_hwc(outputs[o], &error);
+               if (hwc) {
+                       error = tdm_hwc_set_property(NULL, 0, value);
+                       ASSERT_EQ(TDM_ERROR_INVALID_PARAMETER, error);
+               } else {
+                       error = tdm_hwc_set_property(hwc, 0, value);
+                       ASSERT_NE(TDM_ERROR_NONE, error);
+               }
+       }
+}
+
+TEST_P(TDMHwc, SetPropertySuccess)
+{
+       TDM_UT_SKIP_FLAG(has_outputs);
+
+       tdm_hwc *hwc = NULL;
+       tdm_error error = TDM_ERROR_NONE;
+       const tdm_prop *props;
+       int count;
+       tdm_value value;
+
+       value.u32 = 0;
+
+       for (int o = 0; o < output_count; o++) {
+               hwc = tdm_output_get_hwc(outputs[o], &error);
+               if (hwc) {
+                       error = tdm_hwc_get_available_properties(hwc, &props, &count);
+                       ASSERT_TRUE(TDM_ERROR_NONE == error || TDM_ERROR_NOT_IMPLEMENTED == error);
+
+                       if (count == 0) {
+                               error = tdm_hwc_set_property(hwc, 0, value);
+                               ASSERT_TRUE(TDM_ERROR_NONE == error || TDM_ERROR_NOT_IMPLEMENTED == error);
+                       } else {
+                               error = tdm_hwc_set_property(hwc, props[0].id, value);
+                               ASSERT_EQ(TDM_ERROR_NONE, error);
+                       }
+               } else {
+                       error = tdm_hwc_set_property(hwc, 0, value);
+                       ASSERT_NE(TDM_ERROR_NONE, error);
+               }
+       }
+}
+
+/* tdm_hwc_get_property() */
+TEST_P(TDMHwc, GetPropertyFailNull)
+{
+       TDM_UT_SKIP_FLAG(has_outputs);
+
+       tdm_hwc *hwc = NULL;
+       tdm_error error = TDM_ERROR_NONE;
+       tdm_value value;
+
+       for (int o = 0; o < output_count; o++) {
+               hwc = tdm_output_get_hwc(outputs[o], &error);
+               if (hwc) {
+                       error = tdm_hwc_get_property(NULL, 0, &value);
+                       ASSERT_EQ(TDM_ERROR_INVALID_PARAMETER, error);
+               } else {
+                       error = tdm_hwc_get_property(hwc, 0, &value);
+                       ASSERT_NE(TDM_ERROR_NONE, error);
+               }
+       }
+}
+
+TEST_P(TDMHwc, GetPropertySuccess)
+{
+       TDM_UT_SKIP_FLAG(has_outputs);
+
+       tdm_hwc *hwc = NULL;
+       tdm_error error = TDM_ERROR_NONE;
+       const tdm_prop *props;
+       int count;
+       tdm_value value;
+
+       for (int o = 0; o < output_count; o++) {
+               hwc = tdm_output_get_hwc(outputs[o], &error);
+
+               if (hwc) {
+                       error = tdm_hwc_get_available_properties(hwc, &props, &count);
+                       ASSERT_TRUE(TDM_ERROR_NONE == error || TDM_ERROR_NOT_IMPLEMENTED == error);
+
+                       if (count == 0) {
+                               error = tdm_hwc_get_property(hwc, 0, &value);
+                               ASSERT_TRUE(TDM_ERROR_NONE == error || TDM_ERROR_NOT_IMPLEMENTED == error);
+                       } else {
+                               error = tdm_hwc_get_property(hwc, props[0].id, &value);
+                               ASSERT_EQ(TDM_ERROR_NONE, error);
+                       }
+               } else {
+                       error = tdm_hwc_get_property(hwc, 0, &value);
+                       ASSERT_NE(TDM_ERROR_NONE, error);
+               }
+       }
+}
+
 #ifdef TDM_UT_TEST_WITH_PARAMS
 INSTANTIATE_TEST_CASE_P(TDMHwcParams,
                                                TDMHwc,
@@ -528,4 +729,4 @@ INSTANTIATE_TEST_CASE_P(TDMHwcParams,
                                                Values(TDM_DEFAULT_MODULE));
 #endif
 
-/* LCOV_EXCL_END */
\ No newline at end of file
+/* LCOV_EXCL_END */