haltest: add test for touchscreen 59/255659/2
authorYoungjae Cho <y0.cho@samsung.com>
Mon, 22 Mar 2021 05:10:57 +0000 (14:10 +0900)
committerYoungjae Cho <y0.cho@samsung.com>
Mon, 22 Mar 2021 07:10:07 +0000 (16:10 +0900)
Change-Id: I9527c43c2b07a75a3854e2d0413e09802e2a34a0
Signed-off-by: Youngjae Cho <y0.cho@samsung.com>
haltest/touchscreen.cpp [new file with mode: 0644]

diff --git a/haltest/touchscreen.cpp b/haltest/touchscreen.cpp
new file mode 100644 (file)
index 0000000..7c3e7a7
--- /dev/null
@@ -0,0 +1,235 @@
+#include <system_info.h>
+
+#include "haltest.h"
+#include "hal-touchscreen.h"
+
+class TOUCHSCREEN : public testing::Test
+{
+       protected:
+               static void SetUpHalTestSuite() {
+                       int ret_val, val;
+                       enum touchscreen_state state;
+
+                       ret_val = hal_device_touchscreen_get_backend();
+                       ASSERT_EQ(ret_val, 0) << strerr("Failed to get touchscreeen backend", ret_val);
+
+                       TOUCHSCREEN::supported = true;
+
+                       ret_val = hal_device_touchscreen_get_state(&state);
+                       orig_state = (ret_val == 0 ? state : -1);
+
+                       ret_val = hal_device_touchscreen_get_powersaving(&val);
+                       orig_powersaving = (ret_val == 0 ? val : -1);
+
+                       ret_val = hal_device_touchscreen_glove_mode_get_state(&val);
+                       orig_glove_mode = (ret_val == 0 ? val : -1);
+               }
+
+               static void TearDownHalTestSuite() {
+                       if (TOUCHSCREEN::orig_state != -1)
+                               hal_device_touchscreen_set_state((enum touchscreen_state)TOUCHSCREEN::orig_state);
+                       if (TOUCHSCREEN::orig_powersaving != -1)
+                               hal_device_touchscreen_set_powersaving(TOUCHSCREEN::orig_powersaving);
+                       if (TOUCHSCREEN::orig_glove_mode != -1)
+                               hal_device_touchscreen_glove_mode_set_state(TOUCHSCREEN::orig_glove_mode);
+               }
+
+               static bool supported;
+               static int orig_state;
+               static int orig_powersaving;
+               static int orig_glove_mode;
+};
+
+bool TOUCHSCREEN::supported = false;
+int TOUCHSCREEN::orig_state = -1;
+int TOUCHSCREEN::orig_powersaving = -1;
+int TOUCHSCREEN::orig_glove_mode = -1;
+
+TEST_F(TOUCHSCREEN, GetStateP)
+{
+       int ret_val;
+       enum touchscreen_state state;
+
+       if (!TOUCHSCREEN::supported) {
+               SKIP_MESSAGE("Touchscreen not supported");
+               return;
+       }
+
+       ret_val = hal_device_touchscreen_get_state(&state);
+       if (ret_val == -ENODEV) {
+               SKIP_MESSAGE("Not supported HAL");
+               return;
+       }
+       ASSERT_EQ(ret_val, 0) << strerr("Failed to get touchscreen state", ret_val);
+}
+
+TEST_F(TOUCHSCREEN, SetStateP)
+{
+       int ret_val;
+       enum touchscreen_state state;
+
+
+       if (!TOUCHSCREEN::supported) {
+               SKIP_MESSAGE("TOUCHSCREEN NOT SUPPORTED");
+               return;
+       }
+
+       ret_val = hal_device_touchscreen_set_state(TOUCHSCREEN_OFF);
+       if (ret_val == -ENODEV) {
+               SKIP_MESSAGE("Not supported HAL");
+               return;
+       }
+       EXPECT_EQ(ret_val, 0) << strerr("Failed to set touchscreen state", ret_val);
+
+       ret_val = hal_device_touchscreen_get_state(&state);
+       if (ret_val == -ENODEV) {
+               SKIP_MESSAGE("Not supported HAL");
+               return;
+       }
+       EXPECT_EQ(ret_val, 0) << strerr("Failed to get touchscreen state", ret_val);
+       EXPECT_EQ(state, TOUCHSCREEN_OFF) << "Failed to set touchscreen state";
+
+       ret_val = hal_device_touchscreen_set_state(TOUCHSCREEN_ON);
+       if (ret_val == -ENODEV) {
+               SKIP_MESSAGE("Not supported HAL");
+               return;
+       }
+       EXPECT_EQ(ret_val, 0) << strerr("Failed to set touchscreen state", ret_val);
+
+       ret_val = hal_device_touchscreen_get_state(&state);
+       if (ret_val == -ENODEV) {
+               SKIP_MESSAGE("Not supported HAL");
+               return;
+       }
+       EXPECT_EQ(ret_val, 0) << strerr("Failed to get touchscreen state", ret_val);
+       EXPECT_EQ(state, TOUCHSCREEN_ON) << "Failed to set touchscreen state";
+
+       // restore
+       if (TOUCHSCREEN::orig_state != -1)
+               hal_device_touchscreen_set_state((enum touchscreen_state)TOUCHSCREEN::orig_state);
+}
+
+TEST_F(TOUCHSCREEN, GetPowersavingP)
+{
+       int ret_val, state;
+
+       if (!TOUCHSCREEN::supported) {
+               SKIP_MESSAGE("Touchscreen not supported");
+               return;
+       }
+
+       ret_val = hal_device_touchscreen_get_powersaving(&state);
+       if (ret_val == -ENODEV) {
+               SKIP_MESSAGE("not supported hal");
+               return;
+       }
+       ASSERT_EQ(ret_val, 0) << strerr("Failed to get powersaving", ret_val);
+}
+
+TEST_F(TOUCHSCREEN,SetPowersavingP)
+{
+       int ret_val;
+       int state;
+
+       if (!TOUCHSCREEN::supported) {
+               SKIP_MESSAGE("Touchscreen not supported");
+               return;
+       }
+
+       ret_val = hal_device_touchscreen_set_powersaving(0);
+       if (ret_val == -ENODEV) {
+               SKIP_MESSAGE("Not supported HAL");
+               return;
+       }
+       EXPECT_EQ(ret_val, 0) << strerr("Failed to set powersaving", ret_val);
+
+       ret_val = hal_device_touchscreen_get_powersaving(&state);
+       if (ret_val == -ENODEV) {
+               SKIP_MESSAGE("Not supported HAL");
+               return;
+       }
+       EXPECT_EQ(ret_val, 0) << strerr("Failed to get powersaving", ret_val);
+       EXPECT_EQ(state, 0) << "Failed to set touchscreen powersaving";
+
+       ret_val = hal_device_touchscreen_set_powersaving(1);
+       if (ret_val == -ENODEV) {
+               SKIP_MESSAGE("Not supported HAL");
+               return;
+       }
+       EXPECT_EQ(ret_val, 0) << strerr("Failed to set powersaving", ret_val);
+
+       ret_val = hal_device_touchscreen_get_powersaving(&state);
+       if (ret_val == -ENODEV) {
+               SKIP_MESSAGE("Not supported HAL");
+               return;
+       }
+       DEBUG_MESSAGE("YJ: pwoersaving=%d", state);
+       EXPECT_EQ(ret_val, 0) << strerr("Failed to get powersaving", ret_val);
+       EXPECT_EQ(state, 1) << "Failed to set touchscreen powersaving";
+
+       // restore
+       if (TOUCHSCREEN::orig_powersaving != -1)
+               hal_device_touchscreen_set_powersaving((enum touchscreen_state)TOUCHSCREEN::orig_powersaving);
+}
+
+TEST_F(TOUCHSCREEN, GetGloveModeStateP)
+{
+       int ret_val, state;
+
+       if (!TOUCHSCREEN::supported) {
+               SKIP_MESSAGE("Touchscreen not supported");
+               return;
+       }
+
+       ret_val = hal_device_touchscreen_glove_mode_get_state(&state);
+       if (ret_val == -ENODEV) {
+               SKIP_MESSAGE("Not supported HAL");
+               return;
+       }
+       EXPECT_EQ(ret_val, 0) << strerr("Failed to get glove mode", ret_val);
+}
+
+TEST_F(TOUCHSCREEN, SetGloveModeStateP)
+{
+       int ret_val, glove_mode;
+
+
+       if (!TOUCHSCREEN::supported) {
+               SKIP_MESSAGE("Touchscreen not supported");
+               return;
+       }
+
+       ret_val = hal_device_touchscreen_glove_mode_set_state((int)GLOVE_MODE_OFF);
+       if (ret_val == -ENODEV) {
+               SKIP_MESSAGE("Not supported HAL");
+               return;
+       }
+       EXPECT_EQ(ret_val, 0) << strerr("Failed to set glove mode", ret_val);
+
+       ret_val = hal_device_touchscreen_glove_mode_get_state(&glove_mode);
+       if (ret_val == -ENODEV) {
+               SKIP_MESSAGE("Not supported HAL");
+               return;
+       }
+       EXPECT_EQ(ret_val, 0) << strerr("Failed to get glove mode", ret_val);
+       EXPECT_EQ(glove_mode, (int)GLOVE_MODE_OFF) << "Failed to set glove mode";
+
+       ret_val = hal_device_touchscreen_glove_mode_set_state((int)GLOVE_MODE_ON);
+       if (ret_val == -ENODEV) {
+               SKIP_MESSAGE("Not supported HAL");
+               return;
+       }
+       EXPECT_EQ(ret_val, 0) << strerr("Failed to set glove mode", ret_val);
+
+       ret_val = hal_device_touchscreen_glove_mode_get_state(&glove_mode);
+       if (ret_val == -ENODEV) {
+               SKIP_MESSAGE("Not supported HAL");
+               return;
+       }
+       EXPECT_EQ(ret_val, 0) << strerr("Failed to get glove mode", ret_val);
+       EXPECT_EQ(glove_mode, (int)GLOVE_MODE_ON) << "Failed to set glove mode";
+
+       // restore
+       if (TOUCHSCREEN::orig_glove_mode != -1)
+               hal_device_touchscreen_glove_mode_set_state(TOUCHSCREEN::orig_glove_mode);
+}