• 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 #include "stats_util_test.h"
17 
18 #include "stats_helper.h"
19 #include "stats_hisysevent.h"
20 #include "stats_utils.h"
21 
22 using namespace testing::ext;
23 using namespace OHOS::PowerMgr;
24 using namespace std;
25 
SetUpTestCase()26 void StatsUtilTest::SetUpTestCase()
27 {
28 }
29 
TearDownTestCase()30 void StatsUtilTest::TearDownTestCase()
31 {
32 }
33 
SetUp()34 void StatsUtilTest::SetUp()
35 {
36     StatsHelper::SetOnBattery(true);
37 }
38 
TearDown()39 void StatsUtilTest::TearDown()
40 {
41     StatsHelper::SetOnBattery(false);
42 }
43 
44 namespace {
45 /**
46  * @tc.name: StatsHiSysEvent_001
47  * @tc.desc: test StatsHiSysEvent function
48  * @tc.type: FUNC
49  * @tc.require: issueI5X13X
50  */
51 HWTEST_F (StatsUtilTest, StatsHiSysEvent_001, TestSize.Level0)
52 {
53     EXPECT_TRUE(StatsHiSysEvent::CheckHiSysEvent("POWER_RUNNINGLOCK"));
54     EXPECT_FALSE(StatsHiSysEvent::CheckHiSysEvent("POWER_RUNNINGLOCK_WRONG"));
55 }
56 
57 /**
58  * @tc.name: StatsUtils_001
59  * @tc.desc: test class StatsUtils ConvertStatsType function
60  * @tc.type: FUNC
61  * @tc.require: issueI5X13X
62  */
63 HWTEST_F (StatsUtilTest, StatsUtils_001, TestSize.Level0)
64 {
65     EXPECT_EQ("", StatsUtils::ConvertStatsType(StatsUtils::StatsType::STATS_TYPE_INVALID));
66     EXPECT_EQ(GET_VARIABLE_NAME(STATS_TYPE_BLUETOOTH_BR_ON),
67         StatsUtils::ConvertStatsType(StatsUtils::StatsType::STATS_TYPE_BLUETOOTH_BR_ON));
68     EXPECT_EQ(GET_VARIABLE_NAME(STATS_TYPE_BLUETOOTH_BR_SCAN),
69         StatsUtils::ConvertStatsType(StatsUtils::StatsType::STATS_TYPE_BLUETOOTH_BR_SCAN));
70     EXPECT_EQ(GET_VARIABLE_NAME(STATS_TYPE_BLUETOOTH_BLE_ON),
71         StatsUtils::ConvertStatsType(StatsUtils::StatsType::STATS_TYPE_BLUETOOTH_BLE_ON));
72     EXPECT_EQ(GET_VARIABLE_NAME(STATS_TYPE_BLUETOOTH_BLE_SCAN),
73         StatsUtils::ConvertStatsType(StatsUtils::StatsType::STATS_TYPE_BLUETOOTH_BLE_SCAN));
74     EXPECT_EQ(GET_VARIABLE_NAME(STATS_TYPE_WIFI_ON),
75         StatsUtils::ConvertStatsType(StatsUtils::StatsType::STATS_TYPE_WIFI_ON));
76     EXPECT_EQ(GET_VARIABLE_NAME(STATS_TYPE_WIFI_SCAN),
77         StatsUtils::ConvertStatsType(StatsUtils::StatsType::STATS_TYPE_WIFI_SCAN));
78     EXPECT_EQ(GET_VARIABLE_NAME(STATS_TYPE_PHONE_ACTIVE),
79         StatsUtils::ConvertStatsType(StatsUtils::StatsType::STATS_TYPE_PHONE_ACTIVE));
80     EXPECT_EQ(GET_VARIABLE_NAME(STATS_TYPE_PHONE_DATA),
81         StatsUtils::ConvertStatsType(StatsUtils::StatsType::STATS_TYPE_PHONE_DATA));
82     EXPECT_EQ(GET_VARIABLE_NAME(STATS_TYPE_BATTERY),
83         StatsUtils::ConvertStatsType(StatsUtils::StatsType::STATS_TYPE_BATTERY));
84     EXPECT_EQ(GET_VARIABLE_NAME(STATS_TYPE_WORKSCHEDULER),
85         StatsUtils::ConvertStatsType(StatsUtils::StatsType::STATS_TYPE_WORKSCHEDULER));
86     EXPECT_EQ(GET_VARIABLE_NAME(STATS_TYPE_THERMAL),
87         StatsUtils::ConvertStatsType(StatsUtils::StatsType::STATS_TYPE_THERMAL));
88     EXPECT_EQ(GET_VARIABLE_NAME(STATS_TYPE_DISTRIBUTEDSCHEDULER),
89         StatsUtils::ConvertStatsType(StatsUtils::StatsType::STATS_TYPE_DISTRIBUTEDSCHEDULER));
90 }
91 
92 /**
93  * @tc.name: StatsUtils_002
94  * @tc.desc: test class StatsUtils ConvertStatsType function
95  * @tc.type: FUNC
96  * @tc.require: issueI5X13X
97  */
98 HWTEST_F (StatsUtilTest, StatsUtils_002, TestSize.Level0)
99 {
100     EXPECT_EQ(GET_VARIABLE_NAME(STATS_TYPE_CAMERA_ON),
101         StatsUtils::ConvertStatsType(StatsUtils::StatsType::STATS_TYPE_CAMERA_ON));
102     EXPECT_EQ(GET_VARIABLE_NAME(STATS_TYPE_CAMERA_FLASHLIGHT_ON),
103         StatsUtils::ConvertStatsType(StatsUtils::StatsType::STATS_TYPE_CAMERA_FLASHLIGHT_ON));
104     EXPECT_EQ(GET_VARIABLE_NAME(STATS_TYPE_FLASHLIGHT_ON),
105         StatsUtils::ConvertStatsType(StatsUtils::StatsType::STATS_TYPE_FLASHLIGHT_ON));
106     EXPECT_EQ(GET_VARIABLE_NAME(STATS_TYPE_GNSS_ON),
107         StatsUtils::ConvertStatsType(StatsUtils::StatsType::STATS_TYPE_GNSS_ON));
108     EXPECT_EQ(GET_VARIABLE_NAME(STATS_TYPE_SENSOR_GRAVITY_ON),
109         StatsUtils::ConvertStatsType(StatsUtils::StatsType::STATS_TYPE_SENSOR_GRAVITY_ON));
110     EXPECT_EQ(GET_VARIABLE_NAME(STATS_TYPE_SENSOR_PROXIMITY_ON),
111         StatsUtils::ConvertStatsType(StatsUtils::StatsType::STATS_TYPE_SENSOR_PROXIMITY_ON));
112     EXPECT_EQ(GET_VARIABLE_NAME(STATS_TYPE_AUDIO_ON),
113         StatsUtils::ConvertStatsType(StatsUtils::StatsType::STATS_TYPE_AUDIO_ON));
114     EXPECT_EQ(GET_VARIABLE_NAME(STATS_TYPE_SCREEN_ON),
115         StatsUtils::ConvertStatsType(StatsUtils::StatsType::STATS_TYPE_SCREEN_ON));
116     EXPECT_EQ(GET_VARIABLE_NAME(STATS_TYPE_SCREEN_BRIGHTNESS),
117         StatsUtils::ConvertStatsType(StatsUtils::StatsType::STATS_TYPE_SCREEN_BRIGHTNESS));
118     EXPECT_EQ(GET_VARIABLE_NAME(STATS_TYPE_ALARM),
119         StatsUtils::ConvertStatsType(StatsUtils::StatsType::STATS_TYPE_ALARM));
120     EXPECT_EQ(GET_VARIABLE_NAME(STATS_TYPE_WAKELOCK_HOLD),
121         StatsUtils::ConvertStatsType(StatsUtils::StatsType::STATS_TYPE_WAKELOCK_HOLD));
122     EXPECT_EQ(GET_VARIABLE_NAME(STATS_TYPE_PHONE_IDLE),
123         StatsUtils::ConvertStatsType(StatsUtils::StatsType::STATS_TYPE_PHONE_IDLE));
124     EXPECT_EQ(GET_VARIABLE_NAME(STATS_TYPE_CPU_CLUSTER),
125         StatsUtils::ConvertStatsType(StatsUtils::StatsType::STATS_TYPE_CPU_CLUSTER));
126     EXPECT_EQ(GET_VARIABLE_NAME(STATS_TYPE_CPU_SPEED),
127         StatsUtils::ConvertStatsType(StatsUtils::StatsType::STATS_TYPE_CPU_SPEED));
128     EXPECT_EQ(GET_VARIABLE_NAME(STATS_TYPE_CPU_ACTIVE),
129         StatsUtils::ConvertStatsType(StatsUtils::StatsType::STATS_TYPE_CPU_ACTIVE));
130     EXPECT_EQ(GET_VARIABLE_NAME(STATS_TYPE_CPU_SUSPEND),
131         StatsUtils::ConvertStatsType(StatsUtils::StatsType::STATS_TYPE_CPU_SUSPEND));
132 }
133 
134 /**
135  * @tc.name: StatsHelper_001
136  * @tc.desc: test class ActiveTimer function
137  * @tc.type: FUNC
138  * @tc.require: issueI5X13X
139  */
140 HWTEST_F (StatsUtilTest, StatsHelper_001, TestSize.Level0)
141 {
142     int64_t activeTimeMs = StatsUtils::DEFAULT_VALUE;
143     int64_t devTimeMs = StatsUtils::DEFAULT_VALUE;
144     std::shared_ptr<StatsHelper::ActiveTimer> timer = std::make_shared<StatsHelper::ActiveTimer>();
145     timer->StartRunning();
146     usleep(TIMER_DURATION_MS * US_PER_MS);
147     timer->StopRunning();
148     activeTimeMs = timer->GetRunningTimeMs();
149     devTimeMs = abs(activeTimeMs - TIMER_DURATION_MS);
150     EXPECT_LE(devTimeMs, DEVIATION_TIMER_THRESHOLD);
151 
152     int64_t addTimeMs = 20;
153     timer->AddRunningTimeMs(addTimeMs);
154     activeTimeMs = timer->GetRunningTimeMs();
155     devTimeMs = abs(activeTimeMs - TIMER_DURATION_MS - addTimeMs);
156     EXPECT_LE(devTimeMs, DEVIATION_TIMER_THRESHOLD);
157 
158     timer->AddRunningTimeMs(StatsUtils::DEFAULT_VALUE);
159     EXPECT_EQ(timer->GetRunningTimeMs(), activeTimeMs);
160 
161     timer->Reset();
162     activeTimeMs = timer->GetRunningTimeMs();
163     EXPECT_EQ(activeTimeMs, StatsUtils::DEFAULT_VALUE);
164 }
165 
166 /**
167  * @tc.name: StatsHelper_002
168  * @tc.desc: test class ActiveTimer function
169  * @tc.type: FUNC
170  * @tc.require: issueI5X13X
171  */
172 HWTEST_F (StatsUtilTest, StatsHelper_002, TestSize.Level0)
173 {
174     int64_t activeTimeMs = StatsUtils::DEFAULT_VALUE;
175     int64_t devTimeMs = StatsUtils::DEFAULT_VALUE;
176     std::shared_ptr<StatsHelper::ActiveTimer> timer = std::make_shared<StatsHelper::ActiveTimer>();
177     timer->StartRunning();
178     usleep(TIMER_DURATION_MS * US_PER_MS);
179     activeTimeMs = timer->GetRunningTimeMs();
180     devTimeMs = abs(activeTimeMs - TIMER_DURATION_MS);
181     EXPECT_LE(devTimeMs, DEVIATION_TIMER_THRESHOLD);
182     timer->StopRunning();
183 
184     timer->Reset();
185     activeTimeMs = timer->GetRunningTimeMs();
186     EXPECT_EQ(activeTimeMs, StatsUtils::DEFAULT_VALUE);
187 }
188 
189 /**
190  * @tc.name: StatsHelper_003
191  * @tc.desc: test class ActiveTimer function
192  * @tc.type: FUNC
193  * @tc.require: issueI5X13X
194  */
195 HWTEST_F (StatsUtilTest, StatsHelper_003, TestSize.Level0)
196 {
197     int64_t activeTimeMs = StatsUtils::DEFAULT_VALUE;
198     int64_t devTimeMs = StatsUtils::DEFAULT_VALUE;
199     std::shared_ptr<StatsHelper::ActiveTimer> timer = std::make_shared<StatsHelper::ActiveTimer>();
200     StatsHelper::SetOnBattery(false);
201     EXPECT_FALSE(StatsHelper::IsOnBattery());
202     timer->StartRunning();
203     usleep(TIMER_DURATION_MS * US_PER_MS);
204     StatsHelper::SetOnBattery(true);
205     EXPECT_TRUE(StatsHelper::IsOnBattery());
206     usleep(TIMER_DURATION_MS * US_PER_MS);
207     timer->StopRunning();
208 
209     activeTimeMs = timer->GetRunningTimeMs();
210     devTimeMs = abs(activeTimeMs - TIMER_DURATION_MS);
211     EXPECT_LE(devTimeMs, DEVIATION_TIMER_THRESHOLD);
212 
213     timer->Reset();
214     activeTimeMs = timer->GetRunningTimeMs();
215     EXPECT_EQ(activeTimeMs, StatsUtils::DEFAULT_VALUE);
216 }
217 
218 /**
219  * @tc.name: StatsHelper_004
220  * @tc.desc: test class Counter function
221  * @tc.type: FUNC
222  * @tc.require: issueI5X13X
223  */
224 HWTEST_F (StatsUtilTest, StatsHelper_004, TestSize.Level0)
225 {
226     int64_t activeCount = StatsUtils::DEFAULT_VALUE;
227     int64_t addCount = 20;
228     std::shared_ptr<StatsHelper::Counter> counter = std::make_shared<StatsHelper::Counter>();
229     StatsHelper::SetOnBattery(false);
230     EXPECT_FALSE(StatsHelper::IsOnBattery());
231     counter->AddCount(addCount);
232     counter->AddCount(StatsUtils::DEFAULT_VALUE);
233     StatsHelper::SetOnBattery(true);
234     EXPECT_TRUE(StatsHelper::IsOnBattery());
235     counter->AddCount(addCount);
236 
237     activeCount = counter->GetCount();
238     EXPECT_EQ(activeCount, addCount);
239 
240     counter->Reset();
241     activeCount = counter->GetCount();
242     EXPECT_EQ(activeCount, StatsUtils::DEFAULT_VALUE);
243 }
244 
245 /**
246  * @tc.name: StatsHelper_005
247  * @tc.desc: test class Counter function
248  * @tc.type: FUNC
249  * @tc.require: issueI5X13X
250  */
251 HWTEST_F (StatsUtilTest, StatsHelper_005, TestSize.Level0)
252 {
253     StatsHelper::SetOnBattery(false);
254     EXPECT_FALSE(StatsHelper::IsOnBattery());
255     StatsHelper::SetScreenOff(false);
256     EXPECT_FALSE(StatsHelper::IsOnBatteryScreenOff());
257 
258     StatsHelper::SetOnBattery(false);
259     EXPECT_FALSE(StatsHelper::IsOnBattery());
260     StatsHelper::SetScreenOff(true);
261     EXPECT_FALSE(StatsHelper::IsOnBatteryScreenOff());
262 
263     StatsHelper::SetOnBattery(true);
264     EXPECT_TRUE(StatsHelper::IsOnBattery());
265     StatsHelper::SetScreenOff(false);
266     EXPECT_FALSE(StatsHelper::IsOnBatteryScreenOff());
267 
268     StatsHelper::SetOnBattery(true);
269     EXPECT_TRUE(StatsHelper::IsOnBattery());
270     StatsHelper::SetScreenOff(true);
271     EXPECT_TRUE(StatsHelper::IsOnBatteryScreenOff());
272 
273     StatsHelper::SetScreenOff(false);
274 }
275 
276 /**
277  * @tc.name: StatsHelper_006
278  * @tc.desc: test class Counter function
279  * @tc.type: FUNC
280  * @tc.require: issueI5X13X
281  */
282 HWTEST_F (StatsUtilTest, StatsHelper_006, TestSize.Level0)
283 {
284     int64_t timeMs = StatsUtils::DEFAULT_VALUE;
285     int64_t durationTimeMs = StatsUtils::DEFAULT_VALUE;
286     int64_t devTimeMs = StatsUtils::DEFAULT_VALUE;
287     StatsHelper::SetOnBattery(false);
288     EXPECT_FALSE(StatsHelper::IsOnBattery());
289     timeMs = StatsHelper::GetOnBatteryUpTimeMs();
290     usleep(TIMER_DURATION_MS * US_PER_MS);
291     durationTimeMs = abs(StatsHelper::GetOnBatteryUpTimeMs() - timeMs);
292     EXPECT_EQ(durationTimeMs, 0);
293 
294     StatsHelper::SetOnBattery(true);
295     EXPECT_TRUE(StatsHelper::IsOnBattery());
296     timeMs = StatsHelper::GetOnBatteryUpTimeMs();
297     usleep(TIMER_DURATION_MS * US_PER_MS);
298     durationTimeMs = abs(StatsHelper::GetOnBatteryUpTimeMs() - timeMs);
299     devTimeMs = abs(durationTimeMs - TIMER_DURATION_MS);
300     EXPECT_LE(devTimeMs, DEVIATION_TIMER_THRESHOLD);
301 }
302 }