--- /dev/null
+#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);
+}