1 /*
2 * Copyright (c) 2024-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 <fstream>
17 #include "gtest/gtest.h"
18 #include "iservice_registry.h"
19 #include "string_ex.h"
20 #include "test_log.h"
21 #include "hisysevent_adapter.h"
22
23 #define private public
24 #include "local_ability_manager.h"
25 #include "mock_sa_realize.h"
26 #undef private
27 using namespace testing;
28 using namespace testing::ext;
29
30 namespace OHOS {
31 namespace SAFWK {
32 namespace {
33 const std::string TEST_RESOURCE_PATH = "/data/test/resource/safwk/profile/";
34 const std::u16string LOCAL_ABILITY_MANAGER_INTERFACE_TOKEN = u"ohos.localabilitymanager.accessToken";
35 constexpr int SAID = 1499;
36 constexpr int MUT_SAID = 9999;
37 constexpr int INVALID_SAID = -1;
38 constexpr int STARTCODE = 1;
39 constexpr const char* EVENT_ID = "eventId";
40 constexpr const char* NAME = "name";
41 constexpr const char* VALUE = "value";
42 constexpr const char* EXTRA_DATA_ID = "extraDataId";
43 }
44
45 class LocalAbilityManagerStubTest : public testing::Test {
46 public:
47 static void SetUpTestCase();
48 static void TearDownTestCase();
49 void SetUp();
50 void TearDown();
51 };
52
SetUpTestCase()53 void LocalAbilityManagerStubTest::SetUpTestCase()
54 {
55 DTEST_LOG << "SetUpTestCase" << std::endl;
56 }
57
TearDownTestCase()58 void LocalAbilityManagerStubTest::TearDownTestCase()
59 {
60 DTEST_LOG << "TearDownTestCase" << std::endl;
61 }
62
SetUp()63 void LocalAbilityManagerStubTest::SetUp()
64 {
65 DTEST_LOG << "SetUp" << std::endl;
66 }
67
TearDown()68 void LocalAbilityManagerStubTest::TearDown()
69 {
70 DTEST_LOG << "TearDown" << std::endl;
71 }
72
73 /**
74 * @tc.name: OnRemoteRequest001
75 * @tc.desc: OnRemoteRequest001
76 * @tc.type: FUNC
77 */
HWTEST_F(LocalAbilityManagerStubTest, OnRemoteRequest001, TestSize.Level2)78 HWTEST_F(LocalAbilityManagerStubTest, OnRemoteRequest001, TestSize.Level2)
79 {
80 DTEST_LOG << "OnRemoteRequest001 start" << std::endl;
81 MessageParcel data;
82 MessageParcel reply;
83 MessageOption option;
84 std::string deviceId = "";
85 LocalAbilityManager::SystemAbilityListener *sysListener =
86 new LocalAbilityManager::SystemAbilityListener(SAID);
87 sysListener->OnAddSystemAbility(SAID, deviceId);
88 int32_t result = LocalAbilityManager::GetInstance().OnRemoteRequest(0, data, reply, option);
89 delete sysListener;
90 EXPECT_NE(result, ERR_NONE);
91 DTEST_LOG << "OnRemoteRequest001 end" << std::endl;
92 }
93
94 /**
95 * @tc.name: OnRemoteRequest002
96 * @tc.desc: OnRemoteRequest002
97 * @tc.type: FUNC
98 */
HWTEST_F(LocalAbilityManagerStubTest, OnRemoteRequest002, TestSize.Level2)99 HWTEST_F(LocalAbilityManagerStubTest, OnRemoteRequest002, TestSize.Level2)
100 {
101 DTEST_LOG << "OnRemoteRequest002 start" << std::endl;
102 MessageParcel data;
103 data.WriteInterfaceToken(LOCAL_ABILITY_MANAGER_INTERFACE_TOKEN);
104 MessageParcel reply;
105 MessageOption option;
106 std::string deviceId = "";
107 LocalAbilityManager::SystemAbilityListener *sysListener =
108 new LocalAbilityManager::SystemAbilityListener(INVALID_SAID);
109 sysListener->OnAddSystemAbility(INVALID_SAID, deviceId);
110 int32_t result = LocalAbilityManager::GetInstance().OnRemoteRequest(0, data, reply, option);
111 delete sysListener;
112 EXPECT_NE(result, ERR_NONE);
113 DTEST_LOG << "OnRemoteRequest002 end" << std::endl;
114 }
115
116 /**
117 * @tc.name: OnRemoteRequest003
118 * @tc.desc: OnRemoteRequest003
119 * @tc.type: FUNC
120 */
HWTEST_F(LocalAbilityManagerStubTest, OnRemoteRequest003, TestSize.Level2)121 HWTEST_F(LocalAbilityManagerStubTest, OnRemoteRequest003, TestSize.Level2)
122 {
123 DTEST_LOG << "OnRemoteRequest003 start" << std::endl;
124 MessageParcel data;
125 data.WriteInterfaceToken(LOCAL_ABILITY_MANAGER_INTERFACE_TOKEN);
126 MessageParcel reply;
127 MessageOption option;
128 std::string deviceId = "";
129 LocalAbilityManager::SystemAbilityListener *sysListener =
130 new LocalAbilityManager::SystemAbilityListener(INVALID_SAID);
131 sysListener->OnRemoveSystemAbility(INVALID_SAID, deviceId);
132 int32_t result = LocalAbilityManager::GetInstance().OnRemoteRequest(STARTCODE, data, reply, option);
133 delete sysListener;
134 EXPECT_NE(result, ERR_NONE);
135 DTEST_LOG << "OnRemoteRequest003 end" << std::endl;
136 }
137
138 /**
139 * @tc.name: OnRemoteRequest004
140 * @tc.desc: OnRemoteRequest004
141 * @tc.type: FUNC
142 */
HWTEST_F(LocalAbilityManagerStubTest, OnRemoteRequest004, TestSize.Level2)143 HWTEST_F(LocalAbilityManagerStubTest, OnRemoteRequest004, TestSize.Level2)
144 {
145 DTEST_LOG << "OnRemoteRequest004 start" << std::endl;
146 MessageParcel data;
147 data.WriteInterfaceToken(LOCAL_ABILITY_MANAGER_INTERFACE_TOKEN);
148 data.WriteInt32(STARTCODE);
149 MessageParcel reply;
150 MessageOption option;
151 std::string deviceId = "";
152 LocalAbilityManager::SystemAbilityListener *sysListener =
153 new LocalAbilityManager::SystemAbilityListener(SAID);
154 sysListener->OnRemoveSystemAbility(SAID, deviceId);
155 int32_t result = LocalAbilityManager::GetInstance().OnRemoteRequest(STARTCODE, data, reply, option);
156 delete sysListener;
157 EXPECT_EQ(result, ERR_NULL_OBJECT);
158 DTEST_LOG << "OnRemoteRequest004 end" << std::endl;
159 }
160
161 /**
162 * @tc.name: OnRemoteRequest005
163 * @tc.desc: OnRemoteRequest005
164 * @tc.type: FUNC
165 */
HWTEST_F(LocalAbilityManagerStubTest, OnRemoteRequest005, TestSize.Level2)166 HWTEST_F(LocalAbilityManagerStubTest, OnRemoteRequest005, TestSize.Level2)
167 {
168 DTEST_LOG << "OnRemoteRequest005 start" << std::endl;
169 MessageParcel data;
170 data.WriteInterfaceToken(LOCAL_ABILITY_MANAGER_INTERFACE_TOKEN);
171 data.WriteInt32(STARTCODE);
172 std::string eventStr = "test";
173 data.WriteString(eventStr);
174 MessageParcel reply;
175 MessageOption option;
176 std::string deviceId = "";
177 LocalAbilityManager::SystemAbilityListener *sysListener =
178 new LocalAbilityManager::SystemAbilityListener(SAID);
179 sysListener->OnRemoveSystemAbility(SAID, deviceId);
180 int32_t result = LocalAbilityManager::GetInstance().OnRemoteRequest(STARTCODE, data, reply, option);
181 delete sysListener;
182 EXPECT_EQ(result, ERR_NONE);
183 DTEST_LOG << "OnRemoteRequest005 end" << std::endl;
184 }
185
186 /**
187 * @tc.name: OnRemoteRequest006
188 * @tc.desc: OnRemoteRequest006
189 * @tc.type: FUNC
190 */
HWTEST_F(LocalAbilityManagerStubTest, OnRemoteRequest006, TestSize.Level2)191 HWTEST_F(LocalAbilityManagerStubTest, OnRemoteRequest006, TestSize.Level2)
192 {
193 DTEST_LOG << "OnRemoteRequest006 start" << std::endl;
194 MessageParcel data;
195 data.WriteInterfaceToken(LOCAL_ABILITY_MANAGER_INTERFACE_TOKEN);
196 data.WriteInt32(STARTCODE);
197 std::string eventStr = "test";
198 data.WriteString(eventStr);
199 MessageParcel reply;
200 MessageOption option;
201 uint32_t code = 1;
202 auto iter = LocalAbilityManager::GetInstance().memberFuncMap_.find(code);
203 LocalAbilityManager::GetInstance().OnRemoteRequest(code, data, reply, option);
204 EXPECT_NE(iter, LocalAbilityManager::GetInstance().memberFuncMap_.end());
205 DTEST_LOG << "OnRemoteRequest006 end" << std::endl;
206 }
207
208 /**
209 * @tc.name: OnRemoteRequest007
210 * @tc.desc: OnRemoteRequest007
211 * @tc.type: FUNC
212 */
HWTEST_F(LocalAbilityManagerStubTest, OnRemoteRequest007, TestSize.Level2)213 HWTEST_F(LocalAbilityManagerStubTest, OnRemoteRequest007, TestSize.Level2)
214 {
215 DTEST_LOG << "OnRemoteRequest007 start" << std::endl;
216 MessageParcel data;
217 data.WriteInterfaceToken(LOCAL_ABILITY_MANAGER_INTERFACE_TOKEN);
218 data.WriteInt32(STARTCODE);
219 std::string eventStr = "test";
220 data.WriteString(eventStr);
221 MessageParcel reply;
222 MessageOption option;
223 uint32_t code = 0;
224 auto iter = LocalAbilityManager::GetInstance().memberFuncMap_.find(code);
225 LocalAbilityManager::GetInstance().OnRemoteRequest(code, data, reply, option);
226 EXPECT_EQ(iter, LocalAbilityManager::GetInstance().memberFuncMap_.end());
227 DTEST_LOG << "OnRemoteRequest007 end" << std::endl;
228 }
229
230 /**
231 * @tc.name: StartAbilityInner001
232 * @tc.desc: test StartAbilityInner with invalid SaID
233 * @tc.type: FUNC
234 * @tc.require:I6LSSX
235 */
HWTEST_F(LocalAbilityManagerStubTest, StartAbilityInner001, TestSize.Level2)236 HWTEST_F(LocalAbilityManagerStubTest, StartAbilityInner001, TestSize.Level2)
237 {
238 DTEST_LOG << "StartAbilityInner001 start" << std::endl;
239 MessageParcel data;
240 data.WriteInt32(INVALID_SAID);
241 MessageParcel reply;
242 int32_t ret = LocalAbilityManager::GetInstance().StartAbilityInner(data, reply);
243 EXPECT_EQ(ret, ERR_NULL_OBJECT);
244 DTEST_LOG << "StartAbilityInner001 end" << std::endl;
245 }
246
247 /**
248 * @tc.name: StartAbilityInner002
249 * @tc.desc: test StartAbilityInner with data.ReadString() is empty
250 * @tc.type: FUNC
251 * @tc.require:I6LSSX
252 */
HWTEST_F(LocalAbilityManagerStubTest, StartAbilityInner002, TestSize.Level2)253 HWTEST_F(LocalAbilityManagerStubTest, StartAbilityInner002, TestSize.Level2)
254 {
255 DTEST_LOG << "StartAbilityInner002 start" << std::endl;
256 MessageParcel data;
257 data.WriteInt32(STARTCODE);
258 MessageParcel reply;
259 int32_t ret = LocalAbilityManager::GetInstance().StartAbilityInner(data, reply);
260 EXPECT_EQ(ret, ERR_NULL_OBJECT);
261 DTEST_LOG << "StartAbilityInner002 end" << std::endl;
262 }
263
264 /**
265 * @tc.name: StartAbilityInner003
266 * @tc.desc: test StartAbilityInner with data.ReadString() is not empty
267 * @tc.type: FUNC
268 * @tc.require:I6LSSX
269 */
HWTEST_F(LocalAbilityManagerStubTest, StartAbilityInner003, TestSize.Level2)270 HWTEST_F(LocalAbilityManagerStubTest, StartAbilityInner003, TestSize.Level2)
271 {
272 DTEST_LOG << "StartAbilityInner003 start" << std::endl;
273 MessageParcel data;
274 data.WriteInt32(STARTCODE);
275 std::string eventStr = "test";
276 data.WriteString(eventStr);
277 MessageParcel reply;
278 int32_t ret = LocalAbilityManager::GetInstance().StartAbilityInner(data, reply);
279 EXPECT_EQ(ret, ERR_NONE);
280 DTEST_LOG << "StartAbilityInner003 end" << std::endl;
281 }
282
283 /**
284 * @tc.name: StopAbilityInner001
285 * @tc.desc: test StopAbilityInner with invalid SaID
286 * @tc.type: FUNC
287 * @tc.require:I6LSSX
288 */
HWTEST_F(LocalAbilityManagerStubTest, StopAbilityInner001, TestSize.Level2)289 HWTEST_F(LocalAbilityManagerStubTest, StopAbilityInner001, TestSize.Level2)
290 {
291 DTEST_LOG << "StopAbilityInner001 start" << std::endl;
292 MessageParcel data;
293 data.WriteInt32(INVALID_SAID);
294 MessageParcel reply;
295 int32_t ret = LocalAbilityManager::GetInstance().StopAbilityInner(data, reply);
296 EXPECT_EQ(ret, ERR_NULL_OBJECT);
297 DTEST_LOG << "StopAbilityInner001 end" << std::endl;
298 }
299
300 /**
301 * @tc.name: StopAbilityInner002
302 * @tc.desc: test StopAbilityInner with data.ReadString() is empty
303 * @tc.type: FUNC
304 * @tc.require:I6LSSX
305 */
HWTEST_F(LocalAbilityManagerStubTest, StopAbilityInner002, TestSize.Level2)306 HWTEST_F(LocalAbilityManagerStubTest, StopAbilityInner002, TestSize.Level2)
307 {
308 DTEST_LOG << "StopAbilityInner002 start" << std::endl;
309 MessageParcel data;
310 data.WriteInt32(STARTCODE);
311 MessageParcel reply;
312 int32_t ret = LocalAbilityManager::GetInstance().StopAbilityInner(data, reply);
313 EXPECT_EQ(ret, ERR_NULL_OBJECT);
314 DTEST_LOG << "StopAbilityInner002 end" << std::endl;
315 }
316
317 /**
318 * @tc.name: StopAbilityInner003
319 * @tc.desc: test StopAbilityInner with data.ReadString() is empty
320 * @tc.type: FUNC
321 * @tc.require:I6LSSX
322 */
HWTEST_F(LocalAbilityManagerStubTest, StopAbilityInner003, TestSize.Level2)323 HWTEST_F(LocalAbilityManagerStubTest, StopAbilityInner003, TestSize.Level2)
324 {
325 DTEST_LOG << "StopAbilityInner003 start" << std::endl;
326 MessageParcel data;
327 data.WriteInt32(STARTCODE);
328 std::string eventStr = "test";
329 data.WriteString(eventStr);
330 MessageParcel reply;
331 int32_t ret = LocalAbilityManager::GetInstance().StopAbilityInner(data, reply);
332 EXPECT_EQ(ret, ERR_NONE);
333 DTEST_LOG << "StopAbilityInner003 end" << std::endl;
334 }
335
336 /**
337 * @tc.name: ActiveAbilityInner001
338 * @tc.desc: test ActiveAbilityInner with invalid SaID
339 * @tc.type: FUNC
340 * @tc.require:I6LSSX
341 */
HWTEST_F(LocalAbilityManagerStubTest, ActiveAbilityInner001, TestSize.Level2)342 HWTEST_F(LocalAbilityManagerStubTest, ActiveAbilityInner001, TestSize.Level2)
343 {
344 DTEST_LOG << "ActiveAbilityInner001 start" << std::endl;
345 MessageParcel data;
346 data.WriteInt32(INVALID_SAID);
347 MessageParcel reply;
348 int32_t ret = LocalAbilityManager::GetInstance().ActiveAbilityInner(data, reply);
349 EXPECT_EQ(ret, ERR_NULL_OBJECT);
350 DTEST_LOG << "ActiveAbilityInner001 end" << std::endl;
351 }
352
353 /**
354 * @tc.name: ActiveAbilityInner002
355 * @tc.desc: test ActiveAbilityInner with valid SaID
356 * @tc.type: FUNC
357 * @tc.require:I6LSSX
358 */
HWTEST_F(LocalAbilityManagerStubTest, ActiveAbilityInner002, TestSize.Level2)359 HWTEST_F(LocalAbilityManagerStubTest, ActiveAbilityInner002, TestSize.Level2)
360 {
361 DTEST_LOG << "ActiveAbilityInner002 start" << std::endl;
362 MessageParcel data;
363 data.WriteInt32(STARTCODE);
364 MessageParcel reply;
365 int32_t ret = LocalAbilityManager::GetInstance().ActiveAbilityInner(data, reply);
366 EXPECT_EQ(ret, ERR_NONE);
367 DTEST_LOG << "ActiveAbilityInner002 end" << std::endl;
368 }
369
370 /**
371 * @tc.name: IdleAbilityInner001
372 * @tc.desc: test IdleAbilityInner with invalid SaID
373 * @tc.type: FUNC
374 * @tc.require:I6LSSX
375 */
HWTEST_F(LocalAbilityManagerStubTest, IdleAbilityInner001, TestSize.Level2)376 HWTEST_F(LocalAbilityManagerStubTest, IdleAbilityInner001, TestSize.Level2)
377 {
378 DTEST_LOG << "IdleAbilityInner001 start" << std::endl;
379 MessageParcel data;
380 data.WriteInt32(INVALID_SAID);
381 MessageParcel reply;
382 int32_t ret = LocalAbilityManager::GetInstance().IdleAbilityInner(data, reply);
383 EXPECT_EQ(ret, ERR_NULL_OBJECT);
384 DTEST_LOG << "IdleAbilityInner001 end" << std::endl;
385 }
386
387 /**
388 * @tc.name: IdleAbilityInner002
389 * @tc.desc: test IdleAbilityInner with valid SaID
390 * @tc.type: FUNC
391 * @tc.require:I6LSSX
392 */
HWTEST_F(LocalAbilityManagerStubTest, IdleAbilityInner002, TestSize.Level2)393 HWTEST_F(LocalAbilityManagerStubTest, IdleAbilityInner002, TestSize.Level2)
394 {
395 DTEST_LOG << "IdleAbilityInner002 start" << std::endl;
396 MessageParcel data;
397 data.WriteInt32(STARTCODE);
398 MessageParcel reply;
399 int32_t ret = LocalAbilityManager::GetInstance().IdleAbilityInner(data, reply);
400 EXPECT_EQ(ret, ERR_NONE);
401 DTEST_LOG << "IdleAbilityInner002 end" << std::endl;
402 }
403
404 /**
405 * @tc.name: OnStopAbility001
406 * @tc.desc: test OnStopAbility, cover function with valid SaID
407 * @tc.type: FUNC
408 * @tc.require: I73XRZ
409 */
HWTEST_F(LocalAbilityManagerStubTest, OnStopAbility001, TestSize.Level2)410 HWTEST_F(LocalAbilityManagerStubTest, OnStopAbility001, TestSize.Level2)
411 {
412 DTEST_LOG << "OnStopAbility001 start" << std::endl;
413 int32_t systemAbilityId = 1;
414 bool ret = LocalAbilityManager::GetInstance().OnStopAbility(systemAbilityId);
415 EXPECT_FALSE(ret);
416 DTEST_LOG << "OnStopAbility001 end" << std::endl;
417 }
418
419 /**
420 * @tc.name: OnStopAbility002
421 * @tc.desc: test OnStopAbility with said is in abilityMap_
422 * @tc.type: FUNC
423 * @tc.require: I7G7DL
424 */
HWTEST_F(LocalAbilityManagerStubTest, OnStopAbility002, TestSize.Level2)425 HWTEST_F(LocalAbilityManagerStubTest, OnStopAbility002, TestSize.Level2)
426 {
427 DTEST_LOG << "OnStopAbility002 start" << std::endl;
428 MockSaRealize *mockSa = new MockSaRealize(SAID, false);
429 mockSa->abilityState_ = SystemAbilityState::NOT_LOADED;
430 LocalAbilityManager::GetInstance().abilityMap_[SAID] = mockSa;
431 bool ret = LocalAbilityManager::GetInstance().OnStopAbility(SAID);
432 delete mockSa;
433 EXPECT_TRUE(ret);
434 DTEST_LOG << "OnStopAbility002 end" << std::endl;
435 }
436
437 /**
438 * @tc.name: ActiveAbility001
439 * @tc.desc: test ActiveAbility, cover function with valid SaID
440 * @tc.type: FUNC
441 * @tc.require: I73XRZ
442 */
HWTEST_F(LocalAbilityManagerStubTest, ActiveAbility001, TestSize.Level2)443 HWTEST_F(LocalAbilityManagerStubTest, ActiveAbility001, TestSize.Level2)
444 {
445 DTEST_LOG << "ActiveAbility001 start" << std::endl;
446 int32_t systemAbilityId = 1;
447 nlohmann::json activeReason;
448 bool ret = LocalAbilityManager::GetInstance().ActiveAbility(systemAbilityId, activeReason);
449 // cover StartPhaseTasks
450 std::list<SystemAbility*> systemAbilityList;
451 LocalAbilityManager::GetInstance().StartPhaseTasks(systemAbilityList);
452 EXPECT_FALSE(ret);
453 DTEST_LOG << "ActiveAbility001 end" << std::endl;
454 }
455
456 /**
457 * @tc.name: ActiveAbility002
458 * @tc.desc: test ActiveAbility with sa is existed
459 * @tc.type: FUNC
460 * @tc.require: I7G7DL
461 */
HWTEST_F(LocalAbilityManagerStubTest, ActiveAbility002, TestSize.Level2)462 HWTEST_F(LocalAbilityManagerStubTest, ActiveAbility002, TestSize.Level2)
463 {
464 DTEST_LOG << "ActiveAbility002 start" << std::endl;
465 nlohmann::json activeReason;
466 MockSaRealize *mockSa = new MockSaRealize(SAID, false);
467 LocalAbilityManager::GetInstance().abilityMap_[SAID] = mockSa;
468 mockSa->abilityState_ = SystemAbilityState::ACTIVE;
469 bool ret = LocalAbilityManager::GetInstance().ActiveAbility(SAID, activeReason);
470 delete mockSa;
471 EXPECT_TRUE(ret);
472 DTEST_LOG << "ActiveAbility002 end" << std::endl;
473 }
474
475 /**
476 * @tc.name: IdleAbility001
477 * @tc.desc: test IdleAbility, cover function
478 * @tc.type: FUNC
479 * @tc.require: I73XRZ
480 */
HWTEST_F(LocalAbilityManagerStubTest, IdleAbility001, TestSize.Level2)481 HWTEST_F(LocalAbilityManagerStubTest, IdleAbility001, TestSize.Level2)
482 {
483 DTEST_LOG << "IdleAbility001 start" << std::endl;
484 int32_t systemAbilityId = 1;
485 nlohmann::json activeReason;
486 int32_t delayTime = 0;
487 bool ret = LocalAbilityManager::GetInstance().IdleAbility(systemAbilityId, activeReason, delayTime);
488 // cover WaitForTasks
489 LocalAbilityManager::GetInstance().WaitForTasks();
490 // cover FindAndStartPhaseTasks
491 LocalAbilityManager::GetInstance().FindAndStartPhaseTasks(systemAbilityId);
492 EXPECT_FALSE(ret);
493 DTEST_LOG << "IdleAbility001 end" << std::endl;
494 }
495
496 /**
497 * @tc.name: IdleAbility002
498 * @tc.desc: test IdleAbility with sa is existed
499 * @tc.type: FUNC
500 * @tc.require: I7G7DL
501 */
HWTEST_F(LocalAbilityManagerStubTest, IdleAbility002, TestSize.Level2)502 HWTEST_F(LocalAbilityManagerStubTest, IdleAbility002, TestSize.Level2)
503 {
504 DTEST_LOG << "IdleAbility002 start" << std::endl;
505 nlohmann::json idleReason;
506 MockSaRealize *mockSa = new MockSaRealize(SAID, false);
507 LocalAbilityManager::GetInstance().abilityMap_[SAID] = mockSa;
508 mockSa->abilityState_ = SystemAbilityState::IDLE;
509 int delayTime = 0;
510 bool ret = LocalAbilityManager::GetInstance().IdleAbility(SAID, idleReason, delayTime);
511 delete mockSa;
512 EXPECT_TRUE(ret);
513 DTEST_LOG << "IdleAbility002 end" << std::endl;
514 }
515
516 /**
517 * @tc.name: JsonToOnDemandReason001
518 * @tc.desc: test JsonToOnDemandReason, with assignments
519 * @tc.type: FUNC
520 * @tc.require: I73XRZ
521 */
HWTEST_F(LocalAbilityManagerStubTest, JsonToOnDemandReason001, TestSize.Level2)522 HWTEST_F(LocalAbilityManagerStubTest, JsonToOnDemandReason001, TestSize.Level2)
523 {
524 DTEST_LOG << "JsonToOnDemandReason001 start" << std::endl;
525 SystemAbilityOnDemandReason onDemandStartReason;
526 nlohmann::json reasonJson;
527 reasonJson[EVENT_ID] = 1;
528 reasonJson[NAME] = "test";
529 reasonJson[VALUE] = "test";
530 reasonJson[EXTRA_DATA_ID] = 1;
531 onDemandStartReason.SetId(reasonJson[EVENT_ID]);
532 onDemandStartReason.SetName(reasonJson[NAME]);
533 onDemandStartReason.SetValue(reasonJson[VALUE]);
534 onDemandStartReason.SetExtraDataId(reasonJson[EXTRA_DATA_ID]);
535 SystemAbilityOnDemandReason ret = LocalAbilityManager::GetInstance().JsonToOnDemandReason(reasonJson);
536 EXPECT_EQ(ret.extraDataId_, onDemandStartReason.extraDataId_);
537 DTEST_LOG << "JsonToOnDemandReason001 end" << std::endl;
538 }
539
540 /**
541 * @tc.name: FfrtDumperProc001
542 * @tc.desc: test FfrtDumperProc
543 * @tc.type: FUNC
544 * @tc.require: I7G7DL
545 */
HWTEST_F(LocalAbilityManagerStubTest, FfrtDumperProc001, TestSize.Level2)546 HWTEST_F(LocalAbilityManagerStubTest, FfrtDumperProc001, TestSize.Level2)
547 {
548 DTEST_LOG << "FfrtDumperProc001 start" << std::endl;
549 std::string ffrtDumperInfo;
550 bool result = LocalAbilityManager::GetInstance().FfrtDumperProc(ffrtDumperInfo);
551 EXPECT_TRUE(result);
552 DTEST_LOG << "FfrtDumperProc001 end" << std::endl;
553 }
554
555 /**
556 * @tc.name: SendStrategyToSA001
557 * @tc.desc: test SendStrategyToSA001, cover function with valid SaID
558 * @tc.type: FUNC
559 */
HWTEST_F(LocalAbilityManagerStubTest, SendStrategyToSA001, TestSize.Level2)560 HWTEST_F(LocalAbilityManagerStubTest, SendStrategyToSA001, TestSize.Level2)
561 {
562 DTEST_LOG << "SendStrategyToSA001 start" << std::endl;
563 int32_t systemAbilityId = 1;
564 std::string action = "";
565 bool ret = LocalAbilityManager::GetInstance().SendStrategyToSA(1, systemAbilityId, 1, action);
566 EXPECT_FALSE(ret);
567 DTEST_LOG << "SendStrategyToSA001 end" << std::endl;
568 }
569
570 /**
571 * @tc.name: SendStrategyToSA002
572 * @tc.desc: test SendStrategyToSA with said is in abilityMap_
573 * @tc.type: FUNC
574 */
HWTEST_F(LocalAbilityManagerStubTest, SendStrategyToSA002, TestSize.Level2)575 HWTEST_F(LocalAbilityManagerStubTest, SendStrategyToSA002, TestSize.Level2)
576 {
577 DTEST_LOG << "SendStrategyToSA002 start" << std::endl;
578 MockSaRealize *mockSa = new MockSaRealize(SAID, false);
579 mockSa->abilityState_ = SystemAbilityState::NOT_LOADED;
580 LocalAbilityManager::GetInstance().abilityMap_[SAID] = mockSa;
581 std::string action = "";
582 bool ret = LocalAbilityManager::GetInstance().SendStrategyToSA(1, SAID, 1, action);
583 delete mockSa;
584 EXPECT_TRUE(ret);
585 DTEST_LOG << "SendStrategyToSA002 end" << std::endl;
586 }
587
588 /**
589 * @tc.name: IpcStatCmdProc001
590 * @tc.desc: test IpcStatCmdProc001, cover function with valid fd and valid cmd
591 * @tc.type: FUNC
592 */
HWTEST_F(LocalAbilityManagerStubTest, IpcStatCmdProc001, TestSize.Level2)593 HWTEST_F(LocalAbilityManagerStubTest, IpcStatCmdProc001, TestSize.Level2)
594 {
595 DTEST_LOG << "IpcStatCmdProc001 start" << std::endl;
596 int32_t fd = 1;
597 int32_t cmd = 0;
598 bool ret = LocalAbilityManager::GetInstance().IpcStatCmdProc(fd, cmd);
599 EXPECT_TRUE(ret);
600 DTEST_LOG << "IpcStatCmdProc001 end" << std::endl;
601 }
602
603 /**
604 * @tc.name: IpcStatCmdProc002
605 * @tc.desc: test IpcStatCmdProc002, cover function with valid fd and invalid cmd
606 * @tc.type: FUNC
607 */
HWTEST_F(LocalAbilityManagerStubTest, IpcStatCmdProc002, TestSize.Level2)608 HWTEST_F(LocalAbilityManagerStubTest, IpcStatCmdProc002, TestSize.Level2)
609 {
610 DTEST_LOG << "IpcStatCmdProc002 start" << std::endl;
611 int32_t fd = 1;
612 int32_t cmd = -1;
613 bool ret = LocalAbilityManager::GetInstance().IpcStatCmdProc(fd, cmd);
614 EXPECT_FALSE(ret);
615 DTEST_LOG << "IpcStatCmdProc002 end" << std::endl;
616 }
617
618 /**
619 * @tc.name: IpcStatCmdProc003
620 * @tc.desc: test IpcStatCmdProc003, cover function with invalid fd and valid cmd
621 * @tc.type: FUNC
622 */
HWTEST_F(LocalAbilityManagerStubTest, IpcStatCmdProc003, TestSize.Level2)623 HWTEST_F(LocalAbilityManagerStubTest, IpcStatCmdProc003, TestSize.Level2)
624 {
625 DTEST_LOG << "IpcStatCmdProc003 start" << std::endl;
626 int32_t fd = -1;
627 int32_t cmd = 0;
628 bool ret = LocalAbilityManager::GetInstance().IpcStatCmdProc(fd, cmd);
629 EXPECT_FALSE(ret);
630 DTEST_LOG << "IpcStatCmdProc003 end" << std::endl;
631 }
632
633 /**
634 * @tc.name: IpcStatCmdProc004
635 * @tc.desc: test IpcStatCmdProc004, cover function with invalid fd and invalid cmd
636 * @tc.type: FUNC
637 */
HWTEST_F(LocalAbilityManagerStubTest, IpcStatCmdProc004, TestSize.Level2)638 HWTEST_F(LocalAbilityManagerStubTest, IpcStatCmdProc004, TestSize.Level2)
639 {
640 DTEST_LOG << "IpcStatCmdProc004 start" << std::endl;
641 int32_t fd = -1;
642 int32_t cmd = -1;
643 bool ret = LocalAbilityManager::GetInstance().IpcStatCmdProc(fd, cmd);
644 EXPECT_FALSE(ret);
645 DTEST_LOG << "IpcStatCmdProc004 end" << std::endl;
646 }
647
648 /**
649 * @tc.name: CheckPermission001
650 * @tc.desc: test CheckPermission001
651 * @tc.type: FUNC
652 */
HWTEST_F(LocalAbilityManagerStubTest, CheckPermission001, TestSize.Level2)653 HWTEST_F(LocalAbilityManagerStubTest, CheckPermission001, TestSize.Level2)
654 {
655 DTEST_LOG << "CheckPermission001 start" << std::endl;
656 uint32_t code = static_cast<uint32_t>(SafwkInterfaceCode::START_ABILITY_TRANSACTION);
657 bool result = LocalAbilityManager::GetInstance().CheckPermission(code);
658 EXPECT_TRUE(result);
659 DTEST_LOG << "CheckPermission001 end" << std::endl;
660 }
661
662 /**
663 * @tc.name: CheckPermission002
664 * @tc.desc: test CheckPermission002
665 * @tc.type: FUNC
666 */
HWTEST_F(LocalAbilityManagerStubTest, CheckPermission002, TestSize.Level2)667 HWTEST_F(LocalAbilityManagerStubTest, CheckPermission002, TestSize.Level2)
668 {
669 DTEST_LOG << "CheckPermission002 start" << std::endl;
670 uint32_t code = static_cast<uint32_t>(SafwkInterfaceCode::SYSTEM_ABILITY_EXT_TRANSACTION);
671 bool result = LocalAbilityManager::GetInstance().CheckPermission(code);
672 EXPECT_TRUE(result);
673 DTEST_LOG << "CheckPermission002 end" << std::endl;
674 }
675
676 /**
677 * @tc.name: SystemAbilityExtProc001
678 * @tc.desc: test SystemAbilityExtProc001
679 * @tc.type: FUNC
680 */
HWTEST_F(LocalAbilityManagerStubTest, SystemAbilityExtProc001, TestSize.Level2)681 HWTEST_F(LocalAbilityManagerStubTest, SystemAbilityExtProc001, TestSize.Level2)
682 {
683 DTEST_LOG << "SystemAbilityExtProc001 start" << std::endl;
684 std::string extension = "ext1";
685 SystemAbilityExtensionPara callback;
686 bool isAsync = false;
687 int32_t ret = LocalAbilityManager::GetInstance().SystemAbilityExtProc(extension, INVALID_SAID, &callback, isAsync);
688 EXPECT_FALSE(ret == ERR_NONE);
689 DTEST_LOG << "SystemAbilityExtProc001 end" << std::endl;
690 }
691
692 /**
693 * @tc.name: SystemAbilityExtProc002
694 * @tc.desc: test SystemAbilityExtProc002
695 * @tc.type: FUNC
696 */
HWTEST_F(LocalAbilityManagerStubTest, SystemAbilityExtProc002, TestSize.Level2)697 HWTEST_F(LocalAbilityManagerStubTest, SystemAbilityExtProc002, TestSize.Level2)
698 {
699 DTEST_LOG << "SystemAbilityExtProc002 start" << std::endl;
700 std::string extension = "ext1";
701 SystemAbilityExtensionPara callback;
702 bool isAsync = false;
703
704 std::string deviceId = "";
705 MockSaRealize *sysAby = new MockSaRealize(MUT_SAID, false);
706 LocalAbilityManager::GetInstance().abilityMap_[MUT_SAID] = sysAby;
707 LocalAbilityManager::GetInstance().NotifyAbilityListener(SAID, MUT_SAID, deviceId, STARTCODE);
708 LocalAbilityManager::GetInstance().abilityMap_[SAID] = sysAby;
709 LocalAbilityManager::GetInstance().NotifyAbilityListener(SAID, MUT_SAID, deviceId, STARTCODE);
710 int32_t ret = LocalAbilityManager::GetInstance().SystemAbilityExtProc(extension, SAID, &callback, isAsync);
711 EXPECT_TRUE(ret == ERR_NONE);
712 LocalAbilityManager::GetInstance().abilityMap_.clear();
713 delete sysAby;
714 DTEST_LOG << "SystemAbilityExtProc002 end" << std::endl;
715 }
716
717 /**
718 * @tc.name: SendStrategyToSAInner001
719 * @tc.desc: test SendStrategyToSAInner.
720 * @tc.type: FUNC
721 */
HWTEST_F(LocalAbilityManagerStubTest, SendStrategyToSAInner001, TestSize.Level2)722 HWTEST_F(LocalAbilityManagerStubTest, SendStrategyToSAInner001, TestSize.Level2)
723 {
724 DTEST_LOG << "SendStrategyToSAInner001 start" << std::endl;
725 MessageParcel data;
726 MessageParcel reply;
727 int32_t ret = LocalAbilityManager::GetInstance().SendStrategyToSAInner(data, reply);
728 EXPECT_EQ(ret, ERR_NULL_OBJECT);
729 DTEST_LOG << "SendStrategyToSAInner001 end" << std::endl;
730 }
731
732 /**
733 * @tc.name: SendStrategyToSAInner002
734 * @tc.desc: test SendStrategyToSAInner.
735 * @tc.type: FUNC
736 */
HWTEST_F(LocalAbilityManagerStubTest, SendStrategyToSAInner002, TestSize.Level2)737 HWTEST_F(LocalAbilityManagerStubTest, SendStrategyToSAInner002, TestSize.Level2)
738 {
739 DTEST_LOG << "SendStrategyToSAInner002 start" << std::endl;
740 MessageParcel data;
741 MessageParcel reply;
742 int type = 1;
743 data.WriteInt32(type);
744 int32_t ret = LocalAbilityManager::GetInstance().SendStrategyToSAInner(data, reply);
745 EXPECT_EQ(ret, ERR_NULL_OBJECT);
746 DTEST_LOG << "SendStrategyToSAInner002 end" << std::endl;
747 }
748
749 /**
750 * @tc.name: SendStrategyToSAInner003
751 * @tc.desc: test SendStrategyToSAInner.
752 * @tc.type: FUNC
753 */
HWTEST_F(LocalAbilityManagerStubTest, SendStrategyToSAInner003, TestSize.Level2)754 HWTEST_F(LocalAbilityManagerStubTest, SendStrategyToSAInner003, TestSize.Level2)
755 {
756 DTEST_LOG << "SendStrategyToSAInner003 start" << std::endl;
757 MessageParcel data;
758 MessageParcel reply;
759 int type = 1;
760 data.WriteInt32(type);
761 int32_t saId = -1;
762 data.WriteInt32(saId);
763 int32_t ret = LocalAbilityManager::GetInstance().SendStrategyToSAInner(data, reply);
764 EXPECT_EQ(ret, ERR_NULL_OBJECT);
765 DTEST_LOG << "SendStrategyToSAInner003 end" << std::endl;
766 }
767
768 /**
769 * @tc.name: SendStrategyToSAInner004
770 * @tc.desc: test SendStrategyToSAInner.
771 * @tc.type: FUNC
772 */
HWTEST_F(LocalAbilityManagerStubTest, SendStrategyToSAInner004, TestSize.Level2)773 HWTEST_F(LocalAbilityManagerStubTest, SendStrategyToSAInner004, TestSize.Level2)
774 {
775 DTEST_LOG << "SendStrategyToSAInner004 start" << std::endl;
776 MessageParcel data;
777 MessageParcel reply;
778 int type = 1;
779 data.WriteInt32(type);
780 int32_t saId = 1;
781 data.WriteInt32(saId);
782 int32_t ret = LocalAbilityManager::GetInstance().SendStrategyToSAInner(data, reply);
783 EXPECT_EQ(ret, ERR_NULL_OBJECT);
784 DTEST_LOG << "SendStrategyToSAInner004 end" << std::endl;
785 }
786
787 /**
788 * @tc.name: SendStrategyToSAInner005
789 * @tc.desc: test SendStrategyToSAInner.
790 * @tc.type: FUNC
791 */
HWTEST_F(LocalAbilityManagerStubTest, SendStrategyToSAInner005, TestSize.Level2)792 HWTEST_F(LocalAbilityManagerStubTest, SendStrategyToSAInner005, TestSize.Level2)
793 {
794 DTEST_LOG << "SendStrategyToSAInner005 start" << std::endl;
795 MessageParcel data;
796 MessageParcel reply;
797 int type = 1;
798 data.WriteInt32(type);
799 int32_t saId = 1;
800 data.WriteInt32(saId);
801 int level = 1;
802 data.WriteInt32(level);
803 int32_t ret = LocalAbilityManager::GetInstance().SendStrategyToSAInner(data, reply);
804 EXPECT_EQ(ret, ERR_NULL_OBJECT);
805 DTEST_LOG << "SendStrategyToSAInner005 end" << std::endl;
806 }
807
808 /**
809 * @tc.name: SendStrategyToSAInner006
810 * @tc.desc: test SendStrategyToSAInner.
811 * @tc.type: FUNC
812 */
HWTEST_F(LocalAbilityManagerStubTest, SendStrategyToSAInner006, TestSize.Level2)813 HWTEST_F(LocalAbilityManagerStubTest, SendStrategyToSAInner006, TestSize.Level2)
814 {
815 DTEST_LOG << "SendStrategyToSAInner006 start" << std::endl;
816 MessageParcel data;
817 MessageParcel reply;
818 int type = 1;
819 data.WriteInt32(type);
820 int32_t saId = 1;
821 data.WriteInt32(saId);
822 int level = 1;
823 data.WriteInt32(level);
824 std::string action = "";
825 data.WriteString(action);
826 int32_t ret = LocalAbilityManager::GetInstance().SendStrategyToSAInner(data, reply);
827 EXPECT_EQ(ret, ERR_NULL_OBJECT);
828 DTEST_LOG << "SendStrategyToSAInner006 end" << std::endl;
829 }
830
831 /**
832 * @tc.name: IpcStatCmdProcInner001
833 * @tc.desc: test IpcStatCmdProcInner.
834 * @tc.type: FUNC
835 */
HWTEST_F(LocalAbilityManagerStubTest, IpcStatCmdProcInner001, TestSize.Level2)836 HWTEST_F(LocalAbilityManagerStubTest, IpcStatCmdProcInner001, TestSize.Level2)
837 {
838 DTEST_LOG << "IpcStatCmdProcInner001 start" << std::endl;
839 MessageParcel data;
840 MessageParcel reply;
841 int32_t ret = LocalAbilityManager::GetInstance().IpcStatCmdProcInner(data, reply);
842 EXPECT_EQ(ret, ERR_NULL_OBJECT);
843 DTEST_LOG << "IpcStatCmdProcInner001 end" << std::endl;
844 }
845
846 /**
847 * @tc.name: IpcStatCmdProcInner002
848 * @tc.desc: test IpcStatCmdProcInner.
849 * @tc.type: FUNC
850 */
HWTEST_F(LocalAbilityManagerStubTest, IpcStatCmdProcInner002, TestSize.Level2)851 HWTEST_F(LocalAbilityManagerStubTest, IpcStatCmdProcInner002, TestSize.Level2)
852 {
853 DTEST_LOG << "IpcStatCmdProcInner002 start" << std::endl;
854 MessageParcel data;
855 MessageParcel reply;
856 int32_t fd = 1;
857 data.WriteFileDescriptor(fd);
858 int32_t ret = LocalAbilityManager::GetInstance().IpcStatCmdProcInner(data, reply);
859 EXPECT_EQ(ret, ERR_NULL_OBJECT);
860 DTEST_LOG << "IpcStatCmdProcInner002 end" << std::endl;
861 }
862
863 /**
864 * @tc.name: IpcStatCmdProcInner003
865 * @tc.desc: test IpcStatCmdProcInner.
866 * @tc.type: FUNC
867 */
HWTEST_F(LocalAbilityManagerStubTest, IpcStatCmdProcInner003, TestSize.Level2)868 HWTEST_F(LocalAbilityManagerStubTest, IpcStatCmdProcInner003, TestSize.Level2)
869 {
870 DTEST_LOG << "IpcStatCmdProcInner003 start" << std::endl;
871 MessageParcel data;
872 MessageParcel reply;
873 int32_t fd = 1;
874 int cmd = -1;
875 data.WriteInt32(cmd);
876 data.WriteFileDescriptor(fd);
877 int32_t ret = LocalAbilityManager::GetInstance().IpcStatCmdProcInner(data, reply);
878 EXPECT_EQ(ret, ERR_NULL_OBJECT);
879 DTEST_LOG << "IpcStatCmdProcInner003 end" << std::endl;
880 }
881
882 /**
883 * @tc.name: FfrtDumperProcInner001
884 * @tc.desc: test IpcStatCmdProcInner.
885 * @tc.type: FUNC
886 */
HWTEST_F(LocalAbilityManagerStubTest, FfrtDumperProcInner001, TestSize.Level2)887 HWTEST_F(LocalAbilityManagerStubTest, FfrtDumperProcInner001, TestSize.Level2)
888 {
889 DTEST_LOG << "FfrtDumperProcInner001 start" << std::endl;
890 MessageParcel data;
891 MessageParcel reply;
892 std::string ffrtDumperInfo = "Test Ffrt Dumper Info";
893 int32_t ret = LocalAbilityManager::GetInstance().FfrtDumperProcInner(data, reply);
894 EXPECT_EQ(ret, ERR_NONE);
895 DTEST_LOG << "FfrtDumperProcInner001 end" << std::endl;
896 }
897
898 /**
899 * @tc.name: SystemAbilityExtProcInner001
900 * @tc.desc: test IpcStatCmdProcInner.
901 * @tc.type: FUNC
902 */
HWTEST_F(LocalAbilityManagerStubTest, SystemAbilityExtProcInner001, TestSize.Level2)903 HWTEST_F(LocalAbilityManagerStubTest, SystemAbilityExtProcInner001, TestSize.Level2)
904 {
905 DTEST_LOG << "SystemAbilityExtProcInner001 start" << std::endl;
906 MessageParcel data;
907 MessageParcel reply;
908 int32_t ret = LocalAbilityManager::GetInstance().SystemAbilityExtProcInner(data, reply);
909 EXPECT_EQ(ret, INVALID_DATA);
910 DTEST_LOG << "SystemAbilityExtProcInner001 end" << std::endl;
911 }
912
913 /**
914 * @tc.name: SystemAbilityExtProcInner002
915 * @tc.desc: test IpcStatCmdProcInner.
916 * @tc.type: FUNC
917 */
HWTEST_F(LocalAbilityManagerStubTest, SystemAbilityExtProcInner002, TestSize.Level2)918 HWTEST_F(LocalAbilityManagerStubTest, SystemAbilityExtProcInner002, TestSize.Level2)
919 {
920 DTEST_LOG << "SystemAbilityExtProcInner002 start" << std::endl;
921 MessageParcel data;
922 MessageParcel reply;
923 int saId = 1;
924 data.WriteInt32(saId);
925 int32_t ret = LocalAbilityManager::GetInstance().SystemAbilityExtProcInner(data, reply);
926 EXPECT_EQ(ret, INVALID_DATA);
927 DTEST_LOG << "SystemAbilityExtProcInner002 end" << std::endl;
928 }
929
930 /**
931 * @tc.name: SystemAbilityExtProcInner003
932 * @tc.desc: test IpcStatCmdProcInner.
933 * @tc.type: FUNC
934 */
HWTEST_F(LocalAbilityManagerStubTest, SystemAbilityExtProcInner003, TestSize.Level2)935 HWTEST_F(LocalAbilityManagerStubTest, SystemAbilityExtProcInner003, TestSize.Level2)
936 {
937 DTEST_LOG << "SystemAbilityExtProcInner003 start" << std::endl;
938 MessageParcel data;
939 MessageParcel reply;
940 int saId = -1;
941 data.WriteInt32(saId);
942 int32_t ret = LocalAbilityManager::GetInstance().SystemAbilityExtProcInner(data, reply);
943 EXPECT_EQ(ret, INVALID_DATA);
944 DTEST_LOG << "SystemAbilityExtProcInner003 end" << std::endl;
945 }
946
947 /**
948 * @tc.name: SystemAbilityExtProcInner004
949 * @tc.desc: test IpcStatCmdProcInner.
950 * @tc.type: FUNC
951 */
HWTEST_F(LocalAbilityManagerStubTest, SystemAbilityExtProcInner004, TestSize.Level2)952 HWTEST_F(LocalAbilityManagerStubTest, SystemAbilityExtProcInner004, TestSize.Level2)
953 {
954 DTEST_LOG << "SystemAbilityExtProcInner004 start" << std::endl;
955 MessageParcel data;
956 MessageParcel reply;
957 int saId = 1;
958 data.WriteInt32(saId);
959 std::string extension = "TestExtension";
960 data.WriteString(extension);
961 int32_t ret = LocalAbilityManager::GetInstance().SystemAbilityExtProcInner(data, reply);
962 EXPECT_EQ(ret, INVALID_DATA);
963 DTEST_LOG << "SystemAbilityExtProcInner004 end" << std::endl;
964 }
965 } // namespace SAFWK
966 } // namespace OHOS