• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 2025-2025 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 "gtest/gtest.h"
17 #include <thread>
18 
19 #include "res_type.h"
20 #include "res_sched_mgr.h"
21 #include "scene_recognizer_mgr.h"
22 #include "slide_recognizer.h"
23 
24 namespace OHOS {
25 namespace ResourceSchedule {
26 using namespace std;
27 using namespace testing::ext;
28 class SlideRecognizeTest : public testing::Test {
29 public:
30     static void SetUpTestCase(void);
31     static void TearDownTestCase(void);
32     void SetUp();
33     void TearDown();
34     static std::shared_ptr<SlideRecognizer> slideRecognizer_;
35 };
36 std::shared_ptr<SlideRecognizer> SlideRecognizeTest::slideRecognizer_ = nullptr;
37 
SetUpTestCase(void)38 void SlideRecognizeTest::SetUpTestCase(void)
39 {
40     slideRecognizer_ = std::static_pointer_cast<SlideRecognizer>(SceneRecognizerMgr::GetInstance().
41         sceneRecognizers_[RecognizeType::SLIDE_RECOGNIZER]);
42 }
43 
TearDownTestCase()44 void SlideRecognizeTest::TearDownTestCase() {}
45 
SetUp()46 void SlideRecognizeTest::SetUp() {}
47 
TearDown()48 void SlideRecognizeTest::TearDown() {}
49 
50 /**
51 * @tc.name: NormalSlideTest001
52 * @tc.desc: test normal slide scene.
53 * @tc.type: FUNC
54 * @tc.require: #IC5T7D
55 * @tc.author: baiheng
56 */
57 HWTEST_F(SlideRecognizeTest, NormalSlideTest001, Function | MediumTest | Level0)
58 {
59     nlohmann::json payload;
60     payload["clientPid"] = "1000";
61     payload["callingUid"] = "2000";
62     //初始状态 IDLE
63     EXPECT_EQ(slideRecognizer_->GetSlideStatus(), SlideRecognizeStat::IDLE);
64     ResSchedMgr::GetInstance().ReportData(ResType::RES_TYPE_SLIDE_RECOGNIZE,
65         ResType::SlideEventStatus::SLIDE_EVENT_DETECTING, payload);
66     std::this_thread::sleep_for(std::chrono::milliseconds(10));
67     //收到滑动探测事件 状态变化为DETECTING
68     EXPECT_EQ(slideRecognizer_->GetSlideStatus(), SlideRecognizeStat::SLIDE_NORMAL_DETECTING);
69     ResSchedMgr::GetInstance().ReportData(ResType::RES_TYPE_SEND_FRAME_EVENT, 0, payload);
70     std::this_thread::sleep_for(std::chrono::milliseconds(2));
71     //收到送帧上屏事件,且未离手,识别到此次为拖滑,状态变化为拖滑状态
72     EXPECT_EQ(slideRecognizer_->GetSlideStatus(), SlideRecognizeStat::SLIDE_NORMAL);
73     payload["up_speed"] = "0";
74     ResSchedMgr::GetInstance().ReportData(ResType::RES_TYPE_CLICK_RECOGNIZE,
75         ResType::ClickEventType::TOUCH_EVENT_UP, payload);
76     ResSchedMgr::GetInstance().ReportData(ResType::RES_TYPE_CLICK_RECOGNIZE,
77         ResType::ClickEventType::TOUCH_EVENT_DOWN, payload);
78     std::this_thread::sleep_for(std::chrono::milliseconds(2));
79     //离手速度为0,拖滑结束,状态变化为IDLE
80     EXPECT_EQ(slideRecognizer_->GetSlideStatus(), SlideRecognizeStat::IDLE);
81 }
82 
83 /**
84 * @tc.name: NormalSlideTest002
85 * @tc.desc: test normal slide scene.
86 * @tc.type: FUNC
87 * @tc.require: #IC5T7D
88 * @tc.author: baiheng
89 */
90 HWTEST_F(SlideRecognizeTest, NormalSlideTest002, Function | MediumTest | Level0)
91 {
92     nlohmann::json payload;
93     payload["clientPid"] = "1000";
94     payload["callingUid"] = "2000";
95     //初始状态 IDLE
96     EXPECT_EQ(slideRecognizer_->GetSlideStatus(), SlideRecognizeStat::IDLE);
97     ResSchedMgr::GetInstance().ReportData(ResType::RES_TYPE_SLIDE_RECOGNIZE,
98         ResType::SlideEventStatus::SLIDE_EVENT_DETECTING, payload);
99     std::this_thread::sleep_for(std::chrono::milliseconds(10));
100     //收到滑动探测事件 状态变化为DETECTING
101     EXPECT_EQ(slideRecognizer_->GetSlideStatus(), SlideRecognizeStat::SLIDE_NORMAL_DETECTING);
102     //离手
103     payload["up_speed"] = "0";
104     ResSchedMgr::GetInstance().ReportData(ResType::RES_TYPE_CLICK_RECOGNIZE,
105         ResType::ClickEventType::TOUCH_EVENT_UP, payload);
106     ResSchedMgr::GetInstance().ReportData(ResType::RES_TYPE_SEND_FRAME_EVENT, 0, payload);
107     std::this_thread::sleep_for(std::chrono::milliseconds(2));
108     //收到送帧上屏事件,但已离手,不识别为拖滑,状态变化为IDLE
109     EXPECT_EQ(slideRecognizer_->GetSlideStatus(), SlideRecognizeStat::IDLE);
110 }
111 
112 /**
113 * @tc.name: NormalSlideTest003
114 * @tc.desc: test normal slide scene.
115 * @tc.type: FUNC
116 * @tc.require: #IC5T7D
117 * @tc.author: baiheng
118 */
119 HWTEST_F(SlideRecognizeTest, NormalSlideTest003, Function | MediumTest | Level0)
120 {
121     nlohmann::json payload;
122     payload["clientPid"] = "1000";
123     payload["callingUid"] = "2000";
124     //初始状态 IDLE
125     EXPECT_EQ(slideRecognizer_->GetSlideStatus(), SlideRecognizeStat::IDLE);
126     ResSchedMgr::GetInstance().ReportData(ResType::RES_TYPE_SLIDE_RECOGNIZE,
127         ResType::SlideEventStatus::SLIDE_EVENT_DETECTING, payload);
128     std::this_thread::sleep_for(std::chrono::milliseconds(10));
129     //收到滑动探测事件 状态变化为DETECTING
130     EXPECT_EQ(slideRecognizer_->GetSlideStatus(), SlideRecognizeStat::SLIDE_NORMAL_DETECTING);
131     payload["up_speed"] = "0";
132     ResSchedMgr::GetInstance().ReportData(ResType::RES_TYPE_CLICK_RECOGNIZE,
133         ResType::ClickEventType::TOUCH_EVENT_UP, payload);
134     ResSchedMgr::GetInstance().ReportData(ResType::RES_TYPE_CLICK_RECOGNIZE,
135         ResType::ClickEventType::TOUCH_EVENT_DOWN, payload);
136     std::this_thread::sleep_for(std::chrono::milliseconds(2));
137     //离手速度为0,中间未收到送帧上屏事件,拖滑结束,状态变化为IDLE
138     EXPECT_EQ(slideRecognizer_->GetSlideStatus(), SlideRecognizeStat::IDLE);
139 }
140 
141 /**
142 * @tc.name: ListFlingTest001
143 * @tc.desc: test list fling scene.
144 * @tc.type: FUNC
145 * @tc.require: #IC5T7D
146 * @tc.author: baiheng
147 */
148 HWTEST_F(SlideRecognizeTest, ListFlingTest001, Function | MediumTest | Level0)
149 {
150     nlohmann::json payload;
151     payload["clientPid"] = "1000";
152     payload["callingUid"] = "2000";
153     //初始状态 IDLE
154     EXPECT_EQ(slideRecognizer_->GetSlideStatus(), SlideRecognizeStat::IDLE);
155     ResSchedMgr::GetInstance().ReportData(ResType::RES_TYPE_SLIDE_RECOGNIZE,
156         ResType::SlideEventStatus::SLIDE_EVENT_DETECTING, payload);
157     std::this_thread::sleep_for(std::chrono::milliseconds(10));
158     //收到滑动探测事件 状态变化为DETECTING
159     EXPECT_EQ(slideRecognizer_->GetSlideStatus(), SlideRecognizeStat::SLIDE_NORMAL_DETECTING);
160     ResSchedMgr::GetInstance().ReportData(ResType::RES_TYPE_SEND_FRAME_EVENT, 0, payload);
161     std::this_thread::sleep_for(std::chrono::milliseconds(2));
162     //收到送帧上屏事件,且未离手,识别到此次为拖滑,状态变化为拖滑状态
163     EXPECT_EQ(slideRecognizer_->GetSlideStatus(), SlideRecognizeStat::SLIDE_NORMAL);
164     payload["up_speed"] = "10.0";
165     ResSchedMgr::GetInstance().ReportData(ResType::RES_TYPE_CLICK_RECOGNIZE,
166         ResType::ClickEventType::TOUCH_EVENT_UP, payload);
167     std::this_thread::sleep_for(std::chrono::milliseconds(10));
168     //离手速度大于检测阈值,识别为抛滑,状态变化为LIST_FLING
169     EXPECT_EQ(slideRecognizer_->GetSlideStatus(), SlideRecognizeStat::LIST_FLING);
170     //模拟 2s内一直产生送帧事件
171     for (int i = 0; i < 100; ++i) {
172         std::this_thread::sleep_for(std::chrono::milliseconds(20));
173         ResSchedMgr::GetInstance().ReportData(ResType::RES_TYPE_SEND_FRAME_EVENT, 0, payload);
174         EXPECT_EQ(slideRecognizer_->GetSlideStatus(), SlideRecognizeStat::LIST_FLING);
175     }
176     //100ms内未收到送帧事件 识别未抛滑结束
177     std::this_thread::sleep_for(std::chrono::milliseconds(500));
178     EXPECT_EQ(slideRecognizer_->GetSlideStatus(), SlideRecognizeStat::IDLE);
179 }
180 
181 /**
182 * @tc.name: ListFlingTest002
183 * @tc.desc: test list fling scene.
184 * @tc.type: FUNC
185 * @tc.require: #IC5T7D
186 * @tc.author: baiheng
187 */
188 HWTEST_F(SlideRecognizeTest, ListFlingTest002, Function | MediumTest | Level0)
189 {
190     nlohmann::json payload;
191     payload["clientPid"] = "1000";
192     payload["callingUid"] = "2000";
193     //初始状态 IDLE
194     EXPECT_EQ(slideRecognizer_->GetSlideStatus(), SlideRecognizeStat::IDLE);
195     ResSchedMgr::GetInstance().ReportData(ResType::RES_TYPE_SLIDE_RECOGNIZE,
196         ResType::SlideEventStatus::SLIDE_EVENT_DETECTING, payload);
197     std::this_thread::sleep_for(std::chrono::milliseconds(10));
198     //收到滑动探测事件 状态变化为DETECTING
199     EXPECT_EQ(slideRecognizer_->GetSlideStatus(), SlideRecognizeStat::SLIDE_NORMAL_DETECTING);
200     ResSchedMgr::GetInstance().ReportData(ResType::RES_TYPE_SEND_FRAME_EVENT, 0, payload);
201     std::this_thread::sleep_for(std::chrono::milliseconds(2));
202     //收到送帧上屏事件,且未离手,识别到此次为拖滑,状态变化为拖滑状态
203     EXPECT_EQ(slideRecognizer_->GetSlideStatus(), SlideRecognizeStat::SLIDE_NORMAL);
204     payload["up_speed"] = "10.0";
205     ResSchedMgr::GetInstance().ReportData(ResType::RES_TYPE_CLICK_RECOGNIZE,
206         ResType::ClickEventType::TOUCH_EVENT_UP, payload);
207     std::this_thread::sleep_for(std::chrono::milliseconds(10));
208     //离手速度大于检测阈值,识别为抛滑,状态变化为LIST_FLING
209     EXPECT_EQ(slideRecognizer_->GetSlideStatus(), SlideRecognizeStat::LIST_FLING);
210     //模拟 4s内一直产生送帧事件
211     for (int i = 0; i < 400; ++i) {
212         std::this_thread::sleep_for(std::chrono::milliseconds(20));
213         ResSchedMgr::GetInstance().ReportData(ResType::RES_TYPE_SEND_FRAME_EVENT, 0, payload);
214     }
215     //单次抛滑超过3s,超时结束
216     EXPECT_EQ(slideRecognizer_->GetSlideStatus(), SlideRecognizeStat::IDLE);
217 }
218 
219 /**
220 * @tc.name: ListFlingTest003
221 * @tc.desc: test list fling scene.
222 * @tc.type: FUNC
223 * @tc.require: #IC5T7D
224 * @tc.author: baiheng
225 */
226 HWTEST_F(SlideRecognizeTest, ListFlingTest003, Function | MediumTest | Level0)
227 {
228     nlohmann::json payload;
229     payload["clientPid"] = "1000";
230     payload["callingUid"] = "2000";
231     //初始状态 IDLE
232     EXPECT_EQ(slideRecognizer_->GetSlideStatus(), SlideRecognizeStat::IDLE);
233     ResSchedMgr::GetInstance().ReportData(ResType::RES_TYPE_SLIDE_RECOGNIZE,
234         ResType::SlideEventStatus::SLIDE_EVENT_DETECTING, payload);
235     std::this_thread::sleep_for(std::chrono::milliseconds(10));
236     //收到滑动探测事件 状态变化为DETECTING
237     EXPECT_EQ(slideRecognizer_->GetSlideStatus(), SlideRecognizeStat::SLIDE_NORMAL_DETECTING);
238     ResSchedMgr::GetInstance().ReportData(ResType::RES_TYPE_SEND_FRAME_EVENT, 0, payload);
239     std::this_thread::sleep_for(std::chrono::milliseconds(2));
240     //收到送帧上屏事件,且未离手,识别到此次为拖滑,状态变化为拖滑状态
241     EXPECT_EQ(slideRecognizer_->GetSlideStatus(), SlideRecognizeStat::SLIDE_NORMAL);
242     payload["up_speed"] = "10.0";
243     ResSchedMgr::GetInstance().ReportData(ResType::RES_TYPE_CLICK_RECOGNIZE,
244         ResType::ClickEventType::TOUCH_EVENT_UP, payload);
245     std::this_thread::sleep_for(std::chrono::milliseconds(10));
246     //离手速度大于检测阈值,识别为抛滑,状态变化为LIST_FLING
247     EXPECT_EQ(slideRecognizer_->GetSlideStatus(), SlideRecognizeStat::LIST_FLING);
248     //模拟 1s内一直产生送帧事件
249     for (int i = 0; i < 100; ++i) {
250         std::this_thread::sleep_for(std::chrono::milliseconds(10));
251         ResSchedMgr::GetInstance().ReportData(ResType::RES_TYPE_SEND_FRAME_EVENT, 0, payload);
252         EXPECT_EQ(slideRecognizer_->GetSlideStatus(), SlideRecognizeStat::LIST_FLING);
253     }
254     //模拟连续抛滑场景
255     ResSchedMgr::GetInstance().ReportData(ResType::TOUCH_EVENT_DOWN,
256         ResType::ClickEventType::TOUCH_EVENT_UP, payload);
257     std::this_thread::sleep_for(std::chrono::milliseconds(5));
258     ResSchedMgr::GetInstance().ReportData(ResType::RES_TYPE_SLIDE_RECOGNIZE,
259         ResType::SlideEventStatus::SLIDE_EVENT_DETECTING, payload);
260     std::this_thread::sleep_for(std::chrono::milliseconds(5));
261     EXPECT_EQ(slideRecognizer_->GetSlideStatus(), SlideRecognizeStat::SLIDE_NORMAL_DETECTING);
262     ResSchedMgr::GetInstance().ReportData(ResType::RES_TYPE_SEND_FRAME_EVENT, 0, payload);
263     std::this_thread::sleep_for(std::chrono::milliseconds(2));
264     //收到送帧上屏事件,且未离手,识别到此次为拖滑,状态变化为拖滑状态
265     EXPECT_EQ(slideRecognizer_->GetSlideStatus(), SlideRecognizeStat::SLIDE_NORMAL);
266     payload["up_speed"] = "10.0";
267     ResSchedMgr::GetInstance().ReportData(ResType::RES_TYPE_CLICK_RECOGNIZE,
268         ResType::ClickEventType::TOUCH_EVENT_UP, payload);
269     std::this_thread::sleep_for(std::chrono::milliseconds(10));
270     //离手速度大于检测阈值,识别为抛滑,状态变化为LIST_FLING
271     EXPECT_EQ(slideRecognizer_->GetSlideStatus(), SlideRecognizeStat::LIST_FLING);
272     std::this_thread::sleep_for(std::chrono::milliseconds(200));
273     //超过100ms未收到送帧,识别抛滑结束
274     EXPECT_EQ(slideRecognizer_->GetSlideStatus(), SlideRecognizeStat::IDLE);
275 }
276 
277 /**
278 * @tc.name: ListFlingTest004
279 * @tc.desc: test list fling scene.
280 * @tc.type: FUNC
281 * @tc.require: #IC5T7D
282 * @tc.author: baiheng
283 */
284 HWTEST_F(SlideRecognizeTest, ListFlingTest004, Function | MediumTest | Level0)
285 {
286     nlohmann::json payload;
287     payload["clientPid"] = "1000";
288     payload["callingUid"] = "2000";
289     //初始状态 IDLE
290     EXPECT_EQ(slideRecognizer_->GetSlideStatus(), SlideRecognizeStat::IDLE);
291     ResSchedMgr::GetInstance().ReportData(ResType::RES_TYPE_SLIDE_RECOGNIZE,
292         ResType::SlideEventStatus::SLIDE_EVENT_DETECTING, payload);
293     std::this_thread::sleep_for(std::chrono::milliseconds(10));
294     //收到滑动探测事件 状态变化为DETECTING
295     EXPECT_EQ(slideRecognizer_->GetSlideStatus(), SlideRecognizeStat::SLIDE_NORMAL_DETECTING);
296     std::this_thread::sleep_for(std::chrono::milliseconds(2));
297     payload["up_speed"] = "10.0";
298     ResSchedMgr::GetInstance().ReportData(ResType::RES_TYPE_CLICK_RECOGNIZE,
299         ResType::ClickEventType::TOUCH_EVENT_UP, payload);
300     std::this_thread::sleep_for(std::chrono::milliseconds(10));
301     //离手速度大于检测阈值,且未收到送帧,但仍处于滑动探测状态,识别为抛滑,状态变化为LIST_FLING
302     EXPECT_EQ(slideRecognizer_->GetSlideStatus(), SlideRecognizeStat::LIST_FLING);
303     //模拟 4s内一直产生送帧事件
304     for (int i = 0; i < 400; ++i) {
305         std::this_thread::sleep_for(std::chrono::milliseconds(20));
306         ResSchedMgr::GetInstance().ReportData(ResType::RES_TYPE_SEND_FRAME_EVENT, 0, payload);
307     }
308     //单次抛滑超过3s,超时结束
309     EXPECT_EQ(slideRecognizer_->GetSlideStatus(), SlideRecognizeStat::IDLE);
310 }
311 
312 /**
313 * @tc.name: ListFlingTest005
314 * @tc.desc: test list fling scene.
315 * @tc.type: FUNC
316 * @tc.require: #IC5T7D
317 * @tc.author: baiheng
318 */
319 HWTEST_F(SlideRecognizeTest, ListFlingTest005, Function | MediumTest | Level0)
320 {
321     nlohmann::json payload;
322     payload["clientPid"] = "1000";
323     payload["calling_uid"] = "2000";
324     //初始状态 IDLE
325     EXPECT_EQ(slideRecognizer_->GetSlideStatus(), SlideRecognizeStat::IDLE);
326     ResSchedMgr::GetInstance().ReportData(ResType::RES_TYPE_AXIS_EVENT,
327         ResType::AxisEventStatus::AXIS_EVENT_END, payload);
328     std::this_thread::sleep_for(std::chrono::milliseconds(10));
329     EXPECT_EQ(slideRecognizer_->isInTouching_, false);
330 }
331 
332 /**
333 * @tc.name: ListFlingTest006
334 * @tc.desc: test list fling scene.
335 * @tc.type: FUNC
336 * @tc.require: #IC5T7D
337 * @tc.author: baiheng
338 */
339 HWTEST_F(SlideRecognizeTest, ListFlingTest006, Function | MediumTest | Level0)
340 {
341     nlohmann::json payload;
342     payload["clientPid"] = "1000";
343     payload["calling_uid"] = "2000";
344     //初始状态 IDLE
345     EXPECT_EQ(slideRecognizer_->GetSlideStatus(), SlideRecognizeStat::IDLE);
346     ResSchedMgr::GetInstance().ReportData(ResType::RES_TYPE_CLICK_RECOGNIZE,
347         ResType::ClickEventType::TOUCH_EVENT_PULL_UP, payload);
348     std::this_thread::sleep_for(std::chrono::milliseconds(10));
349     EXPECT_EQ(slideRecognizer_->isInTouching_, false);
350 }
351 
352 /**
353 * @tc.name: NormalSlideTest004
354 * @tc.desc: test normal slide scene.
355 * @tc.type: FUNC
356 * @tc.require: #IC5T7D
357 * @tc.author: baiheng
358 */
359 HWTEST_F(SlideRecognizeTest, NormalSlideTest004, Function | MediumTest | Level0)
360 {
361     nlohmann::json payload;
362     //初始状态 IDLE
363     EXPECT_EQ(slideRecognizer_->GetSlideStatus(), SlideRecognizeStat::IDLE);
364     ResSchedMgr::GetInstance().ReportData(ResType::RES_TYPE_SLIDE_RECOGNIZE,
365         ResType::SlideEventStatus::SLIDE_EVENT_DETECTING, payload);
366     std::this_thread::sleep_for(std::chrono::milliseconds(10));
367     ResSchedMgr::GetInstance().ReportData(ResType::RES_TYPE_SEND_FRAME_EVENT, 0, payload);
368     std::this_thread::sleep_for(std::chrono::milliseconds(2));
369     payload["up_speed"] = "0";
370     ResSchedMgr::GetInstance().ReportData(ResType::RES_TYPE_CLICK_RECOGNIZE,
371         ResType::ClickEventType::TOUCH_EVENT_UP, payload);
372     ResSchedMgr::GetInstance().ReportData(ResType::RES_TYPE_CLICK_RECOGNIZE,
373         ResType::ClickEventType::TOUCH_EVENT_DOWN, payload);
374     std::this_thread::sleep_for(std::chrono::milliseconds(2));
375 }
376 
377 /**
378 * @tc.name: NormalSlideTest005
379 * @tc.desc: test normal slide scene.
380 * @tc.type: FUNC
381 * @tc.require: #IC5T7D
382 * @tc.author: baiheng
383 */
384 HWTEST_F(SlideRecognizeTest, NormalSlideTest005, Function | MediumTest | Level0)
385 {
386     nlohmann::json payload;
387     payload["clientPid"] = 1000;
388     payload["calling_uid"] = 2000;
389     //初始状态 IDLE
390     EXPECT_EQ(slideRecognizer_->GetSlideStatus(), SlideRecognizeStat::IDLE);
391     ResSchedMgr::GetInstance().ReportData(ResType::RES_TYPE_SLIDE_RECOGNIZE,
392         ResType::SlideEventStatus::SLIDE_EVENT_DETECTING, payload);
393     std::this_thread::sleep_for(std::chrono::milliseconds(10));
394     ResSchedMgr::GetInstance().ReportData(ResType::RES_TYPE_SEND_FRAME_EVENT, 0, payload);
395     std::this_thread::sleep_for(std::chrono::milliseconds(2));
396     payload["up_speed"] = "0";
397     ResSchedMgr::GetInstance().ReportData(ResType::RES_TYPE_CLICK_RECOGNIZE,
398         ResType::ClickEventType::TOUCH_EVENT_UP, payload);
399     ResSchedMgr::GetInstance().ReportData(ResType::RES_TYPE_CLICK_RECOGNIZE,
400         ResType::ClickEventType::TOUCH_EVENT_DOWN, payload);
401     std::this_thread::sleep_for(std::chrono::milliseconds(2));
402 }
403 } // namespace ResourceSchedule
404 } // namespace OHOS