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