• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 2021-2024 Huawei Device Co., Ltd.
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  *     http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * Unless required by applicable law or agreed to in writing, software
10  * distributed under the License is distributed on an "AS IS" BASIS,
11  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12  * See the License for the specific language governing permissions and
13  * limitations under the License.
14  */
15 
16 #include <bundle_mgr_proxy.h>
17 #include <condition_variable>
18 #include <datetime_ex.h>
19 #include <gtest/gtest.h>
20 #include <if_system_ability_manager.h>
21 #include <iostream>
22 #include <ipc_skeleton.h>
23 #include <mutex>
24 #include <string_ex.h>
25 
26 #include "common_event_manager.h"
27 #include "ipower_mode_callback.h"
28 #include "power_common.h"
29 #include "power_mgr_client.h"
30 #include "power_mgr_powersavemode_test.h"
31 #include "power_mgr_service.h"
32 #include "power_state_machine.h"
33 #include "power_state_machine_info.h"
34 #include "running_lock.h"
35 #include "running_lock_info.h"
36 
37 using namespace testing::ext;
38 using namespace OHOS::PowerMgr;
39 using namespace OHOS::EventFwk;
40 using namespace OHOS;
41 using namespace std;
42 
43 namespace {
44 std::condition_variable g_cv;
45 std::mutex g_mtx;
46 std::string g_action = "";
47 constexpr int64_t TIME_OUT = 1;
48 } // namespace
49 
50 static uint32_t g_i = 0;
51 static int g_judgeNum = 2;
52 
OnPowerModeChanged(PowerMode mode)53 void PowerMgrPowerSavemodeTest::PowerModeTest1Callback::OnPowerModeChanged(PowerMode mode)
54 {
55     POWER_HILOGI(LABEL_TEST, "PowerModeTest1Callback::OnPowerModeChanged.");
56 }
57 
SetUpTestCase(void)58 void PowerMgrPowerSavemodeTest::SetUpTestCase(void)
59 {
60     auto pms = DelayedSpSingleton<PowerMgrService>::GetInstance();
61     pms->OnStart();
62     SystemAbility::MakeAndRegisterAbility(pms.GetRefPtr());
63 }
64 
65 namespace {
66 /**
67  * @tc.name: PowerSavemode_001
68  * @tc.desc: test SetDeviceMode in proxy
69  * @tc.type: FUNC
70  * @tc.require: issueI5MJZJ
71  */
72 HWTEST_F(PowerMgrPowerSavemodeTest, PowerSavemode_001, TestSize.Level2)
73 {
74     GTEST_LOG_(INFO) << "PowerSavemode_001: SetDeviceMode start.";
75     POWER_HILOGI(LABEL_TEST, "PowerSavemode_001 start.");
76 
77     auto& powerMgrClient = PowerMgrClient::GetInstance();
78     PowerMode modeFirst = PowerMode::POWER_SAVE_MODE;
79     PowerMode modeSecond = PowerMode::POWER_SAVE_MODE;
80     powerMgrClient.SetDeviceMode(modeFirst);
81     modeFirst = powerMgrClient.GetDeviceMode();
82     EXPECT_EQ(modeFirst, modeSecond) << "PowerSavemode_001 fail to SetDeviceMode";
83     POWER_HILOGI(LABEL_TEST, "PowerSavemode_001 end.");
84     GTEST_LOG_(INFO) << "PowerSavemode_001: SetDeviceMode end.";
85 }
86 
87 /**
88  * @tc.name: PowerSavemode_002
89  * @tc.desc: test SetDeviceMode in proxy
90  * @tc.type: FUNC
91  * @tc.require: issueI5MJZJ
92  */
93 HWTEST_F(PowerMgrPowerSavemodeTest, PowerSavemode_002, TestSize.Level2)
94 {
95     GTEST_LOG_(INFO) << "PowerSavemode_002: SetDeviceMode start.";
96     POWER_HILOGI(LABEL_TEST, "PowerSavemode_002 start.");
97     auto& powerMgrClient = PowerMgrClient::GetInstance();
98     PowerMode modeFirst = PowerMode::PERFORMANCE_MODE;
99     PowerMode modeSecond = PowerMode::PERFORMANCE_MODE;
100     powerMgrClient.SetDeviceMode(modeFirst);
101     modeFirst = powerMgrClient.GetDeviceMode();
102     EXPECT_EQ(modeFirst, modeSecond) << "PowerSavemode_002 fail to SetDeviceMode";
103     POWER_HILOGI(LABEL_TEST, "PowerSavemode_002 end.");
104     GTEST_LOG_(INFO) << "PowerSavemode_002: SetDeviceMode end.";
105 }
106 
107 /**
108  * @tc.name: PowerSavemode_003
109  * @tc.desc: test SetDeviceMode in proxy
110  * @tc.type: FUNC
111  * @tc.require: issueI5MJZJ
112  */
113 HWTEST_F(PowerMgrPowerSavemodeTest, PowerSavemode_003, TestSize.Level2)
114 {
115     GTEST_LOG_(INFO) << "PowerSavemode_003: SetDeviceMode start.";
116     POWER_HILOGI(LABEL_TEST, "PowerSavemode_003 start.");
117     auto& powerMgrClient = PowerMgrClient::GetInstance();
118     PowerMode modeFirst = PowerMode::EXTREME_POWER_SAVE_MODE;
119     PowerMode modeSecond = PowerMode::EXTREME_POWER_SAVE_MODE;
120     powerMgrClient.SetDeviceMode(modeFirst);
121     modeFirst = powerMgrClient.GetDeviceMode();
122     EXPECT_EQ(modeFirst, modeSecond) << "PowerSavemode_003 fail to SetDeviceMode";
123     POWER_HILOGI(LABEL_TEST, "PowerSavemode_003 end.");
124     GTEST_LOG_(INFO) << "PowerSavemode_003: SetDeviceMode end.";
125 }
126 
127 /**
128  * @tc.name: PowerSavemode_004
129  * @tc.desc: test SetDeviceMode in proxy
130  * @tc.type: FUNC
131  * @tc.require: issueI5MJZJ
132  */
133 HWTEST_F(PowerMgrPowerSavemodeTest, PowerSavemode_004, TestSize.Level2)
134 {
135     GTEST_LOG_(INFO) << "PowerSavemode_004: SetDeviceMode start.";
136     POWER_HILOGI(LABEL_TEST, "PowerSavemode_004 start.");
137     int PARM_ONE = 1;
138     auto& powerMgrClient = PowerMgrClient::GetInstance();
139     PowerMode modeFirst = static_cast<PowerMode>(PARM_ONE);
140     PowerMode modeSecond = static_cast<PowerMode>(PARM_ONE);
141     powerMgrClient.SetDeviceMode(modeFirst);
142     modeFirst = powerMgrClient.GetDeviceMode();
143     EXPECT_NE(modeFirst, modeSecond) << "PowerSavemode_004 fail to SetDeviceMode abnormal";
144     POWER_HILOGI(LABEL_TEST, "PowerSavemode_004 end.");
145     GTEST_LOG_(INFO) << "PowerSavemode_004: SetDeviceMode end.";
146 }
147 
148 /**
149  * @tc.name: PowerSavemode_005
150  * @tc.desc: test SetDeviceMode in proxy
151  * @tc.type: FUNC
152  * @tc.require: issueI5MJZJ
153  */
154 HWTEST_F(PowerMgrPowerSavemodeTest, PowerSavemode_005, TestSize.Level2)
155 {
156     GTEST_LOG_(INFO) << "PowerSavemode_005: SetDeviceMode start.";
157     POWER_HILOGI(LABEL_TEST, "PowerSavemode_005 start.");
158     auto& powerMgrClient = PowerMgrClient::GetInstance();
159     PowerMode modeFirst = PowerMode::EXTREME_POWER_SAVE_MODE;
160     PowerMode modeSecond = PowerMode::EXTREME_POWER_SAVE_MODE;
161     for (int i = 0; i < 100; i++) {
162         powerMgrClient.SetDeviceMode(modeFirst);
163     }
164     modeFirst = powerMgrClient.GetDeviceMode();
165     EXPECT_EQ(modeFirst, modeSecond) << "PowerSavemode_005 fail to SetDeviceMode";
166     POWER_HILOGI(LABEL_TEST, "PowerSavemode_005 end.");
167     GTEST_LOG_(INFO) << "PowerSavemode_005: SetDeviceMode end.";
168 }
169 
170 /**
171  * @tc.name: PowerSavemode_006
172  * @tc.desc: test GetDeviceMode in proxy
173  * @tc.type: FUNC
174  * @tc.require: issueI5MJZJ
175  */
176 HWTEST_F(PowerMgrPowerSavemodeTest, PowerSavemode_006, TestSize.Level2)
177 {
178     GTEST_LOG_(INFO) << "PowerSavemode_006: GetDeviceMode start.";
179     POWER_HILOGI(LABEL_TEST, "PowerSavemode_006 start.");
180     int PARM_ZERO = 0;
181     auto& powerMgrClient = PowerMgrClient::GetInstance();
182     PowerMode modeFirst = static_cast<PowerMode>(PARM_ZERO);
183     PowerMode modeSecond = PowerMode::NORMAL_MODE;
184     modeFirst = powerMgrClient.GetDeviceMode();
185     EXPECT_NE(modeFirst, modeSecond) << "PowerSavemode_006 fail to GetDeviceMode";
186     POWER_HILOGI(LABEL_TEST, "PowerSavemode_006 end.");
187     GTEST_LOG_(INFO) << "PowerSavemode_006: GetDeviceMode end.";
188 }
189 
190 /**
191  * @tc.name: PowerSavemode_007
192  * @tc.desc: test GetDeviceMode in proxy
193  * @tc.type: FUNC
194  * @tc.require: issueI5MJZJ
195  */
196 HWTEST_F(PowerMgrPowerSavemodeTest, PowerSavemode_007, TestSize.Level2)
197 {
198     GTEST_LOG_(INFO) << "PowerSavemode_007: GetDeviceMode start.";
199     POWER_HILOGI(LABEL_TEST, "PowerSavemode_007 start.");
200     auto& powerMgrClient = PowerMgrClient::GetInstance();
201     PowerMode modeFirst = PowerMode::POWER_SAVE_MODE;
202     PowerMode modeSecond = PowerMode::POWER_SAVE_MODE;
203     powerMgrClient.SetDeviceMode(modeFirst);
204     for (int i = 0; i < 100; i++) {
205         modeFirst = powerMgrClient.GetDeviceMode();
206     }
207     EXPECT_EQ(modeFirst, modeSecond) << "PowerSavemode_007 fail to GetDeviceMode";
208     POWER_HILOGI(LABEL_TEST, "PowerSavemode_007 start.");
209     GTEST_LOG_(INFO) << "PowerSavemode_007: GetDeviceMode end.";
210 }
211 
212 /**
213  * @tc.name: PowerSavemode_008
214  * @tc.desc: test PowerModeCallback
215  * @tc.type: FUNC
216  * @tc.require: issueI5MJZJ
217  */
218 HWTEST_F(PowerMgrPowerSavemodeTest, PowerSavemode_008, TestSize.Level0)
219 {
220     GTEST_LOG_(INFO) << "PowerSavemode_008: RegisterPowerModeCallback start.";
221     POWER_HILOGI(LABEL_TEST, "PowerSavemode_008 start.");
222     auto& powerMgrClient = PowerMgrClient::GetInstance();
223     const sptr<IPowerModeCallback> callBack = new PowerModeTest1Callback();
224     powerMgrClient.RegisterPowerModeCallback(callBack);
225     PowerMode modeFirst = PowerMode::POWER_SAVE_MODE;
226     PowerMode modeSecond = PowerMode::POWER_SAVE_MODE;
227     powerMgrClient.SetDeviceMode(modeFirst);
228     modeFirst = powerMgrClient.GetDeviceMode();
229     EXPECT_EQ(modeFirst, modeSecond) << "PowerSavemode_008 fail to PowerModeCallback";
230     POWER_HILOGI(LABEL_TEST, "PowerSavemode_008 end.");
231     GTEST_LOG_(INFO) << "PowerSavemode_008: RegisterPowerModeCallback end.";
232 }
233 
234 /**
235  * @tc.name: PowerSavemode_009
236  * @tc.desc: test PowerModeCallback
237  * @tc.type: FUNC
238  * @tc.require: issueI5MJZJ
239  */
240 HWTEST_F(PowerMgrPowerSavemodeTest, PowerSavemode_009, TestSize.Level0)
241 {
242     GTEST_LOG_(INFO) << "PowerSavemode_009: RegisterPowerModeCallback start.";
243     POWER_HILOGI(LABEL_TEST, "PowerSavemode_009 Start.");
244     int PARM_ONE = 1;
245     auto& powerMgrClient = PowerMgrClient::GetInstance();
246     const sptr<IPowerModeCallback> callBack = new PowerModeTest1Callback();
247     powerMgrClient.RegisterPowerModeCallback(callBack);
248 
249     PowerMode modeFirst = static_cast<PowerMode>(PARM_ONE);
250     PowerMode modeSecond = static_cast<PowerMode>(PARM_ONE);
251     powerMgrClient.SetDeviceMode(modeFirst);
252     modeFirst = powerMgrClient.GetDeviceMode();
253     EXPECT_NE(modeFirst, modeSecond) << "PowerSavemode_009 fail to PowerModeCallback";
254     POWER_HILOGI(LABEL_TEST, "PowerSavemode_009 end.");
255     GTEST_LOG_(INFO) << "PowerSavemode_009: RegisterPowerModeCallback end.";
256 }
257 
258 /**
259  * @tc.name: PowerSavemode_010
260  * @tc.desc: test PowerModeCallback
261  * @tc.type: FUNC
262  * @tc.require: issueI5MJZJ
263  */
264 HWTEST_F(PowerMgrPowerSavemodeTest, PowerSavemode_010, TestSize.Level0)
265 {
266     GTEST_LOG_(INFO) << "PowerSavemode_010: RegisterPowerModeCallback start.";
267     POWER_HILOGI(LABEL_TEST, "PowerSavemode_010 start.");
268     auto& powerMgrClient = PowerMgrClient::GetInstance();
269     const sptr<IPowerModeCallback> callBack = new PowerModeTest1Callback();
270     for (int i = 0; i < 100; i++) {
271         powerMgrClient.RegisterPowerModeCallback(callBack);
272     }
273     PowerMode modeFirst = PowerMode::POWER_SAVE_MODE;
274     PowerMode modeSecond = PowerMode::POWER_SAVE_MODE;
275     powerMgrClient.SetDeviceMode(modeFirst);
276     modeFirst = powerMgrClient.GetDeviceMode();
277     EXPECT_EQ(modeFirst, modeSecond) << "PowerSavemode_010 fail to PowerModeCallback";
278     POWER_HILOGI(LABEL_TEST, "PowerSavemode_010 end.");
279     GTEST_LOG_(INFO) << "PowerSavemode_010: RegisterPowerModeCallback end.";
280 }
281 
282 /**
283  * @tc.name: PowerSavemode_011
284  * @tc.desc: test PowerModeCallback
285  * @tc.type: FUNC
286  * @tc.require: issueI5MJZJ
287  */
288 HWTEST_F(PowerMgrPowerSavemodeTest, PowerSavemode_011, TestSize.Level0)
289 {
290     GTEST_LOG_(INFO) << "PowerSavemode_011: UnRegisterPowerModeCallback start.";
291     POWER_HILOGI(LABEL_TEST, "PowerSavemode_011 start.");
292     auto& powerMgrClient = PowerMgrClient::GetInstance();
293     const sptr<IPowerModeCallback> callBack = new PowerModeTest1Callback();
294     powerMgrClient.UnRegisterPowerModeCallback(callBack);
295     PowerMode modeFirst = PowerMode::POWER_SAVE_MODE;
296     PowerMode modeSecond = PowerMode::POWER_SAVE_MODE;
297     powerMgrClient.SetDeviceMode(modeFirst);
298     modeFirst = powerMgrClient.GetDeviceMode();
299     EXPECT_EQ(modeFirst, modeSecond) << "PowerSavemode_011 fail to PowerModeCallback";
300     POWER_HILOGI(LABEL_TEST, "PowerSavemode_011 end.");
301     GTEST_LOG_(INFO) << "PowerSavemode_011: UnRegisterPowerModeCallback end.";
302 }
303 
304 /**
305  * @tc.name: PowerSavemode_012
306  * @tc.desc: test PowerModeCallback
307  * @tc.type: FUNC
308  * @tc.require: issueI5MJZJ
309  */
310 HWTEST_F(PowerMgrPowerSavemodeTest, PowerSavemode_012, TestSize.Level0)
311 {
312     GTEST_LOG_(INFO) << "PowerSavemode_012: UnRegisterPowerModeCallback start.";
313     POWER_HILOGI(LABEL_TEST, "PowerSavemode_012 UnRegisterPowerModeCallback start.");
314     int PARM_ONE = 1;
315     auto& powerMgrClient = PowerMgrClient::GetInstance();
316     const sptr<IPowerModeCallback> callBack = new PowerModeTest1Callback();
317     powerMgrClient.UnRegisterPowerModeCallback(callBack);
318     PowerMode modeFirst = static_cast<PowerMode>(PARM_ONE);
319     PowerMode modeSecond = static_cast<PowerMode>(PARM_ONE);
320     powerMgrClient.SetDeviceMode(modeFirst);
321     modeFirst = powerMgrClient.GetDeviceMode();
322     EXPECT_NE(modeFirst, modeSecond) << "PowerSavemode_012 fail to PowerModeCallback";
323     POWER_HILOGI(LABEL_TEST, "PowerSavemode_012 UnRegisterPowerModeCallback end.");
324     GTEST_LOG_(INFO) << "PowerSavemode_012: UnRegisterPowerModeCallback end.";
325 }
326 
327 /**
328  * @tc.name: PowerSavemode_013
329  * @tc.desc: test PowerModeCallback
330  * @tc.type: FUNC
331  * @tc.require: issueI5MJZJ
332  */
333 HWTEST_F(PowerMgrPowerSavemodeTest, PowerSavemode_013, TestSize.Level0)
334 {
335     GTEST_LOG_(INFO) << "PowerSavemode_013: UnRegisterPowerModeCallback start.";
336     POWER_HILOGI(LABEL_TEST, "PowerSavemode_013 start.");
337     auto& powerMgrClient = PowerMgrClient::GetInstance();
338     const sptr<IPowerModeCallback> callBack = new PowerModeTest1Callback();
339     for (int i = 0; i < 100; i++) {
340         powerMgrClient.UnRegisterPowerModeCallback(callBack);
341     }
342     PowerMode modeFirst = PowerMode::POWER_SAVE_MODE;
343     PowerMode modeSecond = PowerMode::POWER_SAVE_MODE;
344     powerMgrClient.SetDeviceMode(modeFirst);
345     modeFirst = powerMgrClient.GetDeviceMode();
346     EXPECT_EQ(modeFirst, modeSecond) << "PowerSavemode_013 fail to PowerModeCallback";
347     POWER_HILOGI(LABEL_TEST, "PowerSavemode_013 end.");
348     GTEST_LOG_(INFO) << "PowerSavemode_013: UnRegisterPowerModeCallback end.";
349 }
350 } // namespace