13fc297bdSopenharmony_ci/* 23fc297bdSopenharmony_ci * Copyright (c) 2024 Huawei Device Co., Ltd. 33fc297bdSopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"); 43fc297bdSopenharmony_ci * you may not use this file except in compliance with the License. 53fc297bdSopenharmony_ci * You may obtain a copy of the License at 63fc297bdSopenharmony_ci * 73fc297bdSopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0 83fc297bdSopenharmony_ci * 93fc297bdSopenharmony_ci * Unless required by applicable law or agreed to in writing, software 103fc297bdSopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS, 113fc297bdSopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 123fc297bdSopenharmony_ci * See the License for the specific language governing permissions and 133fc297bdSopenharmony_ci * limitations under the License. 143fc297bdSopenharmony_ci */ 153fc297bdSopenharmony_ci 163fc297bdSopenharmony_ci#define private public 173fc297bdSopenharmony_ci#define protected public 183fc297bdSopenharmony_ci#undef private 193fc297bdSopenharmony_ci#undef protected 203fc297bdSopenharmony_ci 213fc297bdSopenharmony_ci#include <gtest/gtest.h> 223fc297bdSopenharmony_ci#include <gtest/hwext/gtest-multithread.h> 233fc297bdSopenharmony_ci#include "socperf_client.h" 243fc297bdSopenharmony_ci#include "socperf.h" 253fc297bdSopenharmony_ci#include "iservice_registry.h" 263fc297bdSopenharmony_ci#include "system_ability_definition.h" 273fc297bdSopenharmony_ci 283fc297bdSopenharmony_ciusing namespace testing::ext; 293fc297bdSopenharmony_ciusing namespace testing::mt; 303fc297bdSopenharmony_ci 313fc297bdSopenharmony_cinamespace OHOS { 323fc297bdSopenharmony_cinamespace SOCPERF { 333fc297bdSopenharmony_ciclass SocPerfSubTest : public testing::Test { 343fc297bdSopenharmony_cipublic: 353fc297bdSopenharmony_ci static void SetUpTestCase(void); 363fc297bdSopenharmony_ci static void TearDownTestCase(void); 373fc297bdSopenharmony_ci void SetUp(); 383fc297bdSopenharmony_ci void TearDown(); 393fc297bdSopenharmony_ci}; 403fc297bdSopenharmony_ci 413fc297bdSopenharmony_civoid SocPerfSubTest::SetUpTestCase(void) 423fc297bdSopenharmony_ci{ 433fc297bdSopenharmony_ci} 443fc297bdSopenharmony_ci 453fc297bdSopenharmony_civoid SocPerfSubTest::TearDownTestCase(void) 463fc297bdSopenharmony_ci{ 473fc297bdSopenharmony_ci} 483fc297bdSopenharmony_ci 493fc297bdSopenharmony_civoid SocPerfSubTest::SetUp(void) 503fc297bdSopenharmony_ci{ 513fc297bdSopenharmony_ci} 523fc297bdSopenharmony_ci 533fc297bdSopenharmony_civoid SocPerfSubTest::TearDown(void) 543fc297bdSopenharmony_ci{ 553fc297bdSopenharmony_ci} 563fc297bdSopenharmony_ci 573fc297bdSopenharmony_ci/* 583fc297bdSopenharmony_ci * @tc.name: SocPerfSubTest_ActionType_001 593fc297bdSopenharmony_ci * @tc.desc: action type perf 603fc297bdSopenharmony_ci * @tc.type FUNC 613fc297bdSopenharmony_ci * @tc.require: issueI78T3V 623fc297bdSopenharmony_ci */ 633fc297bdSopenharmony_ciHWTEST_F(SocPerfSubTest, SocPerfSubTest_ActionType_001, Function | MediumTest | Level0) 643fc297bdSopenharmony_ci{ 653fc297bdSopenharmony_ci EXPECT_EQ(OHOS::SOCPERF::ActionType::ACTION_TYPE_PERF, 0); 663fc297bdSopenharmony_ci} 673fc297bdSopenharmony_ci 683fc297bdSopenharmony_ci/* 693fc297bdSopenharmony_ci * @tc.name: SocPerfSubTest_ActionType_002 703fc297bdSopenharmony_ci * @tc.desc: action type power 713fc297bdSopenharmony_ci * @tc.type FUNC 723fc297bdSopenharmony_ci * @tc.require: issueI78T3V 733fc297bdSopenharmony_ci */ 743fc297bdSopenharmony_ciHWTEST_F(SocPerfSubTest, SocPerfSubTest_ActionType_002, Function | MediumTest | Level0) 753fc297bdSopenharmony_ci{ 763fc297bdSopenharmony_ci EXPECT_EQ(OHOS::SOCPERF::ActionType::ACTION_TYPE_POWER, 1); 773fc297bdSopenharmony_ci} 783fc297bdSopenharmony_ci 793fc297bdSopenharmony_ci/* 803fc297bdSopenharmony_ci * @tc.name: SocPerfSubTest_ActionType_003 813fc297bdSopenharmony_ci * @tc.desc: action type THERMAL 823fc297bdSopenharmony_ci * @tc.type FUNC 833fc297bdSopenharmony_ci * @tc.require: issueI78T3V 843fc297bdSopenharmony_ci */ 853fc297bdSopenharmony_ciHWTEST_F(SocPerfSubTest, SocPerfSubTest_ActionType_003, Function | MediumTest | Level0) 863fc297bdSopenharmony_ci{ 873fc297bdSopenharmony_ci EXPECT_EQ(OHOS::SOCPERF::ActionType::ACTION_TYPE_THERMAL, 2); 883fc297bdSopenharmony_ci} 893fc297bdSopenharmony_ci 903fc297bdSopenharmony_ci/* 913fc297bdSopenharmony_ci * @tc.name: SocPerfSubTest_ActionType_004 923fc297bdSopenharmony_ci * @tc.desc: action type max 933fc297bdSopenharmony_ci * @tc.type FUNC 943fc297bdSopenharmony_ci * @tc.require: issueI78T3V 953fc297bdSopenharmony_ci */ 963fc297bdSopenharmony_ciHWTEST_F(SocPerfSubTest, SocPerfSubTest_ActionType_004, Function | MediumTest | Level0) 973fc297bdSopenharmony_ci{ 983fc297bdSopenharmony_ci EXPECT_EQ(OHOS::SOCPERF::ActionType::ACTION_TYPE_MAX, 4); 993fc297bdSopenharmony_ci} 1003fc297bdSopenharmony_ci 1013fc297bdSopenharmony_ci/* 1023fc297bdSopenharmony_ci * @tc.name: SocPerfSubTest_EventType_001 1033fc297bdSopenharmony_ci * @tc.desc: event type off 1043fc297bdSopenharmony_ci * @tc.type FUNC 1053fc297bdSopenharmony_ci * @tc.require: issueI78T3V 1063fc297bdSopenharmony_ci */ 1073fc297bdSopenharmony_ciHWTEST_F(SocPerfSubTest, SocPerfSubTest_EventType_001, Function | MediumTest | Level0) 1083fc297bdSopenharmony_ci{ 1093fc297bdSopenharmony_ci EXPECT_EQ(OHOS::SOCPERF::EventType::EVENT_OFF, 0); 1103fc297bdSopenharmony_ci} 1113fc297bdSopenharmony_ci 1123fc297bdSopenharmony_ci/* 1133fc297bdSopenharmony_ci * @tc.name: SocPerfSubTest_EventType_002 1143fc297bdSopenharmony_ci * @tc.desc: event type on 1153fc297bdSopenharmony_ci * @tc.type FUNC 1163fc297bdSopenharmony_ci * @tc.require: issueI78T3V 1173fc297bdSopenharmony_ci */ 1183fc297bdSopenharmony_ciHWTEST_F(SocPerfSubTest, SocPerfSubTest_EventType_002, Function | MediumTest | Level0) 1193fc297bdSopenharmony_ci{ 1203fc297bdSopenharmony_ci EXPECT_EQ(OHOS::SOCPERF::EventType::EVENT_ON, 1); 1213fc297bdSopenharmony_ci} 1223fc297bdSopenharmony_ci 1233fc297bdSopenharmony_ci/* 1243fc297bdSopenharmony_ci * @tc.name: SocPerfSubTest_EventType_003 1253fc297bdSopenharmony_ci * @tc.desc: event type invalid 1263fc297bdSopenharmony_ci * @tc.type FUNC 1273fc297bdSopenharmony_ci * @tc.require: issueI78T3V 1283fc297bdSopenharmony_ci */ 1293fc297bdSopenharmony_ciHWTEST_F(SocPerfSubTest, SocPerfSubTest_EventType_003, Function | MediumTest | Level0) 1303fc297bdSopenharmony_ci{ 1313fc297bdSopenharmony_ci EXPECT_EQ(OHOS::SOCPERF::EventType::EVENT_INVALID, -1); 1323fc297bdSopenharmony_ci} 1333fc297bdSopenharmony_ci 1343fc297bdSopenharmony_ci/* 1353fc297bdSopenharmony_ci * @tc.name: SocPerfSubTest_InnerEventId_001 1363fc297bdSopenharmony_ci * @tc.desc: init res node info 1373fc297bdSopenharmony_ci * @tc.type FUNC 1383fc297bdSopenharmony_ci * @tc.require: issueI78T3V 1393fc297bdSopenharmony_ci */ 1403fc297bdSopenharmony_ciHWTEST_F(SocPerfSubTest, SocPerfSubTest_InnerEventId_001, Function | MediumTest | Level0) 1413fc297bdSopenharmony_ci{ 1423fc297bdSopenharmony_ci EXPECT_EQ(INNER_EVENT_ID_INIT_RESOURCE_NODE_INFO, 0); 1433fc297bdSopenharmony_ci} 1443fc297bdSopenharmony_ci 1453fc297bdSopenharmony_ci/* 1463fc297bdSopenharmony_ci * @tc.name: SocPerfSubTest_InnerEventId_002 1473fc297bdSopenharmony_ci * @tc.desc: do freq action 1483fc297bdSopenharmony_ci * @tc.type FUNC 1493fc297bdSopenharmony_ci * @tc.require: issueI78T3V 1503fc297bdSopenharmony_ci */ 1513fc297bdSopenharmony_ciHWTEST_F(SocPerfSubTest, SocPerfSubTest_InnerEventId_003, Function | MediumTest | Level0) 1523fc297bdSopenharmony_ci{ 1533fc297bdSopenharmony_ci EXPECT_EQ(INNER_EVENT_ID_DO_FREQ_ACTION, 1); 1543fc297bdSopenharmony_ci} 1553fc297bdSopenharmony_ci 1563fc297bdSopenharmony_ci/* 1573fc297bdSopenharmony_ci * @tc.name: SocPerfSubTest_InnerEventId_003 1583fc297bdSopenharmony_ci * @tc.desc: do freq action delayed 1593fc297bdSopenharmony_ci * @tc.type FUNC 1603fc297bdSopenharmony_ci * @tc.require: issueI78T3V 1613fc297bdSopenharmony_ci */ 1623fc297bdSopenharmony_ciHWTEST_F(SocPerfSubTest, SocPerfSubTest_InnerEventId_004, Function | MediumTest | Level0) 1633fc297bdSopenharmony_ci{ 1643fc297bdSopenharmony_ci EXPECT_EQ(INNER_EVENT_ID_DO_FREQ_ACTION_DELAYED, 3); 1653fc297bdSopenharmony_ci} 1663fc297bdSopenharmony_ci 1673fc297bdSopenharmony_ci/* 1683fc297bdSopenharmony_ci * @tc.name: SocPerfSubTest_InnerEventId_004 1693fc297bdSopenharmony_ci * @tc.desc: power limit boost freq 1703fc297bdSopenharmony_ci * @tc.type FUNC 1713fc297bdSopenharmony_ci * @tc.require: issueI78T3V 1723fc297bdSopenharmony_ci */ 1733fc297bdSopenharmony_ciHWTEST_F(SocPerfSubTest, SocPerfSubTest_InnerEventId_005, Function | MediumTest | Level0) 1743fc297bdSopenharmony_ci{ 1753fc297bdSopenharmony_ci EXPECT_EQ(INNER_EVENT_ID_POWER_LIMIT_BOOST_FREQ, 4); 1763fc297bdSopenharmony_ci} 1773fc297bdSopenharmony_ci 1783fc297bdSopenharmony_ci/* 1793fc297bdSopenharmony_ci * @tc.name: SocPerfSubTest_InnerEventId_005 1803fc297bdSopenharmony_ci * @tc.desc: thermal limit boost freq 1813fc297bdSopenharmony_ci * @tc.type FUNC 1823fc297bdSopenharmony_ci * @tc.require: issueI78T3V 1833fc297bdSopenharmony_ci */ 1843fc297bdSopenharmony_ciHWTEST_F(SocPerfSubTest, SocPerfSubTest_InnerEventId_006, Function | MediumTest | Level0) 1853fc297bdSopenharmony_ci{ 1863fc297bdSopenharmony_ci EXPECT_EQ(INNER_EVENT_ID_THERMAL_LIMIT_BOOST_FREQ, 5); 1873fc297bdSopenharmony_ci} 1883fc297bdSopenharmony_ci 1893fc297bdSopenharmony_ci/* 1903fc297bdSopenharmony_ci * @tc.name: SocPerfSubTest_GetService_001 1913fc297bdSopenharmony_ci * @tc.desc: get socperf service 1923fc297bdSopenharmony_ci * @tc.type FUNC 1933fc297bdSopenharmony_ci * @tc.require: issueI78T3V 1943fc297bdSopenharmony_ci */ 1953fc297bdSopenharmony_ciHWTEST_F(SocPerfSubTest, SocPerfSubTest_GetService_001, Function | MediumTest | Level0) 1963fc297bdSopenharmony_ci{ 1973fc297bdSopenharmony_ci sptr<ISystemAbilityManager> samgr = SystemAbilityManagerClient::GetInstance().GetSystemAbilityManager(); 1983fc297bdSopenharmony_ci EXPECT_NE(samgr, nullptr); 1993fc297bdSopenharmony_ci 2003fc297bdSopenharmony_ci sptr<IRemoteObject> object = samgr->GetSystemAbility(SOC_PERF_SERVICE_SA_ID); 2013fc297bdSopenharmony_ci EXPECT_NE(object, nullptr); 2023fc297bdSopenharmony_ci} 2033fc297bdSopenharmony_ci 2043fc297bdSopenharmony_ci/* 2053fc297bdSopenharmony_ci * @tc.name: SocPerfSubTest_GetService_002 2063fc297bdSopenharmony_ci * @tc.desc: get socperf service 2073fc297bdSopenharmony_ci * @tc.type FUNC 2083fc297bdSopenharmony_ci * @tc.require: issueI78T3V 2093fc297bdSopenharmony_ci */ 2103fc297bdSopenharmony_ciHWTEST_F(SocPerfSubTest, SocPerfSubTest_GetService_002, Function | MediumTest | Level0) 2113fc297bdSopenharmony_ci{ 2123fc297bdSopenharmony_ci sptr<ISystemAbilityManager> samgr = SystemAbilityManagerClient::GetInstance().GetSystemAbilityManager(); 2133fc297bdSopenharmony_ci EXPECT_NE(samgr, nullptr); 2143fc297bdSopenharmony_ci} 2153fc297bdSopenharmony_ci 2163fc297bdSopenharmony_cistatic void SocPerfSubTestGetServiceTask() 2173fc297bdSopenharmony_ci{ 2183fc297bdSopenharmony_ci sptr<ISystemAbilityManager> samgr = SystemAbilityManagerClient::GetInstance().GetSystemAbilityManager(); 2193fc297bdSopenharmony_ci EXPECT_NE(samgr, nullptr); 2203fc297bdSopenharmony_ci 2213fc297bdSopenharmony_ci sptr<IRemoteObject> object = samgr->GetSystemAbility(SOC_PERF_SERVICE_SA_ID); 2223fc297bdSopenharmony_ci EXPECT_NE(object, nullptr); 2233fc297bdSopenharmony_ci} 2243fc297bdSopenharmony_ci 2253fc297bdSopenharmony_ci/* 2263fc297bdSopenharmony_ci * @tc.name: SocPerfSubTest_GetService_003 2273fc297bdSopenharmony_ci * @tc.desc: Test get socperf service in multithreading 2283fc297bdSopenharmony_ci * @tc.type FUNC 2293fc297bdSopenharmony_ci * @tc.require: issueI7G8VT 2303fc297bdSopenharmony_ci */ 2313fc297bdSopenharmony_ciHWTEST_F(SocPerfSubTest, SocPerfSubTest_GetService_003, Function | MediumTest | Level0) 2323fc297bdSopenharmony_ci{ 2333fc297bdSopenharmony_ci SET_THREAD_NUM(10); 2343fc297bdSopenharmony_ci GTEST_RUN_TASK(SocPerfSubTestGetServiceTask); 2353fc297bdSopenharmony_ci} 2363fc297bdSopenharmony_ci 2373fc297bdSopenharmony_ci/* 2383fc297bdSopenharmony_ci * @tc.name: SocPerfSubTest_PerfRequest_001 2393fc297bdSopenharmony_ci * @tc.desc: PerfRequest 2403fc297bdSopenharmony_ci * @tc.type FUNC 2413fc297bdSopenharmony_ci * @tc.require: issueI78T3V 2423fc297bdSopenharmony_ci */ 2433fc297bdSopenharmony_ciHWTEST_F(SocPerfSubTest, SocPerfSubTest_PerfRequest_001, Function | MediumTest | Level0) 2443fc297bdSopenharmony_ci{ 2453fc297bdSopenharmony_ci std::string msg = ""; 2463fc297bdSopenharmony_ci OHOS::SOCPERF::SocPerfClient::GetInstance().PerfRequest(10000, msg); 2473fc297bdSopenharmony_ci EXPECT_EQ(msg, ""); 2483fc297bdSopenharmony_ci} 2493fc297bdSopenharmony_ci 2503fc297bdSopenharmony_ci/* 2513fc297bdSopenharmony_ci * @tc.name: SocPerfSubTest_PerfRequest_002 2523fc297bdSopenharmony_ci * @tc.desc: PerfRequestEx ON 2533fc297bdSopenharmony_ci * @tc.type FUNC 2543fc297bdSopenharmony_ci * @tc.require: issueI78T3V 2553fc297bdSopenharmony_ci */ 2563fc297bdSopenharmony_ciHWTEST_F(SocPerfSubTest, SocPerfSubTest_PerfRequest_002, Function | MediumTest | Level0) 2573fc297bdSopenharmony_ci{ 2583fc297bdSopenharmony_ci std::string msg = ""; 2593fc297bdSopenharmony_ci OHOS::SOCPERF::SocPerfClient::GetInstance().PerfRequestEx(10000, true, msg); 2603fc297bdSopenharmony_ci EXPECT_EQ(msg, ""); 2613fc297bdSopenharmony_ci} 2623fc297bdSopenharmony_ci 2633fc297bdSopenharmony_ci/* 2643fc297bdSopenharmony_ci * @tc.name: SocPerfSubTest_PerfRequest_003 2653fc297bdSopenharmony_ci * @tc.desc: PerfRequestEx OFF 2663fc297bdSopenharmony_ci * @tc.type FUNC 2673fc297bdSopenharmony_ci * @tc.require: issueI78T3V 2683fc297bdSopenharmony_ci */ 2693fc297bdSopenharmony_ciHWTEST_F(SocPerfSubTest, SocPerfSubTest_PerfRequest_003, Function | MediumTest | Level0) 2703fc297bdSopenharmony_ci{ 2713fc297bdSopenharmony_ci std::string msg = ""; 2723fc297bdSopenharmony_ci OHOS::SOCPERF::SocPerfClient::GetInstance().PerfRequestEx(10000, false, msg); 2733fc297bdSopenharmony_ci EXPECT_EQ(msg, ""); 2743fc297bdSopenharmony_ci} 2753fc297bdSopenharmony_ci 2763fc297bdSopenharmony_ci/* 2773fc297bdSopenharmony_ci * @tc.name: SocPerfSubTest_PowerLimitBoost_001 2783fc297bdSopenharmony_ci * @tc.desc: PowerLimitBoost ON 2793fc297bdSopenharmony_ci * @tc.type FUNC 2803fc297bdSopenharmony_ci * @tc.require: issueI78T3V 2813fc297bdSopenharmony_ci */ 2823fc297bdSopenharmony_ciHWTEST_F(SocPerfSubTest, SocPerfSubTest_PowerLimitBoost_001, Function | MediumTest | Level0) 2833fc297bdSopenharmony_ci{ 2843fc297bdSopenharmony_ci std::string msg = ""; 2853fc297bdSopenharmony_ci OHOS::SOCPERF::SocPerfClient::GetInstance().PowerLimitBoost(true, msg); 2863fc297bdSopenharmony_ci EXPECT_EQ(msg, ""); 2873fc297bdSopenharmony_ci} 2883fc297bdSopenharmony_ci 2893fc297bdSopenharmony_ci/* 2903fc297bdSopenharmony_ci * @tc.name: SocPerfSubTest_PowerLimitBoost_001 2913fc297bdSopenharmony_ci * @tc.desc: PowerLimitBoost OFF 2923fc297bdSopenharmony_ci * @tc.type FUNC 2933fc297bdSopenharmony_ci * @tc.require: issueI78T3V 2943fc297bdSopenharmony_ci */ 2953fc297bdSopenharmony_ciHWTEST_F(SocPerfSubTest, SocPerfSubTest_PowerLimitBoost_002, Function | MediumTest | Level0) 2963fc297bdSopenharmony_ci{ 2973fc297bdSopenharmony_ci std::string msg = ""; 2983fc297bdSopenharmony_ci OHOS::SOCPERF::SocPerfClient::GetInstance().PowerLimitBoost(false, msg); 2993fc297bdSopenharmony_ci EXPECT_EQ(msg, ""); 3003fc297bdSopenharmony_ci} 3013fc297bdSopenharmony_ci 3023fc297bdSopenharmony_ci/* 3033fc297bdSopenharmony_ci * @tc.name: SocPerfSubTest_ThermalLimitBoost_001 3043fc297bdSopenharmony_ci * @tc.desc: ThermalLimitBoost ON 3053fc297bdSopenharmony_ci * @tc.type FUNC 3063fc297bdSopenharmony_ci * @tc.require: issueI78T3V 3073fc297bdSopenharmony_ci */ 3083fc297bdSopenharmony_ciHWTEST_F(SocPerfSubTest, SocPerfSubTest_ThermalLimitBoost_001, Function | MediumTest | Level0) 3093fc297bdSopenharmony_ci{ 3103fc297bdSopenharmony_ci std::string msg = ""; 3113fc297bdSopenharmony_ci OHOS::SOCPERF::SocPerfClient::GetInstance().ThermalLimitBoost(true, msg); 3123fc297bdSopenharmony_ci EXPECT_EQ(msg, ""); 3133fc297bdSopenharmony_ci} 3143fc297bdSopenharmony_ci 3153fc297bdSopenharmony_ci/* 3163fc297bdSopenharmony_ci * @tc.name: SocPerfSubTest_ThermalLimitBoost_002 3173fc297bdSopenharmony_ci * @tc.desc: ThermalLimitBoost OFF 3183fc297bdSopenharmony_ci * @tc.type FUNC 3193fc297bdSopenharmony_ci * @tc.require: issueI78T3V 3203fc297bdSopenharmony_ci */ 3213fc297bdSopenharmony_ciHWTEST_F(SocPerfSubTest, SocPerfSubTest_ThermalLimitBoost_002, Function | MediumTest | Level0) 3223fc297bdSopenharmony_ci{ 3233fc297bdSopenharmony_ci std::string msg = ""; 3243fc297bdSopenharmony_ci OHOS::SOCPERF::SocPerfClient::GetInstance().ThermalLimitBoost(false, msg); 3253fc297bdSopenharmony_ci EXPECT_EQ(msg, ""); 3263fc297bdSopenharmony_ci} 3273fc297bdSopenharmony_ci 3283fc297bdSopenharmony_ci/* 3293fc297bdSopenharmony_ci * @tc.name: SocPerfSubTest_RequestCmdIdCount_001 3303fc297bdSopenharmony_ci * @tc.desc: RequestCmdIdCount 3313fc297bdSopenharmony_ci * @tc.type FUNC 3323fc297bdSopenharmony_ci * @tc.require: issueI9H4NS 3333fc297bdSopenharmony_ci */ 3343fc297bdSopenharmony_ciHWTEST_F(SocPerfSubTest, SocPerfSubTest_RequestCmdIdCount_001, Function | MediumTest | Level0) 3353fc297bdSopenharmony_ci{ 3363fc297bdSopenharmony_ci std::string msg = ""; 3373fc297bdSopenharmony_ci OHOS::SOCPERF::SocPerfClient::GetInstance().RequestCmdIdCount(""); 3383fc297bdSopenharmony_ci EXPECT_EQ(msg, ""); 3393fc297bdSopenharmony_ci} 3403fc297bdSopenharmony_ci 3413fc297bdSopenharmony_ci/* 3423fc297bdSopenharmony_ci * @tc.name: SocPerfSubTest_LimitRequest_001 3433fc297bdSopenharmony_ci * @tc.desc: LimitRequest thermal 3443fc297bdSopenharmony_ci * @tc.type FUNC 3453fc297bdSopenharmony_ci * @tc.require: issueI78T3V 3463fc297bdSopenharmony_ci */ 3473fc297bdSopenharmony_ciHWTEST_F(SocPerfSubTest, SocPerfSubTest_LimitRequest_001, Function | MediumTest | Level0) 3483fc297bdSopenharmony_ci{ 3493fc297bdSopenharmony_ci int32_t clientId_power = ACTION_TYPE_POWER; 3503fc297bdSopenharmony_ci std::vector<int32_t> tags; 3513fc297bdSopenharmony_ci tags.push_back(1001); 3523fc297bdSopenharmony_ci std::vector<int64_t> configs; 3533fc297bdSopenharmony_ci EXPECT_NE(tags.size(), configs.size()); 3543fc297bdSopenharmony_ci configs.push_back(1608000); 3553fc297bdSopenharmony_ci EXPECT_EQ(tags.size(), configs.size()); 3563fc297bdSopenharmony_ci OHOS::SOCPERF::SocPerfClient::GetInstance().LimitRequest(clientId_power, tags, configs, ""); 3573fc297bdSopenharmony_ci} 3583fc297bdSopenharmony_ci 3593fc297bdSopenharmony_ci/* 3603fc297bdSopenharmony_ci * @tc.name: SocPerfSubTest_LimitRequest_002 3613fc297bdSopenharmony_ci * @tc.desc: LimitRequest thermal 3623fc297bdSopenharmony_ci * @tc.type FUNC 3633fc297bdSopenharmony_ci * @tc.require: issueI78T3V 3643fc297bdSopenharmony_ci */ 3653fc297bdSopenharmony_ciHWTEST_F(SocPerfSubTest, SocPerfSubTest_LimitRequest_002, Function | MediumTest | Level0) 3663fc297bdSopenharmony_ci{ 3673fc297bdSopenharmony_ci int32_t clientId_thermal = ACTION_TYPE_THERMAL; 3683fc297bdSopenharmony_ci std::vector<int32_t> tags; 3693fc297bdSopenharmony_ci tags.push_back(1000); 3703fc297bdSopenharmony_ci tags.push_back(1001); 3713fc297bdSopenharmony_ci std::vector<int64_t> configs; 3723fc297bdSopenharmony_ci EXPECT_NE(tags.size(), configs.size()); 3733fc297bdSopenharmony_ci configs.push_back(1800000); 3743fc297bdSopenharmony_ci configs.push_back(1992000); 3753fc297bdSopenharmony_ci EXPECT_EQ(tags.size(), configs.size()); 3763fc297bdSopenharmony_ci OHOS::SOCPERF::SocPerfClient::GetInstance().LimitRequest(clientId_thermal, tags, configs, ""); 3773fc297bdSopenharmony_ci} 3783fc297bdSopenharmony_ci 3793fc297bdSopenharmony_cistatic void SocPerfSubTestLimitRequestTask() 3803fc297bdSopenharmony_ci{ 3813fc297bdSopenharmony_ci int32_t clientId_power = ACTION_TYPE_POWER; 3823fc297bdSopenharmony_ci std::vector<int32_t> tags; 3833fc297bdSopenharmony_ci constexpr int resId = 1001; 3843fc297bdSopenharmony_ci tags.push_back(resId); 3853fc297bdSopenharmony_ci std::vector<int64_t> configs; 3863fc297bdSopenharmony_ci EXPECT_NE(tags.size(), configs.size()); 3873fc297bdSopenharmony_ci constexpr int freqValue = 1416000; 3883fc297bdSopenharmony_ci configs.push_back(freqValue); 3893fc297bdSopenharmony_ci EXPECT_EQ(tags.size(), configs.size()); 3903fc297bdSopenharmony_ci OHOS::SOCPERF::SocPerfClient::GetInstance().LimitRequest(clientId_power, tags, configs, ""); 3913fc297bdSopenharmony_ci OHOS::SOCPERF::SocPerfClient::GetInstance().PowerLimitBoost(true, ""); 3923fc297bdSopenharmony_ci OHOS::SOCPERF::SocPerfClient::GetInstance().PowerLimitBoost(false, ""); 3933fc297bdSopenharmony_ci} 3943fc297bdSopenharmony_ci 3953fc297bdSopenharmony_ci/* 3963fc297bdSopenharmony_ci * @tc.name: SocPerfSubTest_LimitRequest_003 3973fc297bdSopenharmony_ci * @tc.desc: Test LimitRequest thermal in multithreading 3983fc297bdSopenharmony_ci * @tc.type FUNC 3993fc297bdSopenharmony_ci * @tc.require: issueI7G8VT 4003fc297bdSopenharmony_ci */ 4013fc297bdSopenharmony_ciHWTEST_F(SocPerfSubTest, SocPerfSubTest_LimitRequest_003, Function | MediumTest | Level0) 4023fc297bdSopenharmony_ci{ 4033fc297bdSopenharmony_ci SET_THREAD_NUM(10); 4043fc297bdSopenharmony_ci GTEST_RUN_TASK(SocPerfSubTestLimitRequestTask); 4053fc297bdSopenharmony_ci} 4063fc297bdSopenharmony_ci 4073fc297bdSopenharmony_ci/* 4083fc297bdSopenharmony_ci * @tc.name: SocPerfSubTest_ResetClient_001 4093fc297bdSopenharmony_ci * @tc.desc: ResetClient 4103fc297bdSopenharmony_ci * @tc.type FUNC 4113fc297bdSopenharmony_ci * @tc.require: issueI78T3V 4123fc297bdSopenharmony_ci */ 4133fc297bdSopenharmony_ciHWTEST_F(SocPerfSubTest, SocPerfSubTest_ResetClient_001, Function | MediumTest | Level0) 4143fc297bdSopenharmony_ci{ 4153fc297bdSopenharmony_ci std::string msg = ""; 4163fc297bdSopenharmony_ci OHOS::SOCPERF::SocPerfClient::GetInstance().PerfRequest(10000, msg); 4173fc297bdSopenharmony_ci EXPECT_EQ(msg, ""); 4183fc297bdSopenharmony_ci OHOS::SOCPERF::SocPerfClient::GetInstance().PerfRequestEx(10000, true, msg); 4193fc297bdSopenharmony_ci EXPECT_EQ(msg, ""); 4203fc297bdSopenharmony_ci OHOS::SOCPERF::SocPerfClient::GetInstance().PerfRequestEx(10000, false, msg); 4213fc297bdSopenharmony_ci EXPECT_EQ(msg, ""); 4223fc297bdSopenharmony_ci OHOS::SOCPERF::SocPerfClient::GetInstance().PowerLimitBoost(true, msg); 4233fc297bdSopenharmony_ci EXPECT_EQ(msg, ""); 4243fc297bdSopenharmony_ci OHOS::SOCPERF::SocPerfClient::GetInstance().PowerLimitBoost(false, msg); 4253fc297bdSopenharmony_ci EXPECT_EQ(msg, ""); 4263fc297bdSopenharmony_ci OHOS::SOCPERF::SocPerfClient::GetInstance().ThermalLimitBoost(true, msg); 4273fc297bdSopenharmony_ci EXPECT_EQ(msg, ""); 4283fc297bdSopenharmony_ci OHOS::SOCPERF::SocPerfClient::GetInstance().ThermalLimitBoost(false, msg); 4293fc297bdSopenharmony_ci EXPECT_EQ(msg, ""); 4303fc297bdSopenharmony_ci OHOS::SOCPERF::SocPerfClient::GetInstance().SetRequestStatus(false, msg); 4313fc297bdSopenharmony_ci EXPECT_EQ(msg, ""); 4323fc297bdSopenharmony_ci OHOS::SOCPERF::SocPerfClient::GetInstance().SetRequestStatus(true, msg); 4333fc297bdSopenharmony_ci EXPECT_EQ(msg, ""); 4343fc297bdSopenharmony_ci OHOS::SOCPERF::SocPerfClient::GetInstance().RequestDeviceMode("test", true); 4353fc297bdSopenharmony_ci EXPECT_EQ(msg, ""); 4363fc297bdSopenharmony_ci OHOS::SOCPERF::SocPerfClient::GetInstance().RequestDeviceMode("test", false); 4373fc297bdSopenharmony_ci EXPECT_EQ(msg, ""); 4383fc297bdSopenharmony_ci OHOS::SOCPERF::SocPerfClient::GetInstance().ResetClient(); 4393fc297bdSopenharmony_ci} 4403fc297bdSopenharmony_ci 4413fc297bdSopenharmony_ci/* 4423fc297bdSopenharmony_ci * @tc.name: SocPerfSubTest_SetThermalLvl_001 4433fc297bdSopenharmony_ci * @tc.desc: perf request lvl client API 4443fc297bdSopenharmony_ci * @tc.type FUNC 4453fc297bdSopenharmony_ci * @tc.require: issue#I95U8S 4463fc297bdSopenharmony_ci */ 4473fc297bdSopenharmony_ciHWTEST_F(SocPerfSubTest, SocPerfSubTest_SetThermalLevel_001, Function | MediumTest | Level0) 4483fc297bdSopenharmony_ci{ 4493fc297bdSopenharmony_ci int level = 3; 4503fc297bdSopenharmony_ci OHOS::SOCPERF::SocPerfClient::GetInstance().SetThermalLevel(level); 4513fc297bdSopenharmony_ci EXPECT_EQ(level, 3); 4523fc297bdSopenharmony_ci} 4533fc297bdSopenharmony_ci 4543fc297bdSopenharmony_cistatic void SocPerfSubTestMultithreadingTask() 4553fc297bdSopenharmony_ci{ 4563fc297bdSopenharmony_ci std::string msg = ""; 4573fc297bdSopenharmony_ci OHOS::SOCPERF::SocPerfClient::GetInstance().PerfRequest(10000, msg); 4583fc297bdSopenharmony_ci OHOS::SOCPERF::SocPerfClient::GetInstance().PerfRequestEx(10000, true, msg); 4593fc297bdSopenharmony_ci OHOS::SOCPERF::SocPerfClient::GetInstance().PerfRequestEx(10000, false, msg); 4603fc297bdSopenharmony_ci OHOS::SOCPERF::SocPerfClient::GetInstance().PowerLimitBoost(true, msg); 4613fc297bdSopenharmony_ci OHOS::SOCPERF::SocPerfClient::GetInstance().PowerLimitBoost(false, msg); 4623fc297bdSopenharmony_ci OHOS::SOCPERF::SocPerfClient::GetInstance().ThermalLimitBoost(true, msg); 4633fc297bdSopenharmony_ci OHOS::SOCPERF::SocPerfClient::GetInstance().ThermalLimitBoost(false, msg); 4643fc297bdSopenharmony_ci EXPECT_EQ(msg, ""); 4653fc297bdSopenharmony_ci} 4663fc297bdSopenharmony_ci 4673fc297bdSopenharmony_ci/* 4683fc297bdSopenharmony_ci * @tc.name: SocPerfSubTest_Multithreading_001 4693fc297bdSopenharmony_ci * @tc.desc: Test the service above in multithreading 4703fc297bdSopenharmony_ci * @tc.type FUNC 4713fc297bdSopenharmony_ci * @tc.require: issueI7G8VT 4723fc297bdSopenharmony_ci */ 4733fc297bdSopenharmony_ciHWTEST_F(SocPerfSubTest, SocPerfSubTest_Multithreading_001, Function | MediumTest | Level0) 4743fc297bdSopenharmony_ci{ 4753fc297bdSopenharmony_ci SET_THREAD_NUM(10); 4763fc297bdSopenharmony_ci GTEST_RUN_TASK(SocPerfSubTestMultithreadingTask); 4773fc297bdSopenharmony_ci} 4783fc297bdSopenharmony_ci} // namespace SOCPERF 4793fc297bdSopenharmony_ci} // namespace OHOS 480