From: Chanwoo Choi Date: Tue, 14 Aug 2018 04:23:10 +0000 (+0900) Subject: unittest: Rename haltest binary from pass_hal_gtest to pass_haltests X-Git-Tag: submit/tizen/20180814.043415^0 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=refs%2Fheads%2Faccepted%2Ftizen_5.0_unified;p=platform%2Fcore%2Fsystem%2Fpass.git unittest: Rename haltest binary from pass_hal_gtest to pass_haltests Change-Id: I1b22c4d34c09dfe21ebcd83d111d09f3bb571154 Signed-off-by: Chanwoo Choi --- diff --git a/packaging/pass.spec b/packaging/pass.spec index c36ad3e..7ea81b1 100644 --- a/packaging/pass.spec +++ b/packaging/pass.spec @@ -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 index 0b3b450..0000000 --- a/unittest/pass_hal_gtest.cpp +++ /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 -#include - -#include - -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 index 0000000..0b3b450 --- /dev/null +++ b/unittest/pass_haltests.cpp @@ -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 +#include + +#include + +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; +}