137a09cd7Sopenharmony_ci/*
237a09cd7Sopenharmony_ci * Copyright (c) 2021-2024 Huawei Device Co., Ltd.
337a09cd7Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License");
437a09cd7Sopenharmony_ci * you may not use this file except in compliance with the License.
537a09cd7Sopenharmony_ci * You may obtain a copy of the License at
637a09cd7Sopenharmony_ci *
737a09cd7Sopenharmony_ci *     http://www.apache.org/licenses/LICENSE-2.0
837a09cd7Sopenharmony_ci *
937a09cd7Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software
1037a09cd7Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS,
1137a09cd7Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1237a09cd7Sopenharmony_ci * See the License for the specific language governing permissions and
1337a09cd7Sopenharmony_ci * limitations under the License.
1437a09cd7Sopenharmony_ci */
1537a09cd7Sopenharmony_ci
1637a09cd7Sopenharmony_ci#include "thermal_action_test.h"
1737a09cd7Sopenharmony_ci
1837a09cd7Sopenharmony_ci#ifdef THERMAL_GTEST
1937a09cd7Sopenharmony_ci#define private   public
2037a09cd7Sopenharmony_ci#endif
2137a09cd7Sopenharmony_ci
2237a09cd7Sopenharmony_ci#include <memory>
2337a09cd7Sopenharmony_ci#include <singleton.h>
2437a09cd7Sopenharmony_ci#include "action_airplane.h"
2537a09cd7Sopenharmony_ci#include "action_application_process.h"
2637a09cd7Sopenharmony_ci#include "action_charger.h"
2737a09cd7Sopenharmony_ci#include "action_cpu_big.h"
2837a09cd7Sopenharmony_ci#include "action_cpu_med.h"
2937a09cd7Sopenharmony_ci#include "action_cpu_lit.h"
3037a09cd7Sopenharmony_ci#include "action_cpu_isolate.h"
3137a09cd7Sopenharmony_ci#include "action_display.h"
3237a09cd7Sopenharmony_ci#include "action_gpu.h"
3337a09cd7Sopenharmony_ci#include "action_node.h"
3437a09cd7Sopenharmony_ci#include "action_shutdown.h"
3537a09cd7Sopenharmony_ci#include "action_thermal_level.h"
3637a09cd7Sopenharmony_ci#include "action_popup.h"
3737a09cd7Sopenharmony_ci#include "action_volume.h"
3837a09cd7Sopenharmony_ci#include "action_voltage.h"
3937a09cd7Sopenharmony_ci#include "file_operation.h"
4037a09cd7Sopenharmony_ci#include "iremote_object.h"
4137a09cd7Sopenharmony_ci#include "mock_thermal_remote_object.h"
4237a09cd7Sopenharmony_ci#include "thermal_service.h"
4337a09cd7Sopenharmony_ci#include "thermal_timer.h"
4437a09cd7Sopenharmony_ci
4537a09cd7Sopenharmony_ciusing namespace testing::ext;
4637a09cd7Sopenharmony_ciusing namespace OHOS::PowerMgr;
4737a09cd7Sopenharmony_ciusing namespace OHOS;
4837a09cd7Sopenharmony_ciusing namespace std;
4937a09cd7Sopenharmony_ci
5037a09cd7Sopenharmony_cinamespace {
5137a09cd7Sopenharmony_ciconstexpr int32_t BUF_LEN = 32;
5237a09cd7Sopenharmony_cistatic sptr<ThermalService> g_service = nullptr;
5337a09cd7Sopenharmony_cistd::shared_ptr<ActionApplicationProcess> g_actionApplicationProcess =
5437a09cd7Sopenharmony_ci    std::make_shared<ActionApplicationProcess>("process_ctrl");
5537a09cd7Sopenharmony_cistd::shared_ptr<ActionAirplane> g_actionAirplane = std::make_shared<ActionAirplane>("airplane");
5637a09cd7Sopenharmony_cistd::shared_ptr<ActionCharger> g_actionCharger = std::make_shared<ActionCharger>("current_sc");
5737a09cd7Sopenharmony_cistd::shared_ptr<ActionCpuBig> g_actionCpuBig = std::make_shared<ActionCpuBig>("cpu_big");
5837a09cd7Sopenharmony_cistd::shared_ptr<ActionCpuMed> g_actionCpuMed = std::make_shared<ActionCpuMed>("cpu_med");
5937a09cd7Sopenharmony_cistd::shared_ptr<ActionCpuLit> g_actionCpuLit = std::make_shared<ActionCpuLit>("cpu_lit");
6037a09cd7Sopenharmony_cistd::shared_ptr<ActionCpuIsolate> g_actionCpuIsolate = std::make_shared<ActionCpuIsolate>("isolate");
6137a09cd7Sopenharmony_cistd::shared_ptr<ActionDisplay> g_actionDisplay = std::make_shared<ActionDisplay>("lcd");
6237a09cd7Sopenharmony_cistd::shared_ptr<ActionGpu> g_actionGpu = std::make_shared<ActionGpu>("gpu");
6337a09cd7Sopenharmony_cistd::shared_ptr<ActionPopup> g_actionPopup = std::make_shared<ActionPopup>("popup");
6437a09cd7Sopenharmony_cistd::shared_ptr<ActionShutdown> g_actionShutdown = std::make_shared<ActionShutdown>("shut_down");
6537a09cd7Sopenharmony_cistd::shared_ptr<ActionThermalLevel> g_actionThermalLevel = std::make_shared<ActionThermalLevel>("thermallevel");
6637a09cd7Sopenharmony_cistd::shared_ptr<ActionVolume> g_actionVolume = std::make_shared<ActionVolume>("volume");
6737a09cd7Sopenharmony_cistd::shared_ptr<ActionVoltage> g_actionVoltage = std::make_shared<ActionVoltage>("voltage");
6837a09cd7Sopenharmony_cistd::shared_ptr<ActionNode> g_actionNode = std::make_shared<ActionNode>("action_node");
6937a09cd7Sopenharmony_ci}
7037a09cd7Sopenharmony_ci
7137a09cd7Sopenharmony_civoid ThermalActionTest::SetUpTestCase()
7237a09cd7Sopenharmony_ci{
7337a09cd7Sopenharmony_ci    g_service = ThermalService::GetInstance();
7437a09cd7Sopenharmony_ci    g_service->InitSystemTestModules();
7537a09cd7Sopenharmony_ci    g_service->OnStart();
7637a09cd7Sopenharmony_ci}
7737a09cd7Sopenharmony_ci
7837a09cd7Sopenharmony_civoid ThermalActionTest::TearDownTestCase()
7937a09cd7Sopenharmony_ci{
8037a09cd7Sopenharmony_ci    g_service->OnStop();
8137a09cd7Sopenharmony_ci}
8237a09cd7Sopenharmony_ci
8337a09cd7Sopenharmony_civoid ThermalActionTest::SetUp() {}
8437a09cd7Sopenharmony_ci
8537a09cd7Sopenharmony_civoid ThermalActionTest::TearDown() {}
8637a09cd7Sopenharmony_ci
8737a09cd7Sopenharmony_cinamespace {
8837a09cd7Sopenharmony_ci/**
8937a09cd7Sopenharmony_ci * @tc.name: ThermalActionTest001
9037a09cd7Sopenharmony_ci * @tc.desc: Action Volume Function Test
9137a09cd7Sopenharmony_ci * @tc.type: FUNC
9237a09cd7Sopenharmony_ci */
9337a09cd7Sopenharmony_ciHWTEST_F(ThermalActionTest, ThermalActionTest001, TestSize.Level0)
9437a09cd7Sopenharmony_ci{
9537a09cd7Sopenharmony_ci    THERMAL_HILOGD(LABEL_TEST, "ThermalActionTest001 start");
9637a09cd7Sopenharmony_ci    g_actionVolume->InitParams("volume");
9737a09cd7Sopenharmony_ci    g_actionVolume->SetEnableEvent(false);
9837a09cd7Sopenharmony_ci    g_actionVolume->AddActionValue("");
9937a09cd7Sopenharmony_ci    g_actionVolume->AddActionValue("1.0");
10037a09cd7Sopenharmony_ci    g_actionVolume->Execute();
10137a09cd7Sopenharmony_ci    g_actionVolume->SetStrict(true);
10237a09cd7Sopenharmony_ci    g_actionVolume->AddActionValue("2.0");
10337a09cd7Sopenharmony_ci    g_actionVolume->GetActionValue();
10437a09cd7Sopenharmony_ci    g_actionVolume->VolumeRequest(1.0);
10537a09cd7Sopenharmony_ci    int32_t ret = g_actionVolume->VolumeExecution(1.0);
10637a09cd7Sopenharmony_ci    EXPECT_TRUE(ret == ERR_OK);
10737a09cd7Sopenharmony_ci    THERMAL_HILOGD(LABEL_TEST, "ThermalActionTest001 end");
10837a09cd7Sopenharmony_ci}
10937a09cd7Sopenharmony_ci
11037a09cd7Sopenharmony_ci/**
11137a09cd7Sopenharmony_ci * @tc.name: ThermalActionTest002
11237a09cd7Sopenharmony_ci * @tc.desc: Action Voltage Function Test
11337a09cd7Sopenharmony_ci * @tc.type: FUNC
11437a09cd7Sopenharmony_ci */
11537a09cd7Sopenharmony_ciHWTEST_F(ThermalActionTest, ThermalActionTest002, TestSize.Level0)
11637a09cd7Sopenharmony_ci{
11737a09cd7Sopenharmony_ci    THERMAL_HILOGD(LABEL_TEST, "ThermalActionTest002 start");
11837a09cd7Sopenharmony_ci    g_actionVoltage->AddActionValue("");
11937a09cd7Sopenharmony_ci    g_actionVoltage->AddActionValue("1.0");
12037a09cd7Sopenharmony_ci    g_actionVoltage->Execute();
12137a09cd7Sopenharmony_ci    g_actionVoltage->SetStrict(true);
12237a09cd7Sopenharmony_ci    g_actionVoltage->AddActionValue("2.0");
12337a09cd7Sopenharmony_ci    g_actionVoltage->GetActionValue();
12437a09cd7Sopenharmony_ci    g_actionVoltage->SetVoltage(123456);
12537a09cd7Sopenharmony_ci    g_actionVoltage->ExecuteVoltageLimit();
12637a09cd7Sopenharmony_ci    int32_t ret = g_actionVoltage->WriteMockNode(123456);
12737a09cd7Sopenharmony_ci    EXPECT_FALSE(ret == ERR_OK);
12837a09cd7Sopenharmony_ci    THERMAL_HILOGD(LABEL_TEST, "ThermalActionTest002 end");
12937a09cd7Sopenharmony_ci}
13037a09cd7Sopenharmony_ci
13137a09cd7Sopenharmony_ci/**
13237a09cd7Sopenharmony_ci * @tc.name: ThermalActionTest003
13337a09cd7Sopenharmony_ci * @tc.desc: Action Thermal Level Function Test
13437a09cd7Sopenharmony_ci * @tc.type: FUNC
13537a09cd7Sopenharmony_ci */
13637a09cd7Sopenharmony_ciHWTEST_F(ThermalActionTest, ThermalActionTest003, TestSize.Level0)
13737a09cd7Sopenharmony_ci{
13837a09cd7Sopenharmony_ci    THERMAL_HILOGD(LABEL_TEST, "ThermalActionTest003 start");
13937a09cd7Sopenharmony_ci    g_actionThermalLevel->AddActionValue("");
14037a09cd7Sopenharmony_ci    g_actionThermalLevel->AddActionValue("1.0");
14137a09cd7Sopenharmony_ci    g_actionThermalLevel->Execute();
14237a09cd7Sopenharmony_ci    g_actionThermalLevel->GetThermalLevel();
14337a09cd7Sopenharmony_ci    g_actionThermalLevel->LevelRequest(1);
14437a09cd7Sopenharmony_ci    g_actionThermalLevel->LevelRequest(9);
14537a09cd7Sopenharmony_ci    g_actionThermalLevel->LevelRequest(-1);
14637a09cd7Sopenharmony_ci    g_actionThermalLevel->SetStrict(true);
14737a09cd7Sopenharmony_ci    g_actionThermalLevel->AddActionValue("2.0");
14837a09cd7Sopenharmony_ci    g_actionThermalLevel->GetActionValue();
14937a09cd7Sopenharmony_ci    g_actionThermalLevel->SubscribeThermalLevelCallback(nullptr);
15037a09cd7Sopenharmony_ci    g_actionThermalLevel->UnSubscribeThermalLevelCallback(nullptr);
15137a09cd7Sopenharmony_ci    std::shared_ptr<IRemoteObject::DeathRecipient> deathRecipient =
15237a09cd7Sopenharmony_ci        std::make_shared<ActionThermalLevel::ThermalLevelCallbackDeathRecipient>();
15337a09cd7Sopenharmony_ci    wptr<IRemoteObject> remoteObj = nullptr;
15437a09cd7Sopenharmony_ci    EXPECT_NE(deathRecipient, nullptr);
15537a09cd7Sopenharmony_ci    deathRecipient->OnRemoteDied(remoteObj);
15637a09cd7Sopenharmony_ci
15737a09cd7Sopenharmony_ci    sptr<IRemoteObject> sptrRemoteObj = new MockThermalRemoteObject();
15837a09cd7Sopenharmony_ci    EXPECT_FALSE(sptrRemoteObj == nullptr);
15937a09cd7Sopenharmony_ci    deathRecipient->OnRemoteDied(sptrRemoteObj);
16037a09cd7Sopenharmony_ci
16137a09cd7Sopenharmony_ci    g_actionThermalLevel->NotifyThermalLevelChanged(1);
16237a09cd7Sopenharmony_ci    bool ret = g_actionThermalLevel->
16337a09cd7Sopenharmony_ci        PublishLevelChangedEvents(ThermalCommonEventCode::CODE_THERMAL_LEVEL_CHANGED, 1);
16437a09cd7Sopenharmony_ci    EXPECT_TRUE(ret);
16537a09cd7Sopenharmony_ci    THERMAL_HILOGD(LABEL_TEST, "ThermalActionTest003 end");
16637a09cd7Sopenharmony_ci}
16737a09cd7Sopenharmony_ci
16837a09cd7Sopenharmony_ci/**
16937a09cd7Sopenharmony_ci * @tc.name: ThermalActionTest004
17037a09cd7Sopenharmony_ci * @tc.desc: Action Shutdown Function Test
17137a09cd7Sopenharmony_ci * @tc.type: FUNC
17237a09cd7Sopenharmony_ci */
17337a09cd7Sopenharmony_ciHWTEST_F(ThermalActionTest, ThermalActionTest004, TestSize.Level0)
17437a09cd7Sopenharmony_ci{
17537a09cd7Sopenharmony_ci    THERMAL_HILOGD(LABEL_TEST, "ThermalActionTest004 start");
17637a09cd7Sopenharmony_ci    g_actionShutdown->AddActionValue("");
17737a09cd7Sopenharmony_ci    g_actionShutdown->AddActionValue("1.0");
17837a09cd7Sopenharmony_ci    g_actionShutdown->Execute();
17937a09cd7Sopenharmony_ci    g_actionShutdown->SetStrict(true);
18037a09cd7Sopenharmony_ci    g_actionShutdown->AddActionValue("2.0");
18137a09cd7Sopenharmony_ci    g_actionShutdown->GetActionValue();
18237a09cd7Sopenharmony_ci    int32_t ret = g_actionShutdown->ShutdownRequest(false);
18337a09cd7Sopenharmony_ci    EXPECT_TRUE(ret == ERR_OK);
18437a09cd7Sopenharmony_ci    g_actionShutdown->ShutdownExecution(false);
18537a09cd7Sopenharmony_ci    g_actionShutdown->ShutdownExecution(false);
18637a09cd7Sopenharmony_ci    ret = g_actionShutdown->DelayShutdown(false, 0, 0);
18737a09cd7Sopenharmony_ci    EXPECT_TRUE(ret == ERR_OK);
18837a09cd7Sopenharmony_ci    THERMAL_HILOGD(LABEL_TEST, "ThermalActionTest004 end");
18937a09cd7Sopenharmony_ci}
19037a09cd7Sopenharmony_ci
19137a09cd7Sopenharmony_ci/**
19237a09cd7Sopenharmony_ci * @tc.name: ThermalActionTest005
19337a09cd7Sopenharmony_ci * @tc.desc: Action Display Function Test
19437a09cd7Sopenharmony_ci * @tc.type: FUNC
19537a09cd7Sopenharmony_ci * @tc.require: issueI6KRS8
19637a09cd7Sopenharmony_ci */
19737a09cd7Sopenharmony_ciHWTEST_F(ThermalActionTest, ThermalActionTest005, TestSize.Level0)
19837a09cd7Sopenharmony_ci{
19937a09cd7Sopenharmony_ci    THERMAL_HILOGD(LABEL_TEST, "ThermalActionTest005 start");
20037a09cd7Sopenharmony_ci    g_actionDisplay->AddActionValue("");
20137a09cd7Sopenharmony_ci    g_actionDisplay->AddActionValue("1.0");
20237a09cd7Sopenharmony_ci    g_actionDisplay->Execute();
20337a09cd7Sopenharmony_ci    g_actionDisplay->SetStrict(true);
20437a09cd7Sopenharmony_ci    g_actionDisplay->AddActionValue("2.0");
20537a09cd7Sopenharmony_ci    g_actionDisplay->GetActionValue();
20637a09cd7Sopenharmony_ci    EXPECT_FALSE(g_actionDisplay->valueList_.empty());
20737a09cd7Sopenharmony_ci    THERMAL_HILOGD(LABEL_TEST, "ThermalActionTest005 end");
20837a09cd7Sopenharmony_ci}
20937a09cd7Sopenharmony_ci
21037a09cd7Sopenharmony_ci/**
21137a09cd7Sopenharmony_ci * @tc.name: ThermalActionTest006
21237a09cd7Sopenharmony_ci * @tc.desc: Action Charger Function Test
21337a09cd7Sopenharmony_ci * @tc.type: FUNC
21437a09cd7Sopenharmony_ci */
21537a09cd7Sopenharmony_ciHWTEST_F(ThermalActionTest, ThermalActionTest006, TestSize.Level0)
21637a09cd7Sopenharmony_ci{
21737a09cd7Sopenharmony_ci    THERMAL_HILOGD(LABEL_TEST, "ThermalActionTest006 start");
21837a09cd7Sopenharmony_ci    g_actionCharger->AddActionValue("");
21937a09cd7Sopenharmony_ci    g_actionCharger->AddActionValue("1.0");
22037a09cd7Sopenharmony_ci    g_actionCharger->Execute();
22137a09cd7Sopenharmony_ci    g_actionCharger->ChargerRequest(0);
22237a09cd7Sopenharmony_ci    g_actionCharger->ExecuteCurrentLimit();
22337a09cd7Sopenharmony_ci    int32_t ret = g_actionCharger->WriteSimValue(0);
22437a09cd7Sopenharmony_ci    EXPECT_TRUE(ret);
22537a09cd7Sopenharmony_ci    THERMAL_HILOGD(LABEL_TEST, "ThermalActionTest006 end");
22637a09cd7Sopenharmony_ci}
22737a09cd7Sopenharmony_ci
22837a09cd7Sopenharmony_ci/**
22937a09cd7Sopenharmony_ci * @tc.name: ThermalActionTest007
23037a09cd7Sopenharmony_ci * @tc.desc: Action Application Process Test
23137a09cd7Sopenharmony_ci * @tc.type: FUNC
23237a09cd7Sopenharmony_ci */
23337a09cd7Sopenharmony_ciHWTEST_F(ThermalActionTest, ThermalActionTest007, TestSize.Level0)
23437a09cd7Sopenharmony_ci{
23537a09cd7Sopenharmony_ci    THERMAL_HILOGD(LABEL_TEST, "ThermalActionTest007 start");
23637a09cd7Sopenharmony_ci    g_actionApplicationProcess->InitParams("");
23737a09cd7Sopenharmony_ci    g_actionApplicationProcess->AddActionValue("");
23837a09cd7Sopenharmony_ci    g_actionApplicationProcess->AddActionValue("1");
23937a09cd7Sopenharmony_ci    g_actionApplicationProcess->Execute();
24037a09cd7Sopenharmony_ci    g_actionApplicationProcess->KillApplicationAction("");
24137a09cd7Sopenharmony_ci    g_actionApplicationProcess->KillProcess(0);
24237a09cd7Sopenharmony_ci    g_actionApplicationProcess->GetAppProcessInfoByName("");
24337a09cd7Sopenharmony_ci    g_actionApplicationProcess->GetAllRunnningAppProcess();
24437a09cd7Sopenharmony_ci    g_actionApplicationProcess->KillBgAppProcess();
24537a09cd7Sopenharmony_ci    g_actionApplicationProcess->KillAllAppProcess();
24637a09cd7Sopenharmony_ci    g_actionApplicationProcess->ProcessAppActionRequest(0);
24737a09cd7Sopenharmony_ci    g_actionApplicationProcess->ProcessAppActionRequest(1);
24837a09cd7Sopenharmony_ci    g_actionApplicationProcess->ProcessAppActionRequest(2);
24937a09cd7Sopenharmony_ci    g_actionApplicationProcess->ProcessAppActionRequest(3);
25037a09cd7Sopenharmony_ci    g_actionApplicationProcess->ProcessAppActionExecution(0);
25137a09cd7Sopenharmony_ci    EXPECT_TRUE(g_actionApplicationProcess->valueList_.empty());
25237a09cd7Sopenharmony_ci    THERMAL_HILOGD(LABEL_TEST, "ThermalActionTest007 end");
25337a09cd7Sopenharmony_ci}
25437a09cd7Sopenharmony_ci
25537a09cd7Sopenharmony_ci/**
25637a09cd7Sopenharmony_ci * @tc.name: ThermalActionTest008
25737a09cd7Sopenharmony_ci * @tc.desc: Action CPU Big Test
25837a09cd7Sopenharmony_ci * @tc.type: FUNC
25937a09cd7Sopenharmony_ci * @tc.require: issueI6KRS8
26037a09cd7Sopenharmony_ci */
26137a09cd7Sopenharmony_ciHWTEST_F(ThermalActionTest, ThermalActionTest008, TestSize.Level0)
26237a09cd7Sopenharmony_ci{
26337a09cd7Sopenharmony_ci    THERMAL_HILOGD(LABEL_TEST, "ThermalActionTest008 start");
26437a09cd7Sopenharmony_ci    g_actionCpuBig->AddActionValue("");
26537a09cd7Sopenharmony_ci    g_actionCpuBig->AddActionValue("1.0");
26637a09cd7Sopenharmony_ci    g_actionCpuBig->Execute();
26737a09cd7Sopenharmony_ci    EXPECT_TRUE(g_actionCpuBig->valueList_.empty());
26837a09cd7Sopenharmony_ci    THERMAL_HILOGD(LABEL_TEST, "ThermalActionTest008 end");
26937a09cd7Sopenharmony_ci}
27037a09cd7Sopenharmony_ci
27137a09cd7Sopenharmony_ci/**
27237a09cd7Sopenharmony_ci * @tc.name: ThermalActionTest009
27337a09cd7Sopenharmony_ci * @tc.desc: Action CPU Med Test
27437a09cd7Sopenharmony_ci * @tc.type: FUNC
27537a09cd7Sopenharmony_ci * @tc.require: issueI6KRS8
27637a09cd7Sopenharmony_ci */
27737a09cd7Sopenharmony_ciHWTEST_F(ThermalActionTest, ThermalActionTest009, TestSize.Level0)
27837a09cd7Sopenharmony_ci{
27937a09cd7Sopenharmony_ci    THERMAL_HILOGD(LABEL_TEST, "ThermalActionTest009 start");
28037a09cd7Sopenharmony_ci    g_actionCpuMed->AddActionValue("");
28137a09cd7Sopenharmony_ci    g_actionCpuMed->AddActionValue("1.0");
28237a09cd7Sopenharmony_ci    g_actionCpuMed->Execute();
28337a09cd7Sopenharmony_ci    EXPECT_TRUE(g_actionCpuMed->valueList_.empty());
28437a09cd7Sopenharmony_ci    THERMAL_HILOGD(LABEL_TEST, "ThermalActionTest009 end");
28537a09cd7Sopenharmony_ci}
28637a09cd7Sopenharmony_ci
28737a09cd7Sopenharmony_ci/**
28837a09cd7Sopenharmony_ci * @tc.name: ThermalActionTest010
28937a09cd7Sopenharmony_ci * @tc.desc: Action CPU Lit Test
29037a09cd7Sopenharmony_ci * @tc.type: FUNC
29137a09cd7Sopenharmony_ci * @tc.require: issueI6KRS8
29237a09cd7Sopenharmony_ci */
29337a09cd7Sopenharmony_ciHWTEST_F(ThermalActionTest, ThermalActionTest010, TestSize.Level0)
29437a09cd7Sopenharmony_ci{
29537a09cd7Sopenharmony_ci    THERMAL_HILOGD(LABEL_TEST, "ThermalActionTest010 start");
29637a09cd7Sopenharmony_ci    g_actionCpuLit->AddActionValue("");
29737a09cd7Sopenharmony_ci    g_actionCpuLit->AddActionValue("1.0");
29837a09cd7Sopenharmony_ci    g_actionCpuLit->Execute();
29937a09cd7Sopenharmony_ci    EXPECT_TRUE(g_actionCpuLit->valueList_.empty());
30037a09cd7Sopenharmony_ci    THERMAL_HILOGD(LABEL_TEST, "ThermalActionTest010 end");
30137a09cd7Sopenharmony_ci}
30237a09cd7Sopenharmony_ci
30337a09cd7Sopenharmony_ci/**
30437a09cd7Sopenharmony_ci * @tc.name: ThermalActionTest011
30537a09cd7Sopenharmony_ci * @tc.desc: Action GPU Test
30637a09cd7Sopenharmony_ci * @tc.type: FUNC
30737a09cd7Sopenharmony_ci * @tc.require: issueI6KRS8
30837a09cd7Sopenharmony_ci */
30937a09cd7Sopenharmony_ciHWTEST_F(ThermalActionTest, ThermalActionTest011, TestSize.Level0)
31037a09cd7Sopenharmony_ci{
31137a09cd7Sopenharmony_ci    THERMAL_HILOGD(LABEL_TEST, "ThermalActionTest011 start");
31237a09cd7Sopenharmony_ci    g_actionGpu->AddActionValue("");
31337a09cd7Sopenharmony_ci    g_actionGpu->AddActionValue("1.0");
31437a09cd7Sopenharmony_ci    g_actionGpu->Execute();
31537a09cd7Sopenharmony_ci    EXPECT_TRUE(g_actionGpu->valueList_.empty());
31637a09cd7Sopenharmony_ci    THERMAL_HILOGD(LABEL_TEST, "ThermalActionTest011 end");
31737a09cd7Sopenharmony_ci}
31837a09cd7Sopenharmony_ci
31937a09cd7Sopenharmony_ci/**
32037a09cd7Sopenharmony_ci * @tc.name: ThermalActionTest012
32137a09cd7Sopenharmony_ci * @tc.desc: Action Isolate CPU Test
32237a09cd7Sopenharmony_ci * @tc.type: FUNC
32337a09cd7Sopenharmony_ci  */
32437a09cd7Sopenharmony_ciHWTEST_F(ThermalActionTest, ThermalActionTest012, TestSize.Level0)
32537a09cd7Sopenharmony_ci{
32637a09cd7Sopenharmony_ci    THERMAL_HILOGD(LABEL_TEST, "ThermalActionTest012 start");
32737a09cd7Sopenharmony_ci    g_actionCpuIsolate->AddActionValue("");
32837a09cd7Sopenharmony_ci    g_actionCpuIsolate->AddActionValue("1.0");
32937a09cd7Sopenharmony_ci    g_actionCpuIsolate->Execute();
33037a09cd7Sopenharmony_ci    g_actionCpuIsolate->SetStrict(true);
33137a09cd7Sopenharmony_ci    g_actionCpuIsolate->AddActionValue("2.0");
33237a09cd7Sopenharmony_ci    g_actionCpuIsolate->GetActionValue();
33337a09cd7Sopenharmony_ci    EXPECT_FALSE(g_actionCpuIsolate->valueList_.empty());
33437a09cd7Sopenharmony_ci    THERMAL_HILOGD(LABEL_TEST, "ThermalActionTest012 end");
33537a09cd7Sopenharmony_ci}
33637a09cd7Sopenharmony_ci
33737a09cd7Sopenharmony_ci/**
33837a09cd7Sopenharmony_ci * @tc.name: ThermalActionTest013
33937a09cd7Sopenharmony_ci * @tc.desc: Action node Test
34037a09cd7Sopenharmony_ci * @tc.type: FUNC
34137a09cd7Sopenharmony_ci  */
34237a09cd7Sopenharmony_ciHWTEST_F(ThermalActionTest, ThermalActionTest013, TestSize.Level0)
34337a09cd7Sopenharmony_ci{
34437a09cd7Sopenharmony_ci    THERMAL_HILOGD(LABEL_TEST, "ThermalActionTest013 start");
34537a09cd7Sopenharmony_ci    std::string input = "1";
34637a09cd7Sopenharmony_ci    g_actionNode->InitParams("/data/service/el0/thermal/config/lcd");
34737a09cd7Sopenharmony_ci    g_actionNode->AddActionValue(input);
34837a09cd7Sopenharmony_ci    g_actionNode->Execute();
34937a09cd7Sopenharmony_ci    char buf[BUF_LEN];
35037a09cd7Sopenharmony_ci    FileOperation::ReadFile("/data/service/el0/thermal/config/lcd", buf, BUF_LEN);
35137a09cd7Sopenharmony_ci    std::string ret = buf;
35237a09cd7Sopenharmony_ci    EXPECT_EQ(input, ret);
35337a09cd7Sopenharmony_ci    THERMAL_HILOGD(LABEL_TEST, "ThermalActionTest013 end");
35437a09cd7Sopenharmony_ci}
35537a09cd7Sopenharmony_ci
35637a09cd7Sopenharmony_ci/**
35737a09cd7Sopenharmony_ci * @tc.name: ThermalActionTest014
35837a09cd7Sopenharmony_ci * @tc.desc: Action Airplane Function Test
35937a09cd7Sopenharmony_ci * @tc.type: FUNC
36037a09cd7Sopenharmony_ci */
36137a09cd7Sopenharmony_ciHWTEST_F(ThermalActionTest, ThermalActionTest014, TestSize.Level0)
36237a09cd7Sopenharmony_ci{
36337a09cd7Sopenharmony_ci    THERMAL_HILOGD(LABEL_TEST, "ThermalActionTest014 start");
36437a09cd7Sopenharmony_ci    g_actionAirplane->InitParams("airplane");
36537a09cd7Sopenharmony_ci    g_actionAirplane->AddActionValue("");
36637a09cd7Sopenharmony_ci    g_actionAirplane->AddActionValue("0");
36737a09cd7Sopenharmony_ci    g_actionAirplane->AddActionValue("air");
36837a09cd7Sopenharmony_ci    g_actionAirplane->Execute();
36937a09cd7Sopenharmony_ci    EXPECT_TRUE(g_actionAirplane->valueList_.empty());
37037a09cd7Sopenharmony_ci    std::string input = "1";
37137a09cd7Sopenharmony_ci    g_actionAirplane->AddActionValue(input);
37237a09cd7Sopenharmony_ci    g_actionCpuIsolate->SetStrict(true);
37337a09cd7Sopenharmony_ci    uint32_t value = g_actionAirplane->GetActionValue();
37437a09cd7Sopenharmony_ci    int32_t ret = g_actionAirplane->AirplaneRequest(value);
37537a09cd7Sopenharmony_ci    g_actionAirplane->AirplaneRequest(0);
37637a09cd7Sopenharmony_ci    g_actionAirplane->AirplaneRequest(1);
37737a09cd7Sopenharmony_ci    EXPECT_TRUE(ret == ERR_OK);
37837a09cd7Sopenharmony_ci    ret = g_actionAirplane->AirplaneExecution(value);
37937a09cd7Sopenharmony_ci    EXPECT_TRUE(ret == ERR_OK);
38037a09cd7Sopenharmony_ci    THERMAL_HILOGD(LABEL_TEST, "ThermalActionTest014 end");
38137a09cd7Sopenharmony_ci}
38237a09cd7Sopenharmony_ci
38337a09cd7Sopenharmony_ci/**
38437a09cd7Sopenharmony_ci * @tc.name: ThermalActionTest015
38537a09cd7Sopenharmony_ci * @tc.desc: Action Timer Test
38637a09cd7Sopenharmony_ci * @tc.type: FUNC
38737a09cd7Sopenharmony_ci */
38837a09cd7Sopenharmony_ciHWTEST_F(ThermalActionTest, ThermalActionTest015, TestSize.Level0)
38937a09cd7Sopenharmony_ci{
39037a09cd7Sopenharmony_ci    THERMAL_HILOGD(LABEL_TEST, "ThermalActionTest015 start");
39137a09cd7Sopenharmony_ci    auto timerInfo = std::make_shared<ThermalTimerInfo>();
39237a09cd7Sopenharmony_ci    ASSERT_NE(timerInfo, nullptr);
39337a09cd7Sopenharmony_ci    OHOS::PowerMgr::ThermalTimerInfo::TimerInfoCallback callback;
39437a09cd7Sopenharmony_ci    timerInfo->SetCallbackInfo(callback);
39537a09cd7Sopenharmony_ci    timerInfo->OnTrigger();
39637a09cd7Sopenharmony_ci    auto timer = std::make_shared<ThermalTimer>();
39737a09cd7Sopenharmony_ci    ASSERT_NE(timer, nullptr);
39837a09cd7Sopenharmony_ci    uint64_t triggerTime = 1;
39937a09cd7Sopenharmony_ci    std::shared_ptr<ThermalTimerInfo> info;
40037a09cd7Sopenharmony_ci    uint64_t timerId = timer->CreateTimer(info);
40137a09cd7Sopenharmony_ci    EXPECT_EQ(timerId, 0);
40237a09cd7Sopenharmony_ci    timer->StartTimer(timerId, triggerTime);
40337a09cd7Sopenharmony_ci    timer->DestroyTimer(timerId);
40437a09cd7Sopenharmony_ci    timer->StopTimer(timerId);
40537a09cd7Sopenharmony_ci    auto timerUtils = std::make_shared<ThermalTimerUtils>();
40637a09cd7Sopenharmony_ci    ASSERT_NE(timerUtils, nullptr);
40737a09cd7Sopenharmony_ci    timerUtils->Stop();
40837a09cd7Sopenharmony_ci    int delay = 1;
40937a09cd7Sopenharmony_ci    OHOS::PowerMgr::ThermalTimerUtils::NotifyTask task;
41037a09cd7Sopenharmony_ci    timerUtils->Start(delay, task);
41137a09cd7Sopenharmony_ci    timerUtils->Start(delay, task);
41237a09cd7Sopenharmony_ci    timerUtils->Stop();
41337a09cd7Sopenharmony_ci    timerUtils->Stop();
41437a09cd7Sopenharmony_ci    THERMAL_HILOGD(LABEL_TEST, "ThermalActionTest015 end");
41537a09cd7Sopenharmony_ci}
41637a09cd7Sopenharmony_ci
41737a09cd7Sopenharmony_ci/**
41837a09cd7Sopenharmony_ci * @tc.name: ThermalActionTest016
41937a09cd7Sopenharmony_ci * @tc.desc: Action Popup Test
42037a09cd7Sopenharmony_ci * @tc.type: FUNC
42137a09cd7Sopenharmony_ci */
42237a09cd7Sopenharmony_ciHWTEST_F(ThermalActionTest, ThermalActionTest016, TestSize.Level0)
42337a09cd7Sopenharmony_ci{
42437a09cd7Sopenharmony_ci    THERMAL_HILOGD(LABEL_TEST, "ThermalActionTest016 start");
42537a09cd7Sopenharmony_ci    g_actionPopup->AddActionValue("pop");
42637a09cd7Sopenharmony_ci    g_actionPopup->Execute();
42737a09cd7Sopenharmony_ci    EXPECT_TRUE(g_actionPopup->valueList_.empty());
42837a09cd7Sopenharmony_ci    THERMAL_HILOGD(LABEL_TEST, "ThermalActionTest016 end");
42937a09cd7Sopenharmony_ci}
43037a09cd7Sopenharmony_ci} // namespace
431