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 "dslm_msg_lib_test.h"
17
18 #include <cstdint>
19
20 #include "messenger.h"
21 #include "messenger_utils.h"
22 #include "securec.h"
23 #include "utils_log.h"
24 #include "utils_mem.h"
25
26 #include "device_manager_mock.h"
27 #include "dslm_msg_interface_mock.h"
28 #include "dslm_test_link.h"
29
30 #include "messenger_device_socket_manager.h"
31 #include "messenger_device_status_manager.h"
32
33 #define QUEUE_LEN 2
34
35 using namespace std;
36 using namespace std::chrono;
37 using namespace testing;
38 using namespace testing::ext;
39
40 namespace OHOS {
41 namespace Security {
42 namespace DslmUnitTest {
43
44 std::string g_errLog;
45
LogCallback(const LogType,const LogLevel level,const unsigned int domain,const char * tag,const char * msg)46 void LogCallback(const LogType, const LogLevel level, const unsigned int domain, const char *tag, const char *msg)
47 {
48 g_errLog = msg;
49 }
50
SetUpTestCase()51 void DslmMsgLibTest::SetUpTestCase()
52 {
53 }
TearDownTestCase()54 void DslmMsgLibTest::TearDownTestCase()
55 {
56 }
SetUp()57 void DslmMsgLibTest::SetUp()
58 {
59 queue = CreateWorkQueue(QUEUE_LEN, "msg_ut_test_queue");
60 }
TearDown()61 void DslmMsgLibTest::TearDown()
62 {
63 DestroyWorkQueue(queue);
64 auto &mock = DistributedHardware::DeviceManagerMock::Instance();
65 Mock::VerifyAndClearExpectations(&mock);
66 }
67
68 HWTEST_F(DslmMsgLibTest, MessengerCommonTest, TestSize.Level0)
69 {
70 {
71 auto *msg = CreateMessenger(nullptr);
72 EXPECT_EQ(msg, nullptr);
73 }
74 {
75 MessengerConfig config = {};
76 auto *msg = CreateMessenger(&config);
77 EXPECT_EQ(msg, nullptr);
78 DestroyMessenger(msg);
79 }
80 {
81 ForEachDeviceProcess(nullptr, nullptr, nullptr);
82 EXPECT_FALSE(GetDeviceStatisticInfo(nullptr, nullptr, nullptr));
83 }
84 }
85
86 HWTEST_F(DslmMsgLibTest, DeviceSocketTestCase1, TestSize.Level0)
87 {
88 {
89 auto result = InitDeviceSocketManager(nullptr, nullptr);
90 EXPECT_EQ(result, false);
91 }
92 {
93 auto result = InitDeviceSocketManager(queue, nullptr);
94 EXPECT_EQ(result, false);
95 }
96 {
97 MessengerConfig config = {};
98 auto ret = InitDeviceSocketManager(queue, &config);
99 EXPECT_FALSE(ret);
100 EXPECT_TRUE(DeInitDeviceSocketManager());
101 }
102 {
103 MessengerConfig config = {.pkgName = "pkg", .primarySockName = "", .secondarySockName = "se", .threadCnt = 1};
104 auto ret = InitDeviceSocketManager(queue, &config);
105 EXPECT_TRUE(ret);
106 EXPECT_TRUE(DeInitDeviceSocketManager());
107 }
108 {
109 MessengerConfig config = {.pkgName = "pkg", .primarySockName = "pr", .secondarySockName = "", .threadCnt = 1};
110 auto ret = InitDeviceSocketManager(queue, &config);
111 EXPECT_TRUE(ret);
112 EXPECT_TRUE(DeInitDeviceSocketManager());
113 }
114 }
115
116 HWTEST_F(DslmMsgLibTest, DeviceSocketTestCase2, TestSize.Level0)
117 {
118 MessengerConfig config = {.pkgName = "pkg", .primarySockName = "pr", .secondarySockName = "se", .threadCnt = 1};
119 auto ret = InitDeviceSocketManager(queue, &config);
120 EXPECT_TRUE(ret);
121 char dummy[] = {'a', 0};
122 PeerSocketInfo peer = {.name = dummy, .networkId = dummy};
123 {
124 DeviceIdentify id {.identity = {'a'}, .length = 1};
125 uint8_t msg[UINT8_MAX] = {0};
126 UtPushMsgDataToPendingList(0, &id, msg, 1);
127 }
128 UtServerOnBind(1, peer);
129 {
130 DeviceIdentify idt {};
131 EXPECT_FALSE(UtGetIdentityByServerSocket(1, nullptr));
132 EXPECT_TRUE(UtGetIdentityByServerSocket(1, &idt));
133 UtServerOnBytes(1, nullptr, 0);
134 UtServerOnBytes(1, dummy, 1);
135 UtServerOnBytes(0, dummy, 1);
136 int sock = 0;
137 EXPECT_TRUE(UtGetSocketBySocketList(&idt, true, &sock));
138 EXPECT_EQ(sock, 1);
139 }
140 UtClientOnBind(2, nullptr);
141 DeviceIdentify idt {.length = 1};
142 UtClientOnBind(2, &idt);
143 {
144 DeviceIdentify idt {};
145 EXPECT_FALSE(UtGetIdentityByClientSocket(2, nullptr));
146 EXPECT_TRUE(UtGetIdentityByClientSocket(2, &idt));
147 int sock = 0;
148 EXPECT_TRUE(UtGetSocketBySocketList(&idt, false, &sock));
149 EXPECT_EQ(sock, 2);
150 UtClientOnBytes(2, nullptr, 0);
151 UtClientOnBytes(2, dummy, 1);
152 UtClientOnBytes(0, dummy, 1);
153 }
154 EXPECT_TRUE(DeInitDeviceSocketManager());
155 }
156
157 HWTEST_F(DslmMsgLibTest, ProcessSocketMessageReceivedTest, TestSize.Level0)
158 {
159 DeviceSocketManager *inst = UtGetDeviceSocketManagerInstance();
160 ASSERT_NE(inst, nullptr);
161
162 {
163 UtProcessSocketMessageReceived(nullptr, 0);
164 uint8_t data[] = {};
165 UtProcessSocketMessageReceived(data, 0);
166 }
167 {
168 uint8_t *data = static_cast<uint8_t *>(MALLOC(UINT8_MAX));
169 ASSERT_NE(data, nullptr);
170
171 UtProcessSocketMessageReceived(data, 1); // will free the data.
172 UtRemoveSocketNode(0, SHUTDOWN_REASON_UNKNOWN, false);
173 }
174 {
175 uint8_t *data = static_cast<uint8_t *>(MALLOC(UINT8_MAX));
176 ASSERT_NE(data, nullptr);
177 QueueMsgData *queueData = reinterpret_cast<QueueMsgData *>(data);
178 queueData->msgLen = (UINT8_MAX > sizeof(QueueMsgData)) ? UINT8_MAX - sizeof(QueueMsgData) : 0;
179
180 UtProcessSocketMessageReceived(data, 1); // will free the data.
181 UtRemoveSocketNode(0, SHUTDOWN_REASON_UNKNOWN, false);
182 }
183 {
184 uint8_t *data = static_cast<uint8_t *>(MALLOC(UINT8_MAX + sizeof(QueueMsgData)));
185 ASSERT_NE(data, nullptr);
186 QueueMsgData *queueData = reinterpret_cast<QueueMsgData *>(data);
187 queueData->msgLen = UINT8_MAX;
188
189 UtProcessSocketMessageReceived(data, UINT8_MAX + sizeof(QueueMsgData)); // will free the data.
190 UtRemoveSocketNode(0, SHUTDOWN_REASON_UNKNOWN, false);
191 }
192 {
193 MessengerConfig config = {
194 .pkgName = "pkg",
195 .primarySockName = "pr",
196 .secondarySockName = "",
197 .threadCnt = 1,
__anon31937ccf0102() 198 .messageReceiver = [](const DeviceIdentify *, const uint8_t *, uint32_t) { return 0; },
199 };
200 auto ret = InitDeviceSocketManager(queue, &config);
201 EXPECT_TRUE(ret);
202
203 uint8_t *data = static_cast<uint8_t *>(MALLOC(UINT8_MAX + sizeof(QueueMsgData)));
204 ASSERT_NE(data, nullptr);
205 QueueMsgData *queueData = reinterpret_cast<QueueMsgData *>(data);
206 queueData->msgLen = UINT8_MAX;
207
208 UtProcessSocketMessageReceived(data, UINT8_MAX + sizeof(QueueMsgData)); // will free the data.
209 UtRemoveSocketNode(0, SHUTDOWN_REASON_UNKNOWN, false);
210 EXPECT_TRUE(DeInitDeviceSocketManager());
211 }
212 }
213
214 HWTEST_F(DslmMsgLibTest, OnSocketMessageReceivedTest, TestSize.Level0)
215 {
216 {
217 UtOnSocketMessageReceived(nullptr, nullptr, 0);
218 }
219 {
220 DeviceIdentify idt {};
221 UtOnSocketMessageReceived(&idt, nullptr, 0);
222 }
223 {
224 DeviceIdentify idt {};
225 MessengerConfig config = {
226 .pkgName = "pkg",
227 .primarySockName = "pr",
228 .secondarySockName = "",
__anon31937ccf0202() 229 .messageReceiver = [](const DeviceIdentify *, const uint8_t *, uint32_t) { return 0; },
230 };
231
232 auto ret = InitDeviceSocketManager(queue, &config);
233 EXPECT_TRUE(ret);
234 uint8_t msg[UINT8_MAX] = {0};
235 UtOnSocketMessageReceived(&idt, msg, UINT8_MAX);
236
237 EXPECT_TRUE(DeInitDeviceSocketManager());
238 }
239 {
240 DeviceIdentify idt {};
241 MessengerConfig config = {.pkgName = "pkg", .primarySockName = "pr", .secondarySockName = "", .threadCnt = 1};
242
243 auto ret = InitDeviceSocketManager(queue, &config);
244 EXPECT_TRUE(ret);
245 uint8_t msg[UINT8_MAX] = {0};
246 UtOnSocketMessageReceived(&idt, msg, UINT8_MAX);
247
248 EXPECT_TRUE(DeInitDeviceSocketManager());
249 }
250 }
251
252 HWTEST_F(DslmMsgLibTest, GetIdentityBySocketIdTest, TestSize.Level0)
253 {
254 {
255 auto ret = UtGetIdentityBySocketId(0, false, nullptr);
256 EXPECT_FALSE(ret);
257 }
258 {
259 DeviceIdentify idt {};
260 auto ret = UtGetIdentityBySocketId(0, true, &idt);
261 EXPECT_FALSE(ret);
262 }
263 {
264 DeviceIdentify idt {};
265 auto ret = UtGetIdentityBySocketId(0, false, &idt);
266 EXPECT_FALSE(ret);
267 }
268 }
269
270 HWTEST_F(DslmMsgLibTest, MessengerSendMsgToTest, TestSize.Level0)
271 {
272 {
273 MessengerSendMsgTo(0, nullptr, nullptr, 0);
274 }
275 {
276 DeviceIdentify idt {};
277 MessengerSendMsgTo(0, &idt, nullptr, 0);
278 }
279 {
280 DeviceIdentify idt {};
281 uint8_t data[UINT16_MAX] = {};
282 MessengerSendMsgTo(0, &idt, data, 0);
283 }
284 {
285 DeviceIdentify idt {};
286 uint8_t data[UINT16_MAX] = {};
287 MessengerSendMsgTo(0, &idt, data, (81920 * 4) + 1);
288 }
289 {
290 DeviceIdentify idt {};
291 uint8_t data[UINT16_MAX] = {0};
292 MessengerSendMsgTo(0, &idt, data, UINT16_MAX);
293 }
294 {
295 MessengerConfig config = {.pkgName = "pkg",
296 .primarySockName = "pr",
297 .secondarySockName = "se",
298 .threadCnt = 1,
__anon31937ccf0302() 299 .messageReceiver = [](const DeviceIdentify *, const uint8_t *, uint32_t) { return 0; }};
300 auto ret = InitDeviceSocketManager(queue, &config);
301 EXPECT_TRUE(ret);
302
303 uint8_t msg[UINT8_MAX] = {0};
304 {
305 DeviceIdentify idt {.identity = {'a'}, .length = 1};
306 MessengerSendMsgTo(0, &idt, msg, UINT8_MAX);
307 }
308 {
309 DeviceIdentify idt {.identity = {'x'}, .length = 1};
310 MessengerSendMsgTo(0, &idt, msg, UINT8_MAX);
311 }
312 EXPECT_TRUE(DeInitDeviceSocketManager());
313 }
314 }
315
316 HWTEST_F(DslmMsgLibTest, CreateQueueMsgDataTest, TestSize.Level0)
317 {
318 {
319 auto *data = CreateQueueMsgData(nullptr, nullptr, 0, nullptr);
320 EXPECT_EQ(data, nullptr);
321 }
322 {
323 DeviceIdentify idt {};
324 auto *data = CreateQueueMsgData(&idt, nullptr, 0, nullptr);
325 EXPECT_EQ(data, nullptr);
326 }
327 {
328 DeviceIdentify idt {};
329 uint8_t msg[UINT8_MAX] = {0};
330 auto *data = CreateQueueMsgData(&idt, msg, 0, nullptr);
331 EXPECT_EQ(data, nullptr);
332 }
333 {
334 DeviceIdentify idt {};
335 uint8_t msg[UINT8_MAX] = {0};
336 auto *data = CreateQueueMsgData(&idt, msg, UINT8_MAX, nullptr);
337 EXPECT_EQ(data, nullptr);
338 }
339 {
340 DeviceIdentify idt {};
341 uint8_t msg[UINT8_MAX] = {0};
342 uint32_t queueDataLen = 0;
343 auto *data = CreateQueueMsgData(&idt, msg, UINT8_MAX, &queueDataLen);
344 ASSERT_NE(data, nullptr);
345 EXPECT_EQ(data->msgLen, UINT8_MAX);
346 EXPECT_EQ(queueDataLen, UINT8_MAX + sizeof(QueueMsgData));
347 }
348 }
349
350 HWTEST_F(DslmMsgLibTest, SocketShutDownTest, TestSize.Level0)
351 {
352 MessengerConfig config = {.pkgName = "pkg", .primarySockName = "pr", .secondarySockName = "", .threadCnt = 1};
353 auto ret = InitDeviceSocketManager(queue, &config);
354 EXPECT_TRUE(ret);
355
356 DeviceIdentify idt {.length = 1, .identity = {'a'}};
357
358 char dummy[] = {'a', 0};
359 PeerSocketInfo peer = {.name = dummy, .networkId = dummy};
360 UtServerOnBind(1, peer);
361 UtClientOnBind(1, &idt);
362
363 UtCreateOrRestartSocketCloseTimerWithLock(0);
364 UtCreateOrRestartSocketCloseTimerWithLock(1);
365
366 UtServerOnShutdown(3, SHUTDOWN_REASON_UNKNOWN);
367 UtClientOnShutdown(4, SHUTDOWN_REASON_UNKNOWN);
368 UtServerOnShutdown(0, SHUTDOWN_REASON_UNKNOWN);
369 UtClientOnShutdown(0, SHUTDOWN_REASON_UNKNOWN);
370 UtServerOnShutdown(1, SHUTDOWN_REASON_UNKNOWN);
371 UtClientOnShutdown(1, SHUTDOWN_REASON_UNKNOWN);
372 EXPECT_TRUE(DeInitDeviceSocketManager());
373 }
374
375 HWTEST_F(DslmMsgLibTest, MessengerGetNetworkIdByDeviceIdentifyTest, TestSize.Level0)
376 {
377 {
378 auto ret = MessengerGetNetworkIdByDeviceIdentify(nullptr, nullptr, 0);
379 EXPECT_FALSE(ret);
380 }
381 {
382 DeviceIdentify idt {.length = 1, .identity = {'a'}};
383 auto ret = MessengerGetNetworkIdByDeviceIdentify(&idt, nullptr, 0);
384 EXPECT_FALSE(ret);
385 }
386 {
387 DeviceIdentify idt {.length = 1, .identity = {'a'}};
388 char id[UINT8_MAX] = {0};
389 auto ret = MessengerGetNetworkIdByDeviceIdentify(&idt, id, 0);
390 EXPECT_FALSE(ret);
391 }
392 {
393 DeviceIdentify idt {.length = 1, .identity = {'a'}};
394 char id[UINT8_MAX] = {0};
395 auto ret = MessengerGetNetworkIdByDeviceIdentify(&idt, id, UINT8_MAX);
396 EXPECT_FALSE(ret);
397 }
398 }
399
400 HWTEST_F(DslmMsgLibTest, MessengerForEachDeviceProcessTest, TestSize.Level0)
401 {
402 {
403 MessengerForEachDeviceProcess(nullptr, nullptr);
404 }
405 {
__anon31937ccf0402(const DeviceIdentify *, int32_t, void *) 406 MessengerForEachDeviceProcess([](const DeviceIdentify *, int32_t, void *) { return 0; }, nullptr);
407 }
408 {
409 auto &mock = DistributedHardware::DeviceManagerMock::Instance();
410 EXPECT_CALL(mock, GetTrustedDeviceList).WillOnce(Return(1));
__anon31937ccf0502(const DeviceIdentify *, int32_t, void *) 411 MessengerForEachDeviceProcess([](const DeviceIdentify *, int32_t, void *) { return 0; }, nullptr);
412 }
413 }
414
415 HWTEST_F(DslmMsgLibTest, UtTimerProcessWaitingTimeOutTest, TestSize.Level0)
416 {
417 LOG_SetCallback(LogCallback);
418 {
419 UtTimerProcessWaitingTimeOut(nullptr);
420 }
421 {
422 char id[UINT8_MAX] = {0};
423 UtTimerProcessWaitingTimeOut(id);
424 EXPECT_TRUE(g_errLog.find("SocketClosed") != std::string::npos);
425 }
426 }
427
428 HWTEST_F(DslmMsgLibTest, UtCreateServerTest, TestSize.Level0)
429 {
430 EXPECT_FALSE(UtCreateServer(nullptr));
431 }
432
433 HWTEST_F(DslmMsgLibTest, UtBindSync, TestSize.Level0)
434 {
435 {
436 EXPECT_FALSE(UtBindSync(0, nullptr));
437 }
438 {
439 DeviceIdentify idt {};
440 EXPECT_TRUE(UtBindSync(1, &idt));
441 }
442 {
443 DeviceIdentify idt {};
444 EXPECT_TRUE(UtBindSync(1, &idt));
445 }
446 {
447 NiceMock<DslmMsgInterfaceMock> msgMock;
__anon31937ccf0602(int32_t, const QosTV[], uint32_t, const ISocketListener *) 448 ON_CALL(msgMock, Bind).WillByDefault([](int32_t, const QosTV[], uint32_t, const ISocketListener *) {
449 return UINT16_MAX;
450 });
451 DeviceIdentify idt {};
452 EXPECT_FALSE(UtBindSync(1, &idt));
453 }
454 }
455
456 HWTEST_F(DslmMsgLibTest, UtGetClientNameTest, TestSize.Level0)
457 {
458 {
459 EXPECT_NE(0, UtGetClientName(nullptr, nullptr, 0, false));
460 }
461 {
462 char name[UINT8_MAX] = {0};
463 EXPECT_NE(0, UtGetClientName(name, nullptr, 0, false));
464 }
465 {
466 char name[UINT8_MAX] = {0};
467 char to[UINT8_MAX] = {0};
468 EXPECT_EQ(0, UtGetClientName(name, to, 0, false));
469 }
470 {
471 char name[UINT8_MAX] = {0};
472 char to[UINT8_MAX] = {0};
473 EXPECT_EQ(0, UtGetClientName(name, to, 0, true));
474 }
475 }
476
477 HWTEST_F(DslmMsgLibTest, UtGetSocketBySocketListTest, TestSize.Level0)
478 {
479 DeviceIdentify idt {};
480 UtPushMsgDataToPendingList(0, nullptr, nullptr, 0);
481 UtPushMsgDataToPendingList(0, &idt, nullptr, 0);
482
483 EXPECT_FALSE(UtGetSocketBySocketList(nullptr, false, nullptr));
484
485 EXPECT_FALSE(UtGetSocketBySocketList(&idt, false, nullptr));
486
487 EXPECT_EQ(nullptr, UtCreateSocketNodeInfo(0, nullptr));
488 }
489
490 HWTEST_F(DslmMsgLibTest, MessengerGetDeviceIdentifyByNetworkId, TestSize.Level0)
491 {
492 {
493 EXPECT_FALSE(MessengerGetDeviceIdentifyByNetworkId(nullptr, nullptr));
494 }
495 {
496 EXPECT_FALSE(MessengerGetDeviceIdentifyByNetworkId("a", nullptr));
497 }
498 {
499 DeviceIdentify idt {};
500 EXPECT_TRUE(MessengerGetDeviceIdentifyByNetworkId("a", &idt));
501 }
502 }
503
504 HWTEST_F(DslmMsgLibTest, MessengerGetNetworkIdByDeviceIdentify, TestSize.Level0)
505 {
506 {
507 EXPECT_FALSE(MessengerGetNetworkIdByDeviceIdentify(nullptr, nullptr, 0));
508 }
509 {
510 DeviceIdentify idt {};
511 EXPECT_FALSE(MessengerGetNetworkIdByDeviceIdentify(&idt, nullptr, 0));
512 }
513 }
514
515 HWTEST_F(DslmMsgLibTest, MessengerGetSelfDeviceIdentify, TestSize.Level0)
516 {
517 {
518 EXPECT_FALSE(MessengerGetSelfDeviceIdentify(nullptr, nullptr));
519 }
520 {
521 DeviceIdentify idt {};
522 EXPECT_FALSE(MessengerGetSelfDeviceIdentify(&idt, nullptr));
523 }
524 {
525 DeviceIdentify idt {};
526 int32_t level = 0;
527 EXPECT_TRUE(MessengerGetSelfDeviceIdentify(&idt, &level));
528 }
529 {
530 auto &mock = DistributedHardware::DeviceManagerMock::Instance();
531 EXPECT_CALL(mock, GetLocalDeviceInfo).WillOnce(Return(1));
532
533 DeviceIdentify idt {};
534 int32_t level = 0;
535 EXPECT_FALSE(MessengerGetSelfDeviceIdentify(&idt, &level));
536 }
537 }
538
539 HWTEST_F(DslmMsgLibTest, MessengerGetDeviceOnlineStatus, TestSize.Level0)
540 {
541 {
542 EXPECT_FALSE(MessengerGetDeviceOnlineStatus(nullptr, nullptr));
543 }
544 {
545 DeviceIdentify idt {.identity = {'a'}, .length = 1};
546 EXPECT_FALSE(MessengerGetDeviceOnlineStatus(&idt, nullptr));
547 }
548 {
549 DeviceIdentify idt {.identity = {'a'}, .length = 1};
550 int32_t level = 0;
551 EXPECT_FALSE(MessengerGetDeviceOnlineStatus(&idt, &level));
552 }
553 }
554
555 HWTEST_F(DslmMsgLibTest, InitDeviceStatusManager, TestSize.Level0)
556 {
557 {
558 EXPECT_FALSE(InitDeviceStatusManager(nullptr, nullptr, nullptr));
559 }
560
561 {
562 EXPECT_FALSE(InitDeviceStatusManager(queue, nullptr, nullptr));
563 }
564
565 {
566 EXPECT_FALSE(InitDeviceStatusManager(queue, "??", nullptr));
567 }
568
569 {
__anon31937ccf0702(const DeviceIdentify *devId, uint32_t status, int32_t level) 570 auto recv = [](const DeviceIdentify *devId, uint32_t status, int32_t level) -> int32_t { return 0; };
571 EXPECT_TRUE(InitDeviceStatusManager(queue, "??", recv));
572 EXPECT_TRUE(DeInitDeviceStatusManager());
573 }
574 {
575 auto &mock = DistributedHardware::DeviceManagerMock::Instance();
576 EXPECT_CALL(mock, InitDeviceManager).WillOnce(Return(1)).WillOnce(Return(0));
__anon31937ccf0802(const DeviceIdentify *devId, uint32_t status, int32_t level) 577 auto recv = [](const DeviceIdentify *devId, uint32_t status, int32_t level) -> int32_t { return 0; };
578 EXPECT_TRUE(InitDeviceStatusManager(queue, "??", recv));
579 }
580 }
581 } // namespace DslmUnitTest
582 } // namespace Security
583 } // namespace OHOS