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,
__anon989d4cf10102() 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 = "",
__anon989d4cf10202() 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,
__anon989d4cf10302() 299 .messageReceiver = [](const DeviceIdentify *, const uint8_t *, uint32_t) { return 0; },
300 };
301 auto ret = InitDeviceSocketManager(queue, &config);
302 EXPECT_TRUE(ret);
303
304 uint8_t msg[UINT8_MAX] = {0};
305 {
306 DeviceIdentify idt {.identity = {'a'}, .length = 1};
307 MessengerSendMsgTo(0, &idt, msg, UINT8_MAX);
308 }
309 {
310 DeviceIdentify idt {.identity = {'x'}, .length = 1};
311 MessengerSendMsgTo(0, &idt, msg, UINT8_MAX);
312 }
313 EXPECT_TRUE(DeInitDeviceSocketManager());
314 }
315 }
316
317 HWTEST_F(DslmMsgLibTest, CreateQueueMsgDataTest, TestSize.Level0)
318 {
319 {
320 auto *data = CreateQueueMsgData(nullptr, nullptr, 0, nullptr);
321 EXPECT_EQ(data, nullptr);
322 }
323 {
324 DeviceIdentify idt {};
325 auto *data = CreateQueueMsgData(&idt, nullptr, 0, nullptr);
326 EXPECT_EQ(data, nullptr);
327 }
328 {
329 DeviceIdentify idt {};
330 uint8_t msg[UINT8_MAX] = {0};
331 auto *data = CreateQueueMsgData(&idt, msg, 0, nullptr);
332 EXPECT_EQ(data, nullptr);
333 }
334 {
335 DeviceIdentify idt {};
336 uint8_t msg[UINT8_MAX] = {0};
337 auto *data = CreateQueueMsgData(&idt, msg, UINT8_MAX, nullptr);
338 EXPECT_EQ(data, nullptr);
339 }
340 {
341 DeviceIdentify idt {};
342 uint8_t msg[UINT8_MAX] = {0};
343 uint32_t queueDataLen = 0;
344 auto *data = CreateQueueMsgData(&idt, msg, UINT8_MAX, &queueDataLen);
345 ASSERT_NE(data, nullptr);
346 EXPECT_EQ(data->msgLen, UINT8_MAX);
347 EXPECT_EQ(queueDataLen, UINT8_MAX + sizeof(QueueMsgData));
348 }
349 }
350
351 HWTEST_F(DslmMsgLibTest, SocketShutDownTest, TestSize.Level0)
352 {
353 MessengerConfig config = {.pkgName = "pkg", .primarySockName = "pr", .secondarySockName = "", .threadCnt = 1};
354 auto ret = InitDeviceSocketManager(queue, &config);
355 EXPECT_TRUE(ret);
356
357 DeviceIdentify idt {.length = 1, .identity = {'a'}};
358
359 char dummy[] = {'a', 0};
360 PeerSocketInfo peer = {.name = dummy, .networkId = dummy};
361 UtServerOnBind(1, peer);
362 UtClientOnBind(1, &idt);
363
364 UtCreateOrRestartSocketCloseTimerWithLock(0);
365 UtCreateOrRestartSocketCloseTimerWithLock(1);
366
367 UtServerOnShutdown(3, SHUTDOWN_REASON_UNKNOWN);
368 UtClientOnShutdown(4, SHUTDOWN_REASON_UNKNOWN);
369 UtServerOnShutdown(0, SHUTDOWN_REASON_UNKNOWN);
370 UtClientOnShutdown(0, SHUTDOWN_REASON_UNKNOWN);
371 UtServerOnShutdown(1, SHUTDOWN_REASON_UNKNOWN);
372 UtClientOnShutdown(1, SHUTDOWN_REASON_UNKNOWN);
373 EXPECT_TRUE(DeInitDeviceSocketManager());
374 }
375
376 HWTEST_F(DslmMsgLibTest, MessengerGetNetworkIdByDeviceIdentifyTest, TestSize.Level0)
377 {
378 {
379 auto ret = MessengerGetNetworkIdByDeviceIdentify(nullptr, nullptr, 0);
380 EXPECT_FALSE(ret);
381 }
382 {
383 DeviceIdentify idt {.length = 1, .identity = {'a'}};
384 auto ret = MessengerGetNetworkIdByDeviceIdentify(&idt, nullptr, 0);
385 EXPECT_FALSE(ret);
386 }
387 {
388 DeviceIdentify idt {.length = 1, .identity = {'a'}};
389 char id[UINT8_MAX] = {0};
390 auto ret = MessengerGetNetworkIdByDeviceIdentify(&idt, id, 0);
391 EXPECT_FALSE(ret);
392 }
393 {
394 DeviceIdentify idt {.length = 1, .identity = {'a'}};
395 char id[UINT8_MAX] = {0};
396 auto ret = MessengerGetNetworkIdByDeviceIdentify(&idt, id, UINT8_MAX);
397 EXPECT_FALSE(ret);
398 }
399 }
400
401 HWTEST_F(DslmMsgLibTest, MessengerForEachDeviceProcessTest, TestSize.Level0)
402 {
403 {
404 MessengerForEachDeviceProcess(nullptr, nullptr);
405 }
406 {
__anon989d4cf10402(const DeviceIdentify *, int32_t, void *) 407 MessengerForEachDeviceProcess([](const DeviceIdentify *, int32_t, void *) { return 0; }, nullptr);
408 }
409 {
410 auto &mock = DistributedHardware::DeviceManagerMock::Instance();
411 EXPECT_CALL(mock, GetTrustedDeviceList).WillOnce(Return(1));
__anon989d4cf10502(const DeviceIdentify *, int32_t, void *) 412 MessengerForEachDeviceProcess([](const DeviceIdentify *, int32_t, void *) { return 0; }, nullptr);
413 }
414 }
415
416 HWTEST_F(DslmMsgLibTest, UtTimerProcessWaitingTimeOutTest, TestSize.Level0)
417 {
418 LOG_SetCallback(LogCallback);
419 {
420 UtTimerProcessWaitingTimeOut(nullptr);
421 }
422 {
423 char id[UINT8_MAX] = {0};
424 UtTimerProcessWaitingTimeOut(id);
425 EXPECT_TRUE(g_errLog.find("SocketClosed") != std::string::npos);
426 }
427 }
428
429 HWTEST_F(DslmMsgLibTest, UtCreateServerTest, TestSize.Level0)
430 {
431 EXPECT_FALSE(UtCreateServer(nullptr));
432 }
433
434 HWTEST_F(DslmMsgLibTest, UtBindSync, TestSize.Level0)
435 {
436 {
437 EXPECT_FALSE(UtBindSync(0, nullptr));
438 }
439 {
440 DeviceIdentify idt {};
441 EXPECT_TRUE(UtBindSync(1, &idt));
442 }
443 {
444 DeviceIdentify idt {};
445 EXPECT_TRUE(UtBindSync(1, &idt));
446 }
447 {
448 NiceMock<DslmMsgInterfaceMock> msgMock;
__anon989d4cf10602(int32_t, const QosTV[], uint32_t, const ISocketListener *) 449 ON_CALL(msgMock, Bind).WillByDefault([](int32_t, const QosTV[], uint32_t, const ISocketListener *) {
450 return UINT16_MAX;
451 });
452 DeviceIdentify idt {};
453 EXPECT_FALSE(UtBindSync(1, &idt));
454 }
455 }
456
457 HWTEST_F(DslmMsgLibTest, UtGetClientNameTest, TestSize.Level0)
458 {
459 {
460 EXPECT_NE(0, UtGetClientName(nullptr, nullptr, 0, false));
461 }
462 {
463 char name[UINT8_MAX] = {0};
464 EXPECT_NE(0, UtGetClientName(name, nullptr, 0, false));
465 }
466 {
467 char name[UINT8_MAX] = {0};
468 char to[UINT8_MAX] = {0};
469 EXPECT_EQ(0, UtGetClientName(name, to, 0, false));
470 }
471 {
472 char name[UINT8_MAX] = {0};
473 char to[UINT8_MAX] = {0};
474 EXPECT_EQ(0, UtGetClientName(name, to, 0, true));
475 }
476 }
477
478 HWTEST_F(DslmMsgLibTest, UtGetSocketBySocketListTest, TestSize.Level0)
479 {
480 DeviceIdentify idt {};
481 UtPushMsgDataToPendingList(0, nullptr, nullptr, 0);
482 UtPushMsgDataToPendingList(0, &idt, nullptr, 0);
483
484 EXPECT_FALSE(UtGetSocketBySocketList(nullptr, false, nullptr));
485
486 EXPECT_FALSE(UtGetSocketBySocketList(&idt, false, nullptr));
487
488 EXPECT_EQ(nullptr, UtCreateSocketNodeInfo(0, nullptr));
489 }
490
491 HWTEST_F(DslmMsgLibTest, MessengerGetDeviceIdentifyByNetworkId, TestSize.Level0)
492 {
493 {
494 EXPECT_FALSE(MessengerGetDeviceIdentifyByNetworkId(nullptr, nullptr));
495 }
496 {
497 EXPECT_FALSE(MessengerGetDeviceIdentifyByNetworkId("a", nullptr));
498 }
499 {
500 DeviceIdentify idt {};
501 EXPECT_TRUE(MessengerGetDeviceIdentifyByNetworkId("a", &idt));
502 }
503 }
504
505 HWTEST_F(DslmMsgLibTest, MessengerGetNetworkIdByDeviceIdentify, TestSize.Level0)
506 {
507 {
508 EXPECT_FALSE(MessengerGetNetworkIdByDeviceIdentify(nullptr, nullptr, 0));
509 }
510 {
511 DeviceIdentify idt {};
512 EXPECT_FALSE(MessengerGetNetworkIdByDeviceIdentify(&idt, nullptr, 0));
513 }
514 }
515
516 HWTEST_F(DslmMsgLibTest, MessengerGetSelfDeviceIdentify, TestSize.Level0)
517 {
518 {
519 EXPECT_FALSE(MessengerGetSelfDeviceIdentify(nullptr, nullptr));
520 }
521 {
522 DeviceIdentify idt {};
523 EXPECT_FALSE(MessengerGetSelfDeviceIdentify(&idt, nullptr));
524 }
525 {
526 DeviceIdentify idt {};
527 int32_t level = 0;
528 EXPECT_TRUE(MessengerGetSelfDeviceIdentify(&idt, &level));
529 }
530 {
531 auto &mock = DistributedHardware::DeviceManagerMock::Instance();
532 EXPECT_CALL(mock, GetLocalDeviceInfo).WillOnce(Return(1));
533
534 DeviceIdentify idt {};
535 int32_t level = 0;
536 EXPECT_FALSE(MessengerGetSelfDeviceIdentify(&idt, &level));
537 }
538 }
539
540 HWTEST_F(DslmMsgLibTest, MessengerGetDeviceOnlineStatus, TestSize.Level0)
541 {
542 {
543 EXPECT_FALSE(MessengerGetDeviceOnlineStatus(nullptr, nullptr));
544 }
545 {
546 DeviceIdentify idt {.identity = {'a'}, .length = 1};
547 EXPECT_FALSE(MessengerGetDeviceOnlineStatus(&idt, nullptr));
548 }
549 {
550 DeviceIdentify idt {.identity = {'a'}, .length = 1};
551 int32_t level = 0;
552 EXPECT_FALSE(MessengerGetDeviceOnlineStatus(&idt, &level));
553 }
554 }
555
556 HWTEST_F(DslmMsgLibTest, InitDeviceStatusManager, TestSize.Level0)
557 {
558 {
559 EXPECT_FALSE(InitDeviceStatusManager(nullptr, nullptr, nullptr));
560 }
561
562 {
563 EXPECT_FALSE(InitDeviceStatusManager(queue, nullptr, nullptr));
564 }
565
566 {
567 EXPECT_FALSE(InitDeviceStatusManager(queue, "??", nullptr));
568 }
569
570 {
__anon989d4cf10702(const DeviceIdentify *devId, uint32_t status, int32_t level) 571 auto recv = [](const DeviceIdentify *devId, uint32_t status, int32_t level) -> int32_t { return 0; };
572 EXPECT_TRUE(InitDeviceStatusManager(queue, "??", recv));
573 EXPECT_TRUE(DeInitDeviceStatusManager());
574 }
575 {
576 auto &mock = DistributedHardware::DeviceManagerMock::Instance();
577 EXPECT_CALL(mock, InitDeviceManager).WillOnce(Return(1)).WillOnce(Return(0));
__anon989d4cf10802(const DeviceIdentify *devId, uint32_t status, int32_t level) 578 auto recv = [](const DeviceIdentify *devId, uint32_t status, int32_t level) -> int32_t { return 0; };
579 EXPECT_TRUE(InitDeviceStatusManager(queue, "??", recv));
580 }
581 }
582 } // namespace DslmUnitTest
583 } // namespace Security
584 } // namespace OHOS