unittest: Rename haltest binary from pass_hal_gtest to pass_haltests 39/186739/1 accepted/tizen_5.0_unified tizen_5.0 accepted/tizen/5.0/unified/20181102.021359 accepted/tizen/unified/20180814.063323 submit/tizen/20180814.043415 submit/tizen_5.0/20181101.000004
authorChanwoo Choi <cw00.choi@samsung.com>
Tue, 14 Aug 2018 04:23:10 +0000 (13:23 +0900)
committerChanwoo Choi <cw00.choi@samsung.com>
Tue, 14 Aug 2018 04:24:56 +0000 (13:24 +0900)
Change-Id: I1b22c4d34c09dfe21ebcd83d111d09f3bb571154
Signed-off-by: Chanwoo Choi <cw00.choi@samsung.com>
packaging/pass.spec
unittest/pass_hal_gtest.cpp [deleted file]
unittest/pass_haltests.cpp [new file with mode: 0644]

index c36ad3e612bd044e8cf2513a688d680e4441945d..7ea81b1107ed96db392bf2d1610436d952bae9d4 100644 (file)
@@ -112,7 +112,7 @@ systemctl daemon-reload
 
 %files -n %{haltest_name}
 %defattr(-,root,root,-)
-%{_bindir}/pass_hal_gtest
+%{_bindir}/pass_haltests
 
 %files -n %{unittest_name}
 %defattr(-,root,root,-)
