haltest: add test for haptic, memory 71/255671/7 accepted/tizen/unified/20210331.113729 submit/tizen/20210323.041901 submit/tizen/20210329.052432
authorYunmi Ha <yunmi.ha@samsung.com>
Mon, 22 Mar 2021 08:40:24 +0000 (17:40 +0900)
committerYunmi Ha <yunmi.ha@samsung.com>
Tue, 23 Mar 2021 04:06:25 +0000 (13:06 +0900)
Change-Id: I5be1835fc31b5c5cebc1f65d6d9c8864d634f35c
Signed-off-by: Yunmi Ha <yunmi.ha@samsung.com>
haltest/haltest.h
haltest/haptic.cpp [new file with mode: 0644]
haltest/memory.cpp [new file with mode: 0644]

index 2e4af32..53856e7 100644 (file)
@@ -56,6 +56,7 @@ do { \
 #define FEATURE_THERMISTOR_AP       "http://tizen.org/feature/thermistor.ap"
 #define FEATURE_THERMISTOR_BATTERY  "http://tizen.org/feature/thermistor.battery"
 #define FEATURE_BEZEL               "http://tizen.org/feature/input.rotating_bezel"
+#define FEATURE_HAPTIC              "http://tizen.org/feature/feedback.vibration"
 
 // SetUp/TearDown function for a testsuite differ by gtest version
 #if (GTEST_VERSION_MAJOR >= 2 || (GTEST_VERSION_MAJOR == 1 && GTEST_VERSION_MINOR >= 10))
diff --git a/haltest/haptic.cpp b/haltest/haptic.cpp
new file mode 100644 (file)
index 0000000..761ed81
--- /dev/null
@@ -0,0 +1,142 @@
+#include <system_info.h>
+
+#include "haltest.h"
+#include "hal-haptic.h"
+
+class HAPTIC : public testing::Test {
+       protected:
+               static void SetUpHalTestSuite() {
+                       int ret_val;
+
+                       ret_val = system_info_get_platform_bool(FEATURE_HAPTIC, &HAPTIC::supported);
+                       ASSERT_EQ(ret_val, SYSTEM_INFO_ERROR_NONE) << "Failed to get haptic feature";
+               }
+
+               void SetUp() override {}
+               void TearDown() override {}
+
+               static bool supported;
+};
+
+bool HAPTIC::supported = false;
+
+#define CHECK_FEATURE() \
+               if (!HAPTIC::supported) { \
+                       SKIP_MESSAGE("Haptic is not supported."); \
+                       return; \
+               }
+
+#define CHECK_NODEV(ret_val) \
+       if (ret_val == -ENODEV) { \
+               SKIP_MESSAGE("Not supported HAL."); \
+               return ; \
+       }
+
+TEST_F(HAPTIC, GetBackendP)
+{
+       int ret_val;
+
+       CHECK_FEATURE()
+
+       ret_val = hal_device_haptic_get_backend();
+       EXPECT_EQ(ret_val, 0) << strerr("Failed to get haptic device", ret_val);
+}
+
+TEST_F(HAPTIC, GetDeviceCountP)
+{
+       int ret_val;
+       int count;;
+
+       CHECK_FEATURE()
+
+       ret_val = hal_device_haptic_get_device_count(&count);
+       CHECK_NODEV(ret_val)
+
+       EXPECT_EQ(ret_val, 0) << strerr("Failed to get device count", ret_val);
+}
+
+TEST_F(HAPTIC, OpenDeviceP)
+{
+       int ret_val;
+       int handle = -1;
+
+       CHECK_FEATURE()
+
+       ret_val = hal_device_haptic_open_device(&handle);
+       CHECK_NODEV(ret_val)
+
+       EXPECT_EQ(ret_val, 0) << strerr("Failed to open device", ret_val);
+       // handle >= 0
+       EXPECT_GE(handle, 0) << "Opened handle is invalid.";
+}
+
+TEST_F(HAPTIC, CloseDeviceP)
+{
+       int ret_val;
+       int handle = -1;
+
+       CHECK_FEATURE()
+
+       ret_val = hal_device_haptic_open_device(&handle);
+       CHECK_NODEV(ret_val)
+
+       EXPECT_EQ(ret_val, 0) << strerr("Failed to open device", ret_val);
+
+       ret_val = hal_device_haptic_close_device(handle);
+       EXPECT_EQ(ret_val, 0) << strerr("Failed to close device", ret_val);
+}
+
+TEST_F(HAPTIC, IsValidP)
+{
+       int ret_val;
+
+       CHECK_FEATURE()
+
+       ret_val = hal_device_haptic_is_valid();
+       CHECK_NODEV(ret_val)
+
+       EXPECT_EQ(ret_val, true) << "Haptic device is not valid.";
+}
+
+TEST_F(HAPTIC, VibrateP)
+{
+       int ret_val;
+       int handle = -1;
+
+       CHECK_FEATURE()
+
+       ret_val = hal_device_haptic_open_device(&handle);
+       CHECK_NODEV(ret_val)
+
+       EXPECT_EQ(ret_val, 0) << strerr("Failed to open device", ret_val);
+
+       ret_val = hal_device_haptic_vibrate(handle, 100, 0, 0, 2, 10000, 2);
+       EXPECT_EQ(ret_val, 0) << strerr("Failed to vibrate device", ret_val);
+
+       sleep(1);
+
+       hal_device_haptic_close_device(handle);
+}
+
+TEST_F(HAPTIC, StopDeviceP)
+{
+       int ret_val;
+       int handle = -1;
+
+       CHECK_FEATURE()
+
+       ret_val = hal_device_haptic_open_device(&handle);
+       CHECK_NODEV(ret_val)
+
+       EXPECT_EQ(ret_val, 0) << strerr("Failed to open device", ret_val);
+
+       ret_val = hal_device_haptic_vibrate(handle, 3000, 0, 0, 2, 10000, 2);
+       EXPECT_EQ(ret_val, 0) << strerr("Failed to vibrate device", ret_val);
+
+       sleep(1);
+
+       ret_val = hal_device_haptic_stop_device(handle);
+       EXPECT_EQ(ret_val, 0) << strerr("Failed to stop device", ret_val);
+
+       hal_device_haptic_close_device(handle);
+}
diff --git a/haltest/memory.cpp b/haltest/memory.cpp
new file mode 100644 (file)
index 0000000..5a350cf
--- /dev/null
@@ -0,0 +1,54 @@
+#include <unistd.h>
+#include <system_info.h>
+
+#include "haltest.h"
+#include "hal-memory.h"
+
+class MEMORY : public testing::Test {
+       protected:
+               void SetUp() override {}
+               void TearDown() override {}
+};
+
+#define CHECK_NODEV(ret_val) \
+       if (ret_val == -ENODEV) { \
+               SKIP_MESSAGE("Not supported HAL."); \
+               return ; \
+       }
+
+TEST_F(MEMORY, GetBackendP)
+{
+       int ret_val;
+
+       ret_val = hal_device_memory_get_backend();
+       EXPECT_EQ(ret_val, 0) << strerr("Failed to get memory device", ret_val);
+}
+
+TEST_F(MEMORY, GetGpuInfoP)
+{
+       int ret_val;
+       int pid;
+       struct gpu_info info = {-1};
+
+       pid = (int)getpid();
+       ret_val = hal_device_memory_get_gpu_info(pid, &info);
+       CHECK_NODEV(ret_val)
+
+       EXPECT_EQ(ret_val, 0) << strerr("Failed to get gpu info", ret_val);
+       EXPECT_GE(info.used_pages, 0) << "Gpu info is invalid.";
+}
+
+TEST_F(MEMORY, GetGemInfoP)
+{
+       int ret_val;
+       int pid;
+       struct gem_info info = {-1, -1};
+
+       pid = (int)getpid();
+       ret_val = hal_device_memory_get_gem_info(pid, &info);
+       CHECK_NODEV(ret_val)
+
+       EXPECT_EQ(ret_val, 0) << strerr("Failed to get gem info", ret_val);
+       EXPECT_GE(info.pss, 0) << "Gem.pss is invalid.";
+       EXPECT_GE(info.rss, 0) << "Gem.rss is invalid.";
+}