• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 2022 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 #define private public
17 #define protected public
18 #undef private
19 #undef protected
20 
21 #include <gtest/gtest.h>
22 #include "socperf_client.h"
23 #include "socperf.h"
24 #include "iservice_registry.h"
25 #include "system_ability_definition.h"
26 
27 using namespace testing::ext;
28 
29 namespace OHOS {
30 namespace SOCPERF {
31 class SocPerfSubTest : public testing::Test {
32 public:
33     static void SetUpTestCase(void);
34     static void TearDownTestCase(void);
35     void SetUp();
36     void TearDown();
37 };
38 
SetUpTestCase(void)39 void SocPerfSubTest::SetUpTestCase(void)
40 {
41 }
42 
TearDownTestCase(void)43 void SocPerfSubTest::TearDownTestCase(void)
44 {
45 }
46 
SetUp(void)47 void SocPerfSubTest::SetUp(void)
48 {
49 }
50 
TearDown(void)51 void SocPerfSubTest::TearDown(void)
52 {
53 }
54 
55 /*
56  * @tc.name: SocPerfSubTest_ActionType_001
57  * @tc.desc: action type perf
58  * @tc.type FUNC
59  * @tc.require SR000GGTLG AR000GH38A
60  */
61 HWTEST_F(SocPerfSubTest, SocPerfSubTest_ActionType_001, Function | MediumTest | Level0)
62 {
63     EXPECT_EQ(OHOS::SOCPERF::ActionType::ACTION_TYPE_PERF, 0);
64 }
65 
66 /*
67  * @tc.name: SocPerfSubTest_ActionType_002
68  * @tc.desc: action type power
69  * @tc.type FUNC
70  * @tc.require SR000GGTLG AR000GH38A
71  */
72 HWTEST_F(SocPerfSubTest, SocPerfSubTest_ActionType_002, Function | MediumTest | Level0)
73 {
74     EXPECT_EQ(OHOS::SOCPERF::ActionType::ACTION_TYPE_POWER, 1);
75 }
76 
77 /*
78  * @tc.name: SocPerfSubTest_ActionType_003
79  * @tc.desc: action type THERMAL
80  * @tc.type FUNC
81  * @tc.require SR000GGTLG AR000GH38A
82  */
83 HWTEST_F(SocPerfSubTest, SocPerfSubTest_ActionType_003, Function | MediumTest | Level0)
84 {
85     EXPECT_EQ(OHOS::SOCPERF::ActionType::ACTION_TYPE_THERMAL, 2);
86 }
87 
88 /*
89  * @tc.name: SocPerfSubTest_ActionType_004
90  * @tc.desc: action type max
91  * @tc.type FUNC
92  * @tc.require SR000GGTLG AR000GH38A
93  */
94 HWTEST_F(SocPerfSubTest, SocPerfSubTest_ActionType_004, Function | MediumTest | Level0)
95 {
96     EXPECT_EQ(OHOS::SOCPERF::ActionType::ACTION_TYPE_MAX, 3);
97 }
98 
99 /*
100  * @tc.name: SocPerfSubTest_EventType_001
101  * @tc.desc: event type off
102  * @tc.type FUNC
103  * @tc.require SR000GGTLG AR000GH38A
104  */
105 HWTEST_F(SocPerfSubTest, SocPerfSubTest_EventType_001, Function | MediumTest | Level0)
106 {
107     EXPECT_EQ(OHOS::SOCPERF::EventType::EVENT_OFF, 0);
108 }
109 
110 /*
111  * @tc.name: SocPerfSubTest_EventType_002
112  * @tc.desc: event type on
113  * @tc.type FUNC
114  * @tc.require SR000GGTLG AR000GH38A
115  */
116 HWTEST_F(SocPerfSubTest, SocPerfSubTest_EventType_002, Function | MediumTest | Level0)
117 {
118     EXPECT_EQ(OHOS::SOCPERF::EventType::EVENT_ON, 1);
119 }
120 
121 /*
122  * @tc.name: SocPerfSubTest_EventType_003
123  * @tc.desc: event type invalid
124  * @tc.type FUNC
125  * @tc.require SR000GGTLG AR000GH38A
126  */
127 HWTEST_F(SocPerfSubTest, SocPerfSubTest_EventType_003, Function | MediumTest | Level0)
128 {
129     EXPECT_EQ(OHOS::SOCPERF::EventType::EVENT_INVALID, -1);
130 }
131 
132 /*
133  * @tc.name: SocPerfSubTest_InnerEventId_001
134  * @tc.desc: init res node info
135  * @tc.type FUNC
136  * @tc.require SR000GGTLG AR000GH37V
137  */
138 HWTEST_F(SocPerfSubTest, SocPerfSubTest_InnerEventId_001, Function | MediumTest | Level0)
139 {
140     EXPECT_EQ(INNER_EVENT_ID_INIT_RES_NODE_INFO, 0);
141 }
142 
143 /*
144  * @tc.name: SocPerfSubTest_InnerEventId_002
145  * @tc.desc: init gov res node info
146  * @tc.type FUNC
147  * @tc.require SR000GGTLG AR000GH37V
148  */
149 HWTEST_F(SocPerfSubTest, SocPerfSubTest_InnerEventId_002, Function | MediumTest | Level0)
150 {
151     EXPECT_EQ(INNER_EVENT_ID_INIT_GOV_RES_NODE_INFO, 1);
152 }
153 
154 /*
155  * @tc.name: SocPerfSubTest_InnerEventId_003
156  * @tc.desc: do freq action
157  * @tc.type FUNC
158  * @tc.require SR000GGTLG AR000GH380
159  */
160 HWTEST_F(SocPerfSubTest, SocPerfSubTest_InnerEventId_003, Function | MediumTest | Level0)
161 {
162     EXPECT_EQ(INNER_EVENT_ID_DO_FREQ_ACTION, 2);
163 }
164 
165 /*
166  * @tc.name: SocPerfSubTest_InnerEventId_004
167  * @tc.desc: do freq action delayed
168  * @tc.type FUNC
169  * @tc.require SR000GGTLG AR000GH380
170  */
171 HWTEST_F(SocPerfSubTest, SocPerfSubTest_InnerEventId_004, Function | MediumTest | Level0)
172 {
173     EXPECT_EQ(INNER_EVENT_ID_DO_FREQ_ACTION_DELAYED, 3);
174 }
175 
176 /*
177  * @tc.name: SocPerfSubTest_InnerEventId_005
178  * @tc.desc: power limit boost freq
179  * @tc.type FUNC
180  * @tc.require SR000GGTLG AR000GH380
181  */
182 HWTEST_F(SocPerfSubTest, SocPerfSubTest_InnerEventId_005, Function | MediumTest | Level0)
183 {
184     EXPECT_EQ(INNER_EVENT_ID_POWER_LIMIT_BOOST_FREQ, 4);
185 }
186 
187 /*
188  * @tc.name: SocPerfSubTest_InnerEventId_006
189  * @tc.desc: thermal limit boost freq
190  * @tc.type FUNC
191  * @tc.require SR000GGTLG AR000GH380
192  */
193 HWTEST_F(SocPerfSubTest, SocPerfSubTest_InnerEventId_006, Function | MediumTest | Level0)
194 {
195     EXPECT_EQ(INNER_EVENT_ID_THERMAL_LIMIT_BOOST_FREQ, 5);
196 }
197 
198 /*
199  * @tc.name: SocPerfSubTest_GetService_001
200  * @tc.desc: get socperf service
201  * @tc.type FUNC
202  * @tc.require SR000GGTLG AR000GH384 AR000GH385
203  */
204 HWTEST_F(SocPerfSubTest, SocPerfSubTest_GetService_001, Function | MediumTest | Level0)
205 {
206     sptr<ISystemAbilityManager> samgr = SystemAbilityManagerClient::GetInstance().GetSystemAbilityManager();
207     EXPECT_NE(samgr, nullptr);
208 
209     sptr<IRemoteObject> object = samgr->GetSystemAbility(SOC_PERF_SERVICE_SA_ID);
210     EXPECT_NE(object, nullptr);
211 }
212 
213 /*
214  * @tc.name: SocPerfSubTest_GetService_002
215  * @tc.desc: get socperf service
216  * @tc.type FUNC
217  * @tc.require SR000GGTLG AR000GH38B AR000GH38C AR000GH38D AR000GH38E AR000GH38F AR000GH386 AR000GH387 AR000GH388
218  */
219 HWTEST_F(SocPerfSubTest, SocPerfSubTest_GetService_002, Function | MediumTest | Level0)
220 {
221     sptr<ISystemAbilityManager> samgr = SystemAbilityManagerClient::GetInstance().GetSystemAbilityManager();
222     EXPECT_NE(samgr, nullptr);
223 
224     sptr<IRemoteObject> object = samgr->GetSystemAbility(RES_SCHED_SYS_ABILITY_ID);
225     EXPECT_NE(object, nullptr);
226 }
227 
228 /*
229  * @tc.name: SocPerfSubTest_PerfRequest_001
230  * @tc.desc: PerfRequest
231  * @tc.type FUNC
232  * @tc.require SR000GGTLG AR000GH381 AR000GH382 AR000GH389 AR000GH37U
233  */
234 HWTEST_F(SocPerfSubTest, SocPerfSubTest_PerfRequest_001, Function | MediumTest | Level0)
235 {
236     OHOS::SOCPERF::SocPerfClient::GetInstance().PerfRequest(10000, "");
237 }
238 
239 /*
240  * @tc.name: SocPerfSubTest_PerfRequest_002
241  * @tc.desc: PerfRequestEx ON
242  * @tc.type FUNC
243  * @tc.require SR000GGTLG AR000GH381 AR000GH382 AR000GH389 AR000GH37U
244  */
245 HWTEST_F(SocPerfSubTest, SocPerfSubTest_PerfRequest_002, Function | MediumTest | Level0)
246 {
247     OHOS::SOCPERF::SocPerfClient::GetInstance().PerfRequestEx(10000, true, "");
248 }
249 
250 /*
251  * @tc.name: SocPerfSubTest_PerfRequest_003
252  * @tc.desc: PerfRequestEx OFF
253  * @tc.type FUNC
254  * @tc.require SR000GGTLG AR000GH381 AR000GH382 AR000GH389 AR000GH37U
255  */
256 HWTEST_F(SocPerfSubTest, SocPerfSubTest_PerfRequest_003, Function | MediumTest | Level0)
257 {
258     OHOS::SOCPERF::SocPerfClient::GetInstance().PerfRequestEx(10000, false, "");
259 }
260 
261 /*
262  * @tc.name: SocPerfSubTest_PowerLimitBoost_001
263  * @tc.desc: PowerLimitBoost ON
264  * @tc.type FUNC
265  * @tc.require SR000GGTLG AR000GH381 AR000GH382 AR000GH389 AR000GH37U
266  */
267 HWTEST_F(SocPerfSubTest, SocPerfSubTest_PowerLimitBoost_001, Function | MediumTest | Level0)
268 {
269     OHOS::SOCPERF::SocPerfClient::GetInstance().PowerLimitBoost(true, "");
270 }
271 
272 /*
273  * @tc.name: SocPerfSubTest_PowerLimitBoost_001
274  * @tc.desc: PowerLimitBoost OFF
275  * @tc.type FUNC
276  * @tc.require SR000GGTLG AR000GH381 AR000GH382 AR000GH389 AR000GH37U
277  */
278 HWTEST_F(SocPerfSubTest, SocPerfSubTest_PowerLimitBoost_002, Function | MediumTest | Level0)
279 {
280     OHOS::SOCPERF::SocPerfClient::GetInstance().PowerLimitBoost(false, "");
281 }
282 
283 /*
284  * @tc.name: SocPerfSubTest_ThermalLimitBoost_001
285  * @tc.desc: ThermalLimitBoost ON
286  * @tc.type FUNC
287  * @tc.require SR000GGTLG AR000GH381 AR000GH382 AR000GH389 AR000GH37U
288  */
289 HWTEST_F(SocPerfSubTest, SocPerfSubTest_ThermalLimitBoost_001, Function | MediumTest | Level0)
290 {
291     OHOS::SOCPERF::SocPerfClient::GetInstance().ThermalLimitBoost(true, "");
292 }
293 
294 /*
295  * @tc.name: SocPerfSubTest_ThermalLimitBoost_002
296  * @tc.desc: ThermalLimitBoost OFF
297  * @tc.type FUNC
298  * @tc.require SR000GGTLG AR000GH381 AR000GH382 AR000GH389 AR000GH37U
299  */
300 HWTEST_F(SocPerfSubTest, SocPerfSubTest_ThermalLimitBoost_002, Function | MediumTest | Level0)
301 {
302     OHOS::SOCPERF::SocPerfClient::GetInstance().ThermalLimitBoost(false, "");
303 }
304 
305 /*
306  * @tc.name: SocPerfSubTest_LimitRequest_001
307  * @tc.desc: LimitRequest thermal
308  * @tc.type FUNC
309  */
310 HWTEST_F(SocPerfSubTest, SocPerfSubTest_LimitRequest_001, Function | MediumTest | Level0)
311 {
312     int32_t clientId_power = ACTION_TYPE_POWER;
313     std::vector<int32_t> tags;
314     tags.push_back(1001);
315     std::vector<int64_t> configs;
316     EXPECT_NE(tags.size(), configs.size());
317     configs.push_back(1608000);
318     EXPECT_EQ(tags.size(), configs.size());
319     OHOS::SOCPERF::SocPerfClient::GetInstance().LimitRequest(clientId_power, tags, configs, "");
320 }
321 
322 /*
323  * @tc.name: SocPerfSubTest_LimitRequest_002
324  * @tc.desc: LimitRequest thermal
325  * @tc.type FUNC
326  */
327 HWTEST_F(SocPerfSubTest, SocPerfSubTest_LimitRequest_002, Function | MediumTest | Level0)
328 {
329     int32_t clientId_thermal = ACTION_TYPE_THERMAL;
330     std::vector<int32_t> tags;
331     tags.push_back(1000);
332     tags.push_back(1001);
333     std::vector<int64_t> configs;
334     EXPECT_NE(tags.size(), configs.size());
335     configs.push_back(1800000);
336     configs.push_back(1992000);
337     EXPECT_EQ(tags.size(), configs.size());
338     OHOS::SOCPERF::SocPerfClient::GetInstance().LimitRequest(clientId_thermal, tags, configs, "");
339 }
340 
341 /*
342  * @tc.name: SocPerfSubTest_ResetClient_001
343  * @tc.desc: ResetClient
344  * @tc.type FUNC
345  */
346 HWTEST_F(SocPerfSubTest, SocPerfSubTest_ResetClient_001, Function | MediumTest | Level0)
347 {
348     OHOS::SOCPERF::SocPerfClient::GetInstance().PerfRequest(10000, "");
349     OHOS::SOCPERF::SocPerfClient::GetInstance().PerfRequestEx(10000, true, "");
350     OHOS::SOCPERF::SocPerfClient::GetInstance().PerfRequestEx(10000, false, "");
351     OHOS::SOCPERF::SocPerfClient::GetInstance().PowerLimitBoost(true, "");
352     OHOS::SOCPERF::SocPerfClient::GetInstance().PowerLimitBoost(false, "");
353     OHOS::SOCPERF::SocPerfClient::GetInstance().ThermalLimitBoost(true, "");
354     OHOS::SOCPERF::SocPerfClient::GetInstance().ThermalLimitBoost(false, "");
355     OHOS::SOCPERF::SocPerfClient::GetInstance().ResetClient();
356 }
357 } // namespace SOCPERF
358 } // namespace OHOS
359