diff --git a/unittest/pass_hal_gtest.cpp b/unittest/pass_hal_gtest.cpp
deleted file mode 100644 (file)
index 0b3b450..0000000
+++ /dev/null
@@ -1,552 +0,0 @@
-/*
- * Copyright (C) 2018 Samsung Electronics Co., Ltd.
- *
- * Licensed under the Apache License, Version 2.0 (the License);
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include <iostream>
-#include <stdlib.h>
-
-#include <gtest/gtest.h>
-
-extern "C" {
-#include "pass-hal.h"
-#include "pass-parser.h"
-}
-
-using namespace std;
-
-class PassHalTest : public testing::Test {
-       public:
-               virtual void SetUp() {}
-               virtual void TearDown() {}
-};
-
-static struct pass g_pass;
-
-static int haltest_is_failed(struct pass_resource *res, int ret)
-{
-       char *res_name = res->config_data.res_name;
-       /*
-        * If -EPERM, function is not supported according to h/w resource type.
-        * And if -ENODEV, function is not implemented on hal package.
-        * It means that this funcion is not necessary on two error case
-        * when calling the HAL functions.
-        */
-       if (ret < 0) {
-               if (ret == -EPERM || ret == -ENODEV)
-                       return 0;
-
-               cout << "Failed to test HAL of '" << res_name << "'" << endl;
-               return 1;
-       }
-       return 0;
-}
-
-TEST_F(PassHalTest, GetResourceConfig)
-{
-       int ret = 0;
-       unsigned int i;
-       char path[] = "/etc/pass/pass.conf";
-
-       /* Stop PASS daemon before HAL testing */
-       ret = system("/bin/systemctl stop pass.service");
-       ASSERT_EQ(ret, 0) << "PassServieStop Faield";
-
-       ret = pass_get_resource_config(&g_pass, path);
-       if (ret < 0)
-               return;
-
-       ASSERT_EQ(ret, 0) << "GetResourceConfig Failed";
-
-       for (i = 0; i < g_pass.num_resources; i++) {
-               struct pass_resource *res = &g_pass.res[i];
-
-               ret = pass_get_resource(res);
-               if (haltest_is_failed(res, ret)) {
-                       ASSERT_EQ(ret, 0) << "GetResourceConfig Failed";
-                       return;
-               }
-       }
-}
-
-TEST_F(PassHalTest, GetCurrGovernor)
-{
-       int ret = 0;
-       unsigned int i;
-       char governor[BUFF_MAX];
-
-       for (i = 0; i < g_pass.num_resources; i++) {
-               struct pass_resource *res = &g_pass.res[i];
-
-               ret = pass_get_curr_governor(res, governor);
-               if (haltest_is_failed(res, ret)) {
-                       ASSERT_EQ(ret, 0) << "GetCurrGovernor Failed";
-                       return;
-               }
-       }
-}
-
-TEST_F(PassHalTest, SetCurrGovernor)
-{
-       int ret = 0;
-       unsigned int i;
-       char governor[BUFF_MAX];
-
-       for (i = 0; i < g_pass.num_resources; i++) {
-               struct pass_resource *res = &g_pass.res[i];
-
-               ret = pass_get_curr_governor(res, governor);
-               if (haltest_is_failed(res, ret)) {
-                       ASSERT_EQ(ret, 0) << "GetCurrGovernor Failed";
-                       return;
-               }
-
-               ret = pass_set_curr_governor(res, governor);
-               if (haltest_is_failed(res, ret)) {
-                       ASSERT_EQ(ret, 0) << "SetCurrGovernor Failed";
-                       return;
-               }
-       }
-}
-
-TEST_F(PassHalTest, GetCurrFreq)
-{
-       int ret = 0;
-       unsigned int i;
-
-       for (i = 0; i < g_pass.num_resources; i++) {
-               struct pass_resource *res = &g_pass.res[i];
-
-               ret = pass_get_curr_freq(res);
-               if (haltest_is_failed(res, ret)) {
-                       ASSERT_EQ(ret, 0) << "GetCurrFreq Failed";
-                       return;
-               }
-       }
-}
-
-TEST_F(PassHalTest, GetMinFreq)
-{
-       int ret = 0;
-       unsigned int i;
-
-       for (i = 0; i < g_pass.num_resources; i++) {
-               struct pass_resource *res = &g_pass.res[i];
-
-               ret = pass_get_min_freq(res);
-               if (haltest_is_failed(res, ret)) {
-                       ASSERT_EQ(ret, 0) << "GetMinFreq Failed";
-                       return;
-               }
-       }
-}
-
-TEST_F(PassHalTest, SetMinFreq)
-{
-       int ret = 0;
-       int min_freq = 0;
-       unsigned int i;
-
-       for (i = 0; i < g_pass.num_resources; i++) {
-               struct pass_resource *res = &g_pass.res[i];
-
-               min_freq = pass_get_available_min_freq(res);
-               if (haltest_is_failed(res, min_freq)) {
-                       ASSERT_EQ(min_freq, 0) << "GetAvailableMinFreq Failed";
-                       return;
-               }
-
-               if (min_freq >= 0) {
-                       ret = pass_set_min_freq(res, min_freq);
-                       if (haltest_is_failed(res, ret)) {
-                               ASSERT_EQ(ret, 0) << "SetMinFreq Failed";
-                               return;
-                       }
-               }
-       }
-}
-
-TEST_F(PassHalTest, GetMaxFreq)
-{
-       int ret = 0;
-       unsigned int i;
-
-       for (i = 0; i < g_pass.num_resources; i++) {
-               struct pass_resource *res = &g_pass.res[i];
-
-               ret = pass_get_max_freq(res);
-               if (haltest_is_failed(res, ret)) {
-                       ASSERT_EQ(ret, 0) << "GetMaxFreq Failed";
-                       return;
-               }
-       }
-}
-
-TEST_F(PassHalTest, SetMaxFreq)
-{
-       int ret = 0;
-       int max_freq = 0;
-       unsigned int i;
-
-       for (i = 0; i < g_pass.num_resources; i++) {
-               struct pass_resource *res = &g_pass.res[i];
-
-               max_freq = pass_get_available_max_freq(res);
-               if (haltest_is_failed(res, max_freq)) {
-                       ASSERT_EQ(max_freq, 0) << "GetAvailableMaxFreq Failed";
-                       return;
-               }
-
-               if (max_freq >= 0) {
-                       ret = pass_set_max_freq(res, max_freq);
-                       if (haltest_is_failed(res, ret)) {
-                               ASSERT_EQ(ret, 0) << "SetMaxFreq Failed";
-                               return;
-                       }
-               }
-       }
-}
-
-TEST_F(PassHalTest, GetAvailableMinFreq)
-{
-       int ret = 0;
-       unsigned int i;
-
-       for (i = 0; i < g_pass.num_resources; i++) {
-               struct pass_resource *res = &g_pass.res[i];
-
-               ret = pass_get_available_min_freq(res);
-               if (haltest_is_failed(res, ret)) {
-                       ASSERT_EQ(ret, 0) << "GetAvailableMinFreq Failed";
-                       return;
-               }
-       }
-}
-
-TEST_F(PassHalTest, GetAvailableMaxFreq)
-{
-       int ret = 0;
-       unsigned int i;
-
-       for (i = 0; i < g_pass.num_resources; i++) {
-               struct pass_resource *res = &g_pass.res[i];
-
-               ret = pass_get_available_max_freq(res);
-               if (haltest_is_failed(res, ret)) {
-                       ASSERT_EQ(ret, 0) << "GetAvailableMaxFreq Failed";
-                       return;
-               }
-       }
-}
-
-
-TEST_F(PassHalTest, GetUpThreshold)
-{
-       int ret = 0;
-       unsigned int i;
-
-       for (i = 0; i < g_pass.num_resources; i++) {
-               struct pass_resource *res = &g_pass.res[i];
-
-               ret = pass_get_up_threshold(res);
-               if (haltest_is_failed(res, ret)) {
-                       ASSERT_EQ(ret, 0) << "GetUpThreshold Failed";
-                       return;
-               }
-       }
-}
-
-TEST_F(PassHalTest, SetUpThreshold)
-{
-       int ret = 0;
-       int up_threshold = 0;
-       unsigned int i;
-
-       for (i = 0; i < g_pass.num_resources; i++) {
-               struct pass_resource *res = &g_pass.res[i];
-
-               up_threshold = pass_get_up_threshold(res);
-               if (haltest_is_failed(res, up_threshold)) {
-                       ASSERT_EQ(up_threshold, 0) << "GetUpThreshold Failed";
-                       return;
-               }
-
-               if (up_threshold >= 0) {
-                       ret = pass_set_up_threshold(res, up_threshold);
-                       if (haltest_is_failed(res, ret)) {
-                               ASSERT_EQ(ret, 0) << "SetUpThreshold Failed";
-                               return;
-                       }
-               }
-       }
-}
-
-TEST_F(PassHalTest, GetTemperature)
-{
-       int ret = 0;
-       unsigned int i;
-
-       for (i = 0; i < g_pass.num_resources; i++) {
-               struct pass_resource *res = &g_pass.res[i];
-
-               ret = pass_get_temp(res);
-               if (haltest_is_failed(res, ret)) {
-                       ASSERT_EQ(ret, 0) << "GetTemperature Failed";
-                       return;
-               }
-       }
-}
-
-TEST_F(PassHalTest, GetTmuPolicy)
-{
-       int ret = 0;
-       unsigned int i;
-       char policy[BUFF_MAX];
-
-       for (i = 0; i < g_pass.num_resources; i++) {
-               struct pass_resource *res = &g_pass.res[i];
-
-               ret = pass_get_tmu_policy(res, policy);
-               if (haltest_is_failed(res, ret)) {
-                       ASSERT_EQ(ret, 0) << "GetTmuPolicy Failed";
-                       return;
-               }
-       }
-}
-
-TEST_F(PassHalTest, GetOnlineState)
-{
-       int ret = 0;
-       unsigned int i, j;
-
-       for (i = 0; i < g_pass.num_resources; i++) {
-               struct pass_resource *res = &g_pass.res[i];
-
-               for (j = 0; j < res->config_data.num_cpus; j++) {
-                       ret = pass_get_online_state(res, j);
-                       if (haltest_is_failed(res, ret)) {
-                               ASSERT_EQ(ret, 0) << "GetOnlineState Failed";
-                               return;
-                       }
-               }
-
-               if (haltest_is_failed(res, ret)) {
-                       ASSERT_EQ(ret, 0) << "GetOnlineState Failed";
-                       return;
-               }
-       }
-}
-
-TEST_F(PassHalTest, SetOnlineState)
-{
-       int ret = 0;
-       int online_state = 0;
-       unsigned int i, j;
-
-       for (i = 0; i < g_pass.num_resources; i++) {
-               struct pass_resource *res = &g_pass.res[i];
-
-               for (j = 0; j < res->config_data.num_cpus; j++) {
-                       online_state = pass_get_online_state(res, j);
-                       if (haltest_is_failed(res, online_state)) {
-                               ASSERT_EQ(online_state, 0) << "GetOnlineState Failed";
-                               return;
-                       }
-
-                       if (online_state >= 0) {
-                               ret = pass_set_online_state(res, j, online_state);
-                               if (haltest_is_failed(res, ret)) {
-                                       ASSERT_EQ(ret, 0) << "SetOnlineState Failed";
-                                       return;
-                               }
-                       }
-               }
-       }
-}
-
-
-TEST_F(PassHalTest, GetOnlineMinNum)
-{
-       int ret = 0;
-       unsigned int i;
-
-       for (i = 0; i < g_pass.num_resources; i++) {
-               struct pass_resource *res = &g_pass.res[i];
-
-               ret = pass_get_online_min_num(res);
-               if (haltest_is_failed(res, ret)) {
-                       ASSERT_EQ(ret, 0) << "GetOnlineMinNum Failed";
-                       return;
-               }
-       }
-}
-
-TEST_F(PassHalTest, SetOnlineMinNum)
-{
-       int ret = 0;
-       int online_min_num = 0;
-       unsigned int i;
-
-       for (i = 0; i < g_pass.num_resources; i++) {
-               struct pass_resource *res = &g_pass.res[i];
-
-               online_min_num = pass_get_online_min_num(res);
-               if (haltest_is_failed(res, online_min_num)) {
-                       ASSERT_EQ(online_min_num, 0) << "GetOnlineMinNum Failed";
-                       return;
-               }
-
-               if (online_min_num >= 0) {
-                       ret = pass_set_online_min_num(res, online_min_num);
-                       if (haltest_is_failed(res, ret)) {
-                               ASSERT_EQ(ret, 0) << "SetOnlineMinNum Failed";
-                               return;
-                       }
-               }
-       }
-}
-
-TEST_F(PassHalTest, GetOnlineMaxNum)
-{
-       int ret = 0;
-       unsigned int i;
-
-       for (i = 0; i < g_pass.num_resources; i++) {
-               struct pass_resource *res = &g_pass.res[i];
-
-               ret = pass_get_online_max_num(res);
-               if (haltest_is_failed(res, ret)) {
-                       ASSERT_EQ(ret, 0) << "GetOnlineMaxNum Failed";
-                       return;
-               }
-       }
-}
-
-TEST_F(PassHalTest, SetOnlineMaxNum)
-{
-       int ret = 0;
-       int online_max_num = 0;
-       unsigned int i;
-
-       for (i = 0; i < g_pass.num_resources; i++) {
-               struct pass_resource *res = &g_pass.res[i];
-
-               online_max_num = pass_get_online_max_num(res);
-               if (haltest_is_failed(res, online_max_num)) {
-                       ASSERT_EQ(online_max_num, 0) << "GetOnlineMaxNum Failed";
-                       return;
-               }
-
-               if (online_max_num >= 0) {
-                       ret = pass_set_online_max_num(res, online_max_num);
-                       if (haltest_is_failed(res, ret)) {
-                               ASSERT_EQ(ret, 0) << "SetOnlineMaxNum Failed";
-                               return;
-                       }
-               }
-       }
-}
-
-TEST_F(PassHalTest, GetFaultAroundBytes)
-{
-       int ret = 0;
-       unsigned int i;
-
-       for (i = 0; i < g_pass.num_resources; i++) {
-               struct pass_resource *res = &g_pass.res[i];
-
-               ret = pass_get_fault_around_bytes(res);
-               if (haltest_is_failed(res, ret)) {
-                       ASSERT_EQ(ret, 0) << "GetFaultAroundBytes Failed";
-                       return;
-               }
-       }
-}
-
-TEST_F(PassHalTest, SetFaultAroundBytes)
-{
-       int ret = 0;
-       int fault_around_bytes = 0;
-       unsigned int i;
-
-       for (i = 0; i < g_pass.num_resources; i++) {
-               struct pass_resource *res = &g_pass.res[i];
-
-               fault_around_bytes = pass_get_fault_around_bytes(res);
-               if (haltest_is_failed(res, fault_around_bytes)) {
-                       ASSERT_EQ(fault_around_bytes, 0) << "GetFaultAroundBytes Failed";
-                       return;
-               }
-
-               if (fault_around_bytes >= 0) {
-                       ret = pass_set_fault_around_bytes(res, fault_around_bytes);
-                       if (haltest_is_failed(res, ret)) {
-                               ASSERT_EQ(ret, 0) << "SetFaultAroundBytes Failed";
-                               return;
-                       }
-               }
-       }
-}
-
-TEST_F(PassHalTest, SetPmqosData)
-{
-       int ret = 0;
-       unsigned int i;
-       char applaunch_scenario[] = "AppLaunch";
-
-       for (i = 0; i < g_pass.num_resources; i++) {
-               struct pass_resource *res = &g_pass.res[i];
-
-               ret = pass_set_pmqos_data(res, applaunch_scenario);
-               if (haltest_is_failed(res, ret)) {
-                       ASSERT_EQ(ret, 0) << "SetPmqosData Failed";
-                       return;
-               }
-       }
-}
-
-TEST_F(PassHalTest, PutResourceConfig)
-{
-       int ret = 0;
-       unsigned int i;
-
-       for (i = 0; i < g_pass.num_resources; i++) {
-               struct pass_resource *res = &g_pass.res[i];
-
-               ret = pass_put_resource(res);
-               if (ret < 0) {
-                       pass_put_resource_config(&g_pass);
-                       ASSERT_EQ(ret, 0) << "PutResourceConfig Failed";
-                       return;
-               }
-       }
-
-       /* Restart PASS daemon before HAL testing */
-       ret = system("/bin/systemctl start pass.service");
-       ASSERT_EQ(ret, 0) << "PassServiceStart Faield";
-}
-
-int main(int argc, char *argv[])
-{
-       int ret;
-
-       try {
-               testing::InitGoogleTest(&argc, argv);
-               ret = RUN_ALL_TESTS();
-       } catch (...) {
-               ret = EXIT_FAILURE;
-       }
-
-       return ret;
-}
diff --git a/unittest/pass_haltests.cpp b/unittest/pass_haltests.cpp
new file mode 100644 (file)
index 0000000..0b3b450
--- /dev/null
@@ -0,0 +1,552 @@
+/*
+ * Copyright (C) 2018 Samsung Electronics Co., Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the License);
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <iostream>
+#include <stdlib.h>
+
+#include <gtest/gtest.h>
+
+extern "C" {
+#include "pass-hal.h"
+#include "pass-parser.h"
+}
+
+using namespace std;
+
+class PassHalTest : public testing::Test {
+       public:
+               virtual void SetUp() {}
+               virtual void TearDown() {}
+};
+
+static struct pass g_pass;
+
+static int haltest_is_failed(struct pass_resource *res, int ret)
+{
+       char *res_name = res->config_data.res_name;
+       /*
+        * If -EPERM, function is not supported according to h/w resource type.
+        * And if -ENODEV, function is not implemented on hal package.
+        * It means that this funcion is not necessary on two error case
+        * when calling the HAL functions.
+        */
+       if (ret < 0) {
+               if (ret == -EPERM || ret == -ENODEV)
+                       return 0;
+
+               cout << "Failed to test HAL of '" << res_name << "'" << endl;
+               return 1;
+       }
+       return 0;
+}
+
+TEST_F(PassHalTest, GetResourceConfig)
+{
+       int ret = 0;
+       unsigned int i;
+       char path[] = "/etc/pass/pass.conf";
+
+       /* Stop PASS daemon before HAL testing */
+       ret = system("/bin/systemctl stop pass.service");
+       ASSERT_EQ(ret, 0) << "PassServieStop Faield";
+
+       ret = pass_get_resource_config(&g_pass, path);
+       if (ret < 0)
+               return;
+
+       ASSERT_EQ(ret, 0) << "GetResourceConfig Failed";
+
+       for (i = 0; i < g_pass.num_resources; i++) {
+               struct pass_resource *res = &g_pass.res[i];
+
+               ret = pass_get_resource(res);
+               if (haltest_is_failed(res, ret)) {
+                       ASSERT_EQ(ret, 0) << "GetResourceConfig Failed";
+                       return;
+               }
+       }
+}
+
+TEST_F(PassHalTest, GetCurrGovernor)
+{
+       int ret = 0;
+       unsigned int i;
+       char governor[BUFF_MAX];
+
+       for (i = 0; i < g_pass.num_resources; i++) {
+               struct pass_resource *res = &g_pass.res[i];
+
+               ret = pass_get_curr_governor(res, governor);
+               if (haltest_is_failed(res, ret)) {
+                       ASSERT_EQ(ret, 0) << "GetCurrGovernor Failed";
+                       return;
+               }
+       }
+}
+
+TEST_F(PassHalTest, SetCurrGovernor)
+{
+       int ret = 0;
+       unsigned int i;
+       char governor[BUFF_MAX];
+
+       for (i = 0; i < g_pass.num_resources; i++) {
+               struct pass_resource *res = &g_pass.res[i];
+
+               ret = pass_get_curr_governor(res, governor);
+               if (haltest_is_failed(res, ret)) {
+                       ASSERT_EQ(ret, 0) << "GetCurrGovernor Failed";
+                       return;
+               }
+
+               ret = pass_set_curr_governor(res, governor);
+               if (haltest_is_failed(res, ret)) {
+                       ASSERT_EQ(ret, 0) << "SetCurrGovernor Failed";
+                       return;
+               }
+       }
+}
+
+TEST_F(PassHalTest, GetCurrFreq)
+{
+       int ret = 0;
+       unsigned int i;
+
+       for (i = 0; i < g_pass.num_resources; i++) {
+               struct pass_resource *res = &g_pass.res[i];
+
+               ret = pass_get_curr_freq(res);
+               if (haltest_is_failed(res, ret)) {
+                       ASSERT_EQ(ret, 0) << "GetCurrFreq Failed";
+                       return;
+               }
+       }
+}
+
+TEST_F(PassHalTest, GetMinFreq)
+{
+       int ret = 0;
+       unsigned int i;
+
+       for (i = 0; i < g_pass.num_resources; i++) {
+               struct pass_resource *res = &g_pass.res[i];
+
+               ret = pass_get_min_freq(res);
+               if (haltest_is_failed(res, ret)) {
+                       ASSERT_EQ(ret, 0) << "GetMinFreq Failed";
+                       return;
+               }
+       }
+}
+
+TEST_F(PassHalTest, SetMinFreq)
+{
+       int ret = 0;
+       int min_freq = 0;
+       unsigned int i;
+
+       for (i = 0; i < g_pass.num_resources; i++) {
+               struct pass_resource *res = &g_pass.res[i];
+
+               min_freq = pass_get_available_min_freq(res);
+               if (haltest_is_failed(res, min_freq)) {
+                       ASSERT_EQ(min_freq, 0) << "GetAvailableMinFreq Failed";
+                       return;
+               }
+
+               if (min_freq >= 0) {
+                       ret = pass_set_min_freq(res, min_freq);
+                       if (haltest_is_failed(res, ret)) {
+                               ASSERT_EQ(ret, 0) << "SetMinFreq Failed";
+                               return;
+                       }
+               }
+       }
+}
+
+TEST_F(PassHalTest, GetMaxFreq)
+{
+       int ret = 0;
+       unsigned int i;
+
+       for (i = 0; i < g_pass.num_resources; i++) {
+               struct pass_resource *res = &g_pass.res[i];
+
+               ret = pass_get_max_freq(res);
+               if (haltest_is_failed(res, ret)) {
+                       ASSERT_EQ(ret, 0) << "GetMaxFreq Failed";
+                       return;
+               }
+       }
+}
+
+TEST_F(PassHalTest, SetMaxFreq)
+{
+       int ret = 0;
+       int max_freq = 0;
+       unsigned int i;
+
+       for (i = 0; i < g_pass.num_resources; i++) {
+               struct pass_resource *res = &g_pass.res[i];
+
+               max_freq = pass_get_available_max_freq(res);
+               if (haltest_is_failed(res, max_freq)) {
+                       ASSERT_EQ(max_freq, 0) << "GetAvailableMaxFreq Failed";
+                       return;
+               }
+
+               if (max_freq >= 0) {
+                       ret = pass_set_max_freq(res, max_freq);
+                       if (haltest_is_failed(res, ret)) {
+                               ASSERT_EQ(ret, 0) << "SetMaxFreq Failed";
+                               return;
+                       }
+               }
+       }
+}
+
+TEST_F(PassHalTest, GetAvailableMinFreq)
+{
+       int ret = 0;
+       unsigned int i;
+
+       for (i = 0; i < g_pass.num_resources; i++) {
+               struct pass_resource *res = &g_pass.res[i];
+
+               ret = pass_get_available_min_freq(res);
+               if (haltest_is_failed(res, ret)) {
+                       ASSERT_EQ(ret, 0) << "GetAvailableMinFreq Failed";
+                       return;
+               }
+       }
+}
+
+TEST_F(PassHalTest, GetAvailableMaxFreq)
+{
+       int ret = 0;
+       unsigned int i;
+
+       for (i = 0; i < g_pass.num_resources; i++) {
+               struct pass_resource *res = &g_pass.res[i];
+
+               ret = pass_get_available_max_freq(res);
+               if (haltest_is_failed(res, ret)) {
+                       ASSERT_EQ(ret, 0) << "GetAvailableMaxFreq Failed";
+                       return;
+               }
+       }
+}
+
+
+TEST_F(PassHalTest, GetUpThreshold)
+{
+       int ret = 0;
+       unsigned int i;
+
+       for (i = 0; i < g_pass.num_resources; i++) {
+               struct pass_resource *res = &g_pass.res[i];
+
+               ret = pass_get_up_threshold(res);
+               if (haltest_is_failed(res, ret)) {
+                       ASSERT_EQ(ret, 0) << "GetUpThreshold Failed";
+                       return;
+               }
+       }
+}
+
+TEST_F(PassHalTest, SetUpThreshold)
+{
+       int ret = 0;
+       int up_threshold = 0;
+       unsigned int i;
+
+       for (i = 0; i < g_pass.num_resources; i++) {
+               struct pass_resource *res = &g_pass.res[i];
+
+               up_threshold = pass_get_up_threshold(res);
+               if (haltest_is_failed(res, up_threshold)) {
+                       ASSERT_EQ(up_threshold, 0) << "GetUpThreshold Failed";
+                       return;
+               }
+
+               if (up_threshold >= 0) {
+                       ret = pass_set_up_threshold(res, up_threshold);
+                       if (haltest_is_failed(res, ret)) {
+                               ASSERT_EQ(ret, 0) << "SetUpThreshold Failed";
+                               return;
+                       }
+               }
+       }
+}
+
+TEST_F(PassHalTest, GetTemperature)
+{
+       int ret = 0;
+       unsigned int i;
+
+       for (i = 0; i < g_pass.num_resources; i++) {
+               struct pass_resource *res = &g_pass.res[i];
+
+               ret = pass_get_temp(res);
+               if (haltest_is_failed(res, ret)) {
+                       ASSERT_EQ(ret, 0) << "GetTemperature Failed";
+                       return;
+               }
+       }
+}
+
+TEST_F(PassHalTest, GetTmuPolicy)
+{
+       int ret = 0;
+       unsigned int i;
+       char policy[BUFF_MAX];
+
+       for (i = 0; i < g_pass.num_resources; i++) {
+               struct pass_resource *res = &g_pass.res[i];
+
+               ret = pass_get_tmu_policy(res, policy);
+               if (haltest_is_failed(res, ret)) {
+                       ASSERT_EQ(ret, 0) << "GetTmuPolicy Failed";
+                       return;
+               }
+       }
+}
+
+TEST_F(PassHalTest, GetOnlineState)
+{
+       int ret = 0;
+       unsigned int i, j;
+
+       for (i = 0; i < g_pass.num_resources; i++) {
+               struct pass_resource *res = &g_pass.res[i];
+
+               for (j = 0; j < res->config_data.num_cpus; j++) {
+                       ret = pass_get_online_state(res, j);
+                       if (haltest_is_failed(res, ret)) {
+                               ASSERT_EQ(ret, 0) << "GetOnlineState Failed";
+                               return;
+                       }
+               }
+
+               if (haltest_is_failed(res, ret)) {
+                       ASSERT_EQ(ret, 0) << "GetOnlineState Failed";
+                       return;
+               }
+       }
+}
+
+TEST_F(PassHalTest, SetOnlineState)
+{
+       int ret = 0;
+       int online_state = 0;
+       unsigned int i, j;
+
+       for (i = 0; i < g_pass.num_resources; i++) {
+               struct pass_resource *res = &g_pass.res[i];
+
+               for (j = 0; j < res->config_data.num_cpus; j++) {
+                       online_state = pass_get_online_state(res, j);
+                       if (haltest_is_failed(res, online_state)) {
+                               ASSERT_EQ(online_state, 0) << "GetOnlineState Failed";
+                               return;
+                       }
+
+                       if (online_state >= 0) {
+                               ret = pass_set_online_state(res, j, online_state);
+                               if (haltest_is_failed(res, ret)) {
+                                       ASSERT_EQ(ret, 0) << "SetOnlineState Failed";
+                                       return;
+                               }
+                       }
+               }
+       }
+}
+
+
+TEST_F(PassHalTest, GetOnlineMinNum)
+{
+       int ret = 0;
+       unsigned int i;
+
+       for (i = 0; i < g_pass.num_resources; i++) {
+               struct pass_resource *res = &g_pass.res[i];
+
+               ret = pass_get_online_min_num(res);
+               if (haltest_is_failed(res, ret)) {
+                       ASSERT_EQ(ret, 0) << "GetOnlineMinNum Failed";
+                       return;
+               }
+       }
+}
+
+TEST_F(PassHalTest, SetOnlineMinNum)
+{
+       int ret = 0;
+       int online_min_num = 0;
+       unsigned int i;
+
+       for (i = 0; i < g_pass.num_resources; i++) {
+               struct pass_resource *res = &g_pass.res[i];
+
+               online_min_num = pass_get_online_min_num(res);
+               if (haltest_is_failed(res, online_min_num)) {
+                       ASSERT_EQ(online_min_num, 0) << "GetOnlineMinNum Failed";
+                       return;
+               }
+
+               if (online_min_num >= 0) {
+                       ret = pass_set_online_min_num(res, online_min_num);
+                       if (haltest_is_failed(res, ret)) {
+                               ASSERT_EQ(ret, 0) << "SetOnlineMinNum Failed";
+                               return;
+                       }
+               }
+       }
+}
+
+TEST_F(PassHalTest, GetOnlineMaxNum)
+{
+       int ret = 0;
+       unsigned int i;
+
+       for (i = 0; i < g_pass.num_resources; i++) {
+               struct pass_resource *res = &g_pass.res[i];
+
+               ret = pass_get_online_max_num(res);
+               if (haltest_is_failed(res, ret)) {
+                       ASSERT_EQ(ret, 0) << "GetOnlineMaxNum Failed";
+                       return;
+               }
+       }
+}
+
+TEST_F(PassHalTest, SetOnlineMaxNum)
+{
+       int ret = 0;
+       int online_max_num = 0;
+       unsigned int i;
+
+       for (i = 0; i < g_pass.num_resources; i++) {
+               struct pass_resource *res = &g_pass.res[i];
+
+               online_max_num = pass_get_online_max_num(res);
+               if (haltest_is_failed(res, online_max_num)) {
+                       ASSERT_EQ(online_max_num, 0) << "GetOnlineMaxNum Failed";
+                       return;
+               }
+
+               if (online_max_num >= 0) {
+                       ret = pass_set_online_max_num(res, online_max_num);
+                       if (haltest_is_failed(res, ret)) {
+                               ASSERT_EQ(ret, 0) << "SetOnlineMaxNum Failed";
+                               return;
+                       }
+               }
+       }
+}
+
+TEST_F(PassHalTest, GetFaultAroundBytes)
+{
+       int ret = 0;
+       unsigned int i;
+
+       for (i = 0; i < g_pass.num_resources; i++) {
+               struct pass_resource *res = &g_pass.res[i];
+
+               ret = pass_get_fault_around_bytes(res);
+               if (haltest_is_failed(res, ret)) {
+                       ASSERT_EQ(ret, 0) << "GetFaultAroundBytes Failed";
+                       return;
+               }
+       }
+}
+
+TEST_F(PassHalTest, SetFaultAroundBytes)
+{
+       int ret = 0;
+       int fault_around_bytes = 0;
+       unsigned int i;
+
+       for (i = 0; i < g_pass.num_resources; i++) {
+               struct pass_resource *res = &g_pass.res[i];
+
+               fault_around_bytes = pass_get_fault_around_bytes(res);
+               if (haltest_is_failed(res, fault_around_bytes)) {
+                       ASSERT_EQ(fault_around_bytes, 0) << "GetFaultAroundBytes Failed";
+                       return;
+               }
+
+               if (fault_around_bytes >= 0) {
+                       ret = pass_set_fault_around_bytes(res, fault_around_bytes);
+                       if (haltest_is_failed(res, ret)) {
+                               ASSERT_EQ(ret, 0) << "SetFaultAroundBytes Failed";
+                               return;
+                       }
+               }
+       }
+}
+
+TEST_F(PassHalTest, SetPmqosData)
+{
+       int ret = 0;
+       unsigned int i;
+       char applaunch_scenario[] = "AppLaunch";
+
+       for (i = 0; i < g_pass.num_resources; i++) {
+               struct pass_resource *res = &g_pass.res[i];
+
+               ret = pass_set_pmqos_data(res, applaunch_scenario);
+               if (haltest_is_failed(res, ret)) {
+                       ASSERT_EQ(ret, 0) << "SetPmqosData Failed";
+                       return;
+               }
+       }
+}
+
+TEST_F(PassHalTest, PutResourceConfig)
+{
+       int ret = 0;
+       unsigned int i;
+
+       for (i = 0; i < g_pass.num_resources; i++) {
+               struct pass_resource *res = &g_pass.res[i];
+
+               ret = pass_put_resource(res);
+               if (ret < 0) {
+                       pass_put_resource_config(&g_pass);
+                       ASSERT_EQ(ret, 0) << "PutResourceConfig Failed";
+                       return;
+               }
+       }
+
+       /* Restart PASS daemon before HAL testing */
+       ret = system("/bin/systemctl start pass.service");
+       ASSERT_EQ(ret, 0) << "PassServiceStart Faield";
+}
+
+int main(int argc, char *argv[])
+{
+       int ret;
+
+       try {
+               testing::InitGoogleTest(&argc, argv);
+               ret = RUN_ALL_TESTS();
+       } catch (...) {
+               ret = EXIT_FAILURE;
+       }
+
+       return ret;
+}