%files -n %{haltest_name}
%defattr(-,root,root,-)
-%{_bindir}/pass_hal_gtest
+%{_bindir}/pass_haltests
%files -n %{unittest_name}
%defattr(-,root,root,-)
+++ /dev/null
-/*
- * 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;
-}
--- /dev/null
+/*
+ * 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;
+}