1 /*
2 * Copyright (c) 2022-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
18 #include "client_trans_session_callback.h"
19 #include "client_trans_session_manager.h"
20 #include "client_trans_socket_manager.h"
21 #include "client_trans_udp_manager.h"
22 #include "client_trans_udp_manager.c"
23 #include "securec.h"
24 #include "session.h"
25 #include "softbus_def.h"
26 #include "softbus_error_code.h"
27 #include "trans_udp_channel_manager.h"
28
29 using namespace std;
30 using namespace testing::ext;
31
32 const char *g_sessionName = "ohos.distributedschedule.dms.test";
33 const char *g_networkid = "ABCDEF00ABCDEF00ABCDEF00ABCDEF00ABCDEF00ABCDEF00ABCDEF00ABCDEF00";
34 const char *g_groupid = "TEST_GROUP_ID";
35
36 namespace OHOS {
37 #define TEST_ERR_PID (-1)
38 #define TEST_LEN 10
39 #define TEST_DATA_TYPE 2
40 #define TEST_PID 2
41 #define TEST_STATE 1
42 #define TEST_ERR_CODE 1
43 #define TEST_CHANNELID 5
44 #define TEST_SESSIONID 100
45 #define TEST_CHANNELTYPE 2
46 #define TEST_REMOTE_TYPE 0
47 #define TEST_EVENT_ID 2
48 #define TEST_COUNT 2
49 #define TEST_ERR_COUNT (-2)
50 #define TEST_ERRCODE 0
51 #define TEST_FILE_NAME "test.filename.01"
52 #define STREAM_DATA_LENGTH 10
53 #define TEST_ERR_CHANNELID (-1)
54 #define TEST_ERR_SESSIONID (-1)
55 #define FILE_PRIORITY_TEST 0x06
56
57 class ClientTransUdpManagerTest : public testing::Test {
58 public:
ClientTransUdpManagerTest()59 ClientTransUdpManagerTest() {}
~ClientTransUdpManagerTest()60 ~ClientTransUdpManagerTest() {}
61 static void SetUpTestCase(void);
62 static void TearDownTestCase(void);
SetUp()63 void SetUp() override {}
TearDown()64 void TearDown() override {}
65 };
66
OnSessionOpened(const char * sessionName,const ChannelInfo * channel,SessionType flag)67 static int32_t OnSessionOpened(const char *sessionName, const ChannelInfo *channel, SessionType flag)
68 {
69 return SOFTBUS_OK;
70 }
71
OnSessionClosed(int32_t channelId,int32_t channelType,ShutdownReason reason)72 static int32_t OnSessionClosed(int32_t channelId, int32_t channelType, ShutdownReason reason)
73 {
74 return SOFTBUS_OK;
75 }
76
OnSessionOpenFailed(int32_t channelId,int32_t channelType,int32_t errCode)77 static int32_t OnSessionOpenFailed(int32_t channelId, int32_t channelType, int32_t errCode)
78 {
79 return SOFTBUS_OK;
80 }
81
OnDataReceived(int32_t channelId,int32_t channelType,const void * data,uint32_t len,SessionPktType type)82 static int32_t OnDataReceived(int32_t channelId, int32_t channelType, const void *data,
83 uint32_t len, SessionPktType type)
84 {
85 return SOFTBUS_OK;
86 }
87 static IClientSessionCallBack g_sessionCb = {
88 .OnSessionOpened = OnSessionOpened,
89 .OnSessionClosed = OnSessionClosed,
90 .OnSessionOpenFailed = OnSessionOpenFailed,
91 .OnDataReceived = OnDataReceived,
92 };
93
SetUpTestCase(void)94 void ClientTransUdpManagerTest::SetUpTestCase(void)
95 {
96 int32_t ret = ClientTransUdpMgrInit(&g_sessionCb);
97 EXPECT_EQ(SOFTBUS_OK, ret);
98 ret = TransClientInit();
99 EXPECT_EQ(ret, SOFTBUS_OK);
100 }
101
TearDownTestCase(void)102 void ClientTransUdpManagerTest::TearDownTestCase(void) {}
103
InitChannelInfo()104 static ChannelInfo InitChannelInfo()
105 {
106 ChannelInfo channel;
107 char strTmp[] = "ABCDEFG";
108 char strSessionName[] = "ohos.distributedschedule.dms.test";
109 channel.channelId = TEST_CHANNELID;
110 channel.businessType = BUSINESS_TYPE_STREAM;
111 channel.channelType = TEST_CHANNELTYPE;
112 channel.fd = TEST_DATA_TYPE;
113 channel.isServer = true;
114 channel.isEnabled = true;
115 channel.peerUid = TEST_CHANNELID;
116 channel.peerPid = TEST_CHANNELID;
117 channel.groupId = strTmp;
118 channel.sessionKey = strTmp;
119 channel.keyLen = sizeof(channel.sessionKey);
120 channel.peerSessionName = strSessionName;
121 channel.peerDeviceId = strTmp;
122 channel.myIp = strTmp;
123 channel.streamType = TEST_COUNT;
124 channel.isUdpFile = true;
125 channel.peerPort = TEST_COUNT;
126 channel.peerIp = strTmp;
127 channel.routeType = TEST_DATA_TYPE;
128 return channel;
129 }
130
131 /**
132 * @tc.name: TransOnUdpChannelOpenedTest001
133 * @tc.desc: trans on udp channel opened test, use the wrong parameter.
134 * @tc.type: FUNC
135 * @tc.require:
136 */
137 HWTEST_F(ClientTransUdpManagerTest, TransOnUdpChannelOpenedTest001, TestSize.Level0)
138 {
139 int32_t ret;
140 ChannelInfo channel = InitChannelInfo();
141 int32_t udpPort;
142
143 ret = TransOnUdpChannelOpened(nullptr, &channel, &udpPort);
144 EXPECT_EQ(SOFTBUS_INVALID_PARAM, ret);
145
146 ret = TransOnUdpChannelOpened(g_sessionName, nullptr, &udpPort);
147 EXPECT_EQ(SOFTBUS_INVALID_PARAM, ret);
148
149 ret = TransOnUdpChannelOpened(g_sessionName, &channel, nullptr);
150 EXPECT_EQ(SOFTBUS_INVALID_PARAM, ret);
151 }
152
153 /**
154 * @tc.name: TransOnUdpChannelOpenedTest002
155 * @tc.desc: trans on udp channel opened test, use the wrong or normal parameter.
156 * @tc.type: FUNC
157 * @tc.require:
158 */
159 HWTEST_F(ClientTransUdpManagerTest, TransOnUdpChannelOpenedTest002, TestSize.Level0)
160 {
161 int32_t ret;
162 ChannelInfo channel = InitChannelInfo();
163 int32_t udpPort;
164 char strSessionName[] = "ohos.distributedschedule.dms.test";
165
166 ret = TransOnUdpChannelOpened(g_sessionName, &channel, &udpPort);
167 EXPECT_EQ(SOFTBUS_NO_INIT, ret);
168
169 ret = TransOnUdpChannelClosed(channel.channelId, SHUTDOWN_REASON_UNKNOWN);
170 EXPECT_EQ(SOFTBUS_TRANS_UDP_GET_CHANNEL_FAILED, ret);
171
172 channel.businessType = BUSINESS_TYPE_FILE;
173 ret = TransOnUdpChannelOpened(strSessionName, &channel, &udpPort);
174 EXPECT_EQ(SOFTBUS_TRANS_NODE_NOT_FOUND, ret);
175
176 channel.businessType = BUSINESS_TYPE_FILE;
177 channel.channelId = TEST_CHANNELID + 1;
178 ret = TransOnUdpChannelOpened(g_sessionName, &channel, &udpPort);
179 EXPECT_EQ(SOFTBUS_TRANS_NODE_NOT_FOUND, ret);
180
181 channel.businessType = TEST_COUNT;
182 ret = TransOnUdpChannelOpened(g_sessionName, &channel, &udpPort);
183 EXPECT_EQ(SOFTBUS_TRANS_BUSINESS_TYPE_NOT_MATCH, ret);
184 }
185
186 /**
187 * @tc.name: TransOnUdpChannelOpenedTest003
188 * @tc.desc: trans on udp channel opened test, use the wrong or normal parameter.
189 * @tc.type: FUNC
190 * @tc.require:
191 */
192 HWTEST_F(ClientTransUdpManagerTest, TransOnUdpChannelOpenedTest003, TestSize.Level0)
193 {
194 int32_t ret;
195 ChannelInfo channel = InitChannelInfo();
196 int32_t udpPort;
197 QosTv tvList;
198
199 ret = TransOnUdpChannelOpened(g_sessionName, &channel, &udpPort);
200 EXPECT_EQ(SOFTBUS_NO_INIT, ret);
201
202 ret = TransOnUdpChannelQosEvent(TEST_CHANNELID, TEST_EVENT_ID, TEST_COUNT, &tvList);
203 EXPECT_EQ(SOFTBUS_TRANS_UDP_GET_CHANNEL_FAILED, ret);
204
205 channel.businessType = BUSINESS_TYPE_BUTT;
206 ret = TransOnUdpChannelOpenFailed(TEST_CHANNELID, TEST_ERRCODE);
207 EXPECT_EQ(SOFTBUS_OK, ret);
208 }
209
210 /**
211 * @tc.name: TransOnUdpChannelOpenFailedTest001
212 * @tc.desc: trans on udp channel opened test, use the wrong or normal parameter.
213 * @tc.type: FUNC
214 * @tc.require:
215 */
216 HWTEST_F(ClientTransUdpManagerTest, TransOnUdpChannelOpenFailedTest001, TestSize.Level0)
217 {
218 int32_t ret;
219 ret = TransOnUdpChannelOpenFailed(TEST_CHANNELID, TEST_ERRCODE);
220 EXPECT_EQ(SOFTBUS_OK, ret);
221
222 ret = TransOnUdpChannelOpenFailed(0, TEST_ERRCODE);
223 EXPECT_EQ(SOFTBUS_OK, ret);
224 }
225
226 /**
227 * @tc.name: TransOnUdpChannelClosedTest001
228 * @tc.desc: trans on udp channel closed test, use the wrong or normal parameter.
229 * @tc.type: FUNC
230 * @tc.require:
231 */
232 HWTEST_F(ClientTransUdpManagerTest, TransOnUdpChannelClosedTest001, TestSize.Level0)
233 {
234 int32_t ret;
235 ret = TransOnUdpChannelClosed(TEST_CHANNELID, SHUTDOWN_REASON_UNKNOWN);
236 EXPECT_EQ(SOFTBUS_TRANS_UDP_GET_CHANNEL_FAILED, ret);
237 }
238
239 /**
240 * @tc.name: TransOnUdpChannelClosedTest002
241 * @tc.desc: trans on udp channel closed test, use the wrong or normal parameter.
242 * @tc.type: FUNC
243 * @tc.require:
244 */
245 HWTEST_F(ClientTransUdpManagerTest, TransOnUdpChannelClosedTest002, TestSize.Level0)
246 {
247 int32_t ret;
248 ChannelInfo channel = InitChannelInfo();
249 int32_t udpPort;
250 channel.businessType = BUSINESS_TYPE_FILE;
251
252 ret = TransOnUdpChannelOpened(g_sessionName, &channel, &udpPort);
253 EXPECT_EQ(SOFTBUS_TRANS_NODE_NOT_FOUND, ret);
254
255 ret = ClientTransUdpMgrInit(&g_sessionCb);
256 EXPECT_EQ(SOFTBUS_OK, ret);
257
258 ret = TransOnUdpChannelOpened(g_sessionName, &channel, &udpPort);
259 EXPECT_EQ(SOFTBUS_TRANS_NODE_NOT_FOUND, ret);
260
261 ret = TransOnUdpChannelClosed(channel.channelId, SHUTDOWN_REASON_UNKNOWN);
262 EXPECT_EQ(SOFTBUS_TRANS_UDP_GET_CHANNEL_FAILED, ret);
263
264 ret = TransOnUdpChannelClosed(channel.channelId, SHUTDOWN_REASON_PEER);
265 EXPECT_EQ(SOFTBUS_TRANS_UDP_GET_CHANNEL_FAILED, ret);
266
267 ret = TransOnUdpChannelClosed(channel.channelId, SHUTDOWN_REASON_SEND_FILE_ERR);
268 EXPECT_EQ(SOFTBUS_TRANS_UDP_GET_CHANNEL_FAILED, ret);
269
270 ret = TransOnUdpChannelClosed(TEST_CHANNELID + TEST_CHANNELID, SHUTDOWN_REASON_SEND_FILE_ERR);
271 EXPECT_EQ(SOFTBUS_TRANS_UDP_GET_CHANNEL_FAILED, ret);
272 }
273
274 /**
275 * @tc.name: TransOnUdpChannelQosEventTest001
276 * @tc.desc: trans on udp channel qos event test, use the wrong or normal parameter.
277 * @tc.type: FUNC
278 * @tc.require:
279 */
280 HWTEST_F(ClientTransUdpManagerTest, TransOnUdpChannelQosEventTest001, TestSize.Level0)
281 {
282 int32_t ret;
283 QosTv tvList;
284 ret = TransOnUdpChannelQosEvent(TEST_CHANNELID, TEST_EVENT_ID, TEST_COUNT, &tvList);
285 EXPECT_EQ(SOFTBUS_TRANS_UDP_GET_CHANNEL_FAILED, ret);
286 }
287
288 /**
289 * @tc.name: ClientTransCloseUdpChannelTest001
290 * @tc.desc: client trans close udp channel test, use the wrong or normal parameter.
291 * @tc.type: FUNC
292 * @tc.require:
293 */
294 HWTEST_F(ClientTransUdpManagerTest, ClientTransCloseUdpChannelTest001, TestSize.Level0)
295 {
296 int32_t ret;
297 ret = ClientTransCloseUdpChannel(TEST_CHANNELID, SHUTDOWN_REASON_UNKNOWN);
298 EXPECT_EQ(SOFTBUS_TRANS_UDP_GET_CHANNEL_FAILED, ret);
299 }
300
301 /**
302 * @tc.name: TransUdpChannelSendStreamTest001
303 * @tc.desc: trans udp channel send stream test, use the wrong or normal parameter.
304 * @tc.type: FUNC
305 * @tc.require:
306 */
307 HWTEST_F(ClientTransUdpManagerTest, TransUdpChannelSendStreamTest001, TestSize.Level0)
308 {
309 int32_t ret;
310 ChannelInfo channel = InitChannelInfo();
311 int32_t udpPort;
312
313 char sendStringData[STREAM_DATA_LENGTH] = "diudiudiu";
314 StreamData tmpData = {
315 sendStringData,
316 STREAM_DATA_LENGTH,
317 };
318 char str[STREAM_DATA_LENGTH] = "oohoohooh";
319 StreamData tmpData2 = {
320 str,
321 STREAM_DATA_LENGTH,
322 };
323
324 StreamFrameInfo tmpf = {};
325 ret = TransUdpChannelSendStream(TEST_CHANNELID, &tmpData, &tmpData2, &tmpf);
326 EXPECT_EQ(SOFTBUS_TRANS_UDP_GET_CHANNEL_FAILED, ret);
327
328 ret = TransOnUdpChannelOpened(g_sessionName, &channel, &udpPort);
329 EXPECT_EQ(SOFTBUS_NO_INIT, ret);
330
331 ret = TransUdpChannelSendStream(TEST_CHANNELID, &tmpData, &tmpData2, &tmpf);
332 EXPECT_EQ(SOFTBUS_TRANS_UDP_GET_CHANNEL_FAILED, ret);
333
334 ret = TransUdpChannelSetStreamMultiLayer(TEST_CHANNELID, nullptr);
335 EXPECT_EQ(SOFTBUS_TRANS_UDP_GET_CHANNEL_FAILED, ret);
336 }
337
338 /**
339 * @tc.name: TransUdpChannelSendFileTest001
340 * @tc.desc: trans udp channel send file test, use the wrong or normal parameter.
341 * @tc.type: FUNC
342 * @tc.require:
343 */
344 HWTEST_F(ClientTransUdpManagerTest, TransUdpChannelSendFileTest001, TestSize.Level0)
345 {
346 int32_t ret;
347 const char *sFileList[] = {
348 "/data/big.tar",
349 "/data/richu.jpg",
350 "/data/richu-002.jpg",
351 "/data/richu-003.jpg",
352 };
353 ret = TransUdpChannelSendFile(TEST_CHANNELID, nullptr, nullptr, 1);
354 EXPECT_EQ(SOFTBUS_TRANS_UDP_GET_CHANNEL_FAILED, ret);
355
356 ret = TransUdpChannelSendFile(TEST_CHANNELID, sFileList, nullptr, 0);
357 EXPECT_EQ(SOFTBUS_TRANS_UDP_GET_CHANNEL_FAILED, ret);
358
359 ret = TransUdpChannelSendFile(TEST_CHANNELID, sFileList, nullptr, 1);
360 EXPECT_EQ(SOFTBUS_TRANS_UDP_GET_CHANNEL_FAILED, ret);
361 }
362
363 /**
364 * @tc.name: TransGetUdpChannelByFileIdTest001
365 * @tc.desc: trans get udp channel by fileid test, use the wrong or normal parameter.
366 * @tc.type: FUNC
367 * @tc.require:
368 */
369 HWTEST_F(ClientTransUdpManagerTest, TransGetUdpChannelByFileIdTest001, TestSize.Level0)
370 {
371 int32_t ret;
372 UdpChannel udpChannel;
373 (void)memset_s(&udpChannel, sizeof(UdpChannel), 0, sizeof(UdpChannel));
374 ret = TransGetUdpChannelByFileId(TEST_DATA_TYPE, &udpChannel);
375 EXPECT_EQ(SOFTBUS_TRANS_UDP_CHANNEL_NOT_FOUND, ret);
376
377 ClientTransUdpMgrDeinit();
378 ret = TransGetUdpChannelByFileId(TEST_DATA_TYPE, &udpChannel);
379 EXPECT_EQ(SOFTBUS_NO_INIT, ret);
380 }
381
382 /**
383 * @tc.name: ClientTransAddUdpChannelTest001
384 * @tc.desc: client trans add udp channel test, use the wrong or normal parameter.
385 * @tc.type: FUNC
386 * @tc.require:
387 */
388 HWTEST_F(ClientTransUdpManagerTest, ClientTransAddUdpChannelTest001, TestSize.Level0)
389 {
390 int32_t ret;
391 ChannelInfo channel = InitChannelInfo();
392 int32_t udpPort;
393
394 ret = TransOnUdpChannelOpened(g_sessionName, &channel, &udpPort);
395 EXPECT_EQ(SOFTBUS_TRANS_UDP_CLIENT_ADD_CHANNEL_FAILED, ret);
396
397 ret = TransOnUdpChannelOpened(g_sessionName, &channel, &udpPort);
398 EXPECT_EQ(SOFTBUS_TRANS_UDP_CLIENT_ADD_CHANNEL_FAILED, ret);
399
400 ClientTransUdpMgrDeinit();
401 ret = TransOnUdpChannelOpened(g_sessionName, &channel, &udpPort);
402 EXPECT_EQ(SOFTBUS_TRANS_UDP_CLIENT_ADD_CHANNEL_FAILED, ret);
403 }
404
405 /**
406 * @tc.name: ClientTransUdpManagerTest001
407 * @tc.desc: client trans udp manager test, use the normal parameter.
408 * @tc.type: FUNC
409 * @tc.require:
410 */
411 HWTEST_F(ClientTransUdpManagerTest, ClientTransUdpManagerTest001, TestSize.Level0)
412 {
413 int32_t ret;
414
415 IClientSessionCallBack *cb = GetClientSessionCb();
416 ret = ClientTransUdpMgrInit(cb);
417 EXPECT_EQ(SOFTBUS_OK, ret);
418 }
419
420 /**
421 * @tc.name: ClientEmitFileEventTest001
422 * @tc.desc: client emit file event test, use the invalid parameter.
423 * @tc.type: FUNC
424 * @tc.require:
425 */
426 HWTEST_F(ClientTransUdpManagerTest, ClientEmitFileEventTest001, TestSize.Level0)
427 {
428 int32_t channelId = TEST_ERR_CHANNELID;
429 int32_t ret = ClientEmitFileEvent(channelId);
430 EXPECT_NE(SOFTBUS_OK, ret);
431 }
432
433 /**
434 * @tc.name: ClientEmitFileEventTest002
435 * @tc.desc: client emit file event test, use the invalid parameter.
436 * @tc.type: FUNC
437 * @tc.require:
438 */
439 HWTEST_F(ClientTransUdpManagerTest, ClientEmitFileEventTest002, TestSize.Level0)
440 {
441 int32_t channelId = TEST_CHANNELID;
442 int32_t ret = ClientEmitFileEvent(channelId);
443 EXPECT_NE(SOFTBUS_OK, ret);
444
445 ret = TransSetUdpChanelSessionId(TEST_CHANNELID, TEST_SESSIONID);
446 EXPECT_NE(SOFTBUS_NO_INIT, ret);
447
448 ret = TransSetUdpChannelRenameHook(TEST_CHANNELID, nullptr);
449 EXPECT_NE(SOFTBUS_OK, ret);
450 }
451
452 /**
453 * @tc.name: TransLimitChangeTest
454 * @tc.desc: trans limit change test, use the invalid parameter.
455 * @tc.type: FUNC
456 * @tc.require:
457 */
458 HWTEST_F(ClientTransUdpManagerTest, TransLimitChangeTest, TestSize.Level0)
459 {
460 int32_t channelId = TEST_ERR_CHANNELID;
461 int32_t ret = TransLimitChange(channelId, FILE_PRIORITY_BK);
462 EXPECT_EQ(SOFTBUS_TRANS_UDP_CHANNEL_NOT_FOUND, ret);
463
464 channelId = TEST_CHANNELID;
465 ret = TransLimitChange(channelId, FILE_PRIORITY_BE);
466 EXPECT_EQ(SOFTBUS_TRANS_UDP_CHANNEL_NOT_FOUND, ret);
467
468 ret = TransLimitChange(channelId, FILE_PRIORITY_TEST);
469 EXPECT_EQ(SOFTBUS_INVALID_PARAM, ret);
470 }
471
472 /**
473 * @tc.name: TransSetUdpChannelTosTest
474 * @tc.desc: trans set udp channel tos test.
475 * @tc.type: FUNC
476 * @tc.require:
477 */
478 HWTEST_F(ClientTransUdpManagerTest, TransSetUdpChannelTosTest, TestSize.Level0)
479 {
480 int32_t channelId = TEST_ERR_CHANNELID;
481 int32_t ret = TransSetUdpChannelTos(channelId);
482 EXPECT_EQ(ret, SOFTBUS_TRANS_UDP_CHANNEL_NOT_FOUND);
483 }
484
485 /**
486 * @tc.name: TransGetUdpChannelTosTest001
487 * @tc.desc: trans get udp channel tos test.
488 * @tc.type: FUNC
489 * @tc.require:
490 */
491 HWTEST_F(ClientTransUdpManagerTest, TransGetUdpChannelTosTest001, TestSize.Level0)
492 {
493 int32_t channelId = TEST_ERR_CHANNELID;
494 bool isTosSet = false;
495 int32_t ret = TransGetUdpChannelTos(channelId, &isTosSet);
496 EXPECT_EQ(ret, SOFTBUS_TRANS_UDP_CHANNEL_NOT_FOUND);
497 EXPECT_FALSE(isTosSet);
498 ret = TransGetUdpChannelTos(TEST_CHANNELID, nullptr);
499 EXPECT_EQ(ret, SOFTBUS_INVALID_PARAM);
500 }
501
502 /**
503 * @tc.name: TransUdpChannelSendStreamTest002
504 * @tc.desc: trans udp channel sendstream test, use the wrong or normal parameter.
505 * @tc.type: FUNC
506 * @tc.require:
507 */
508 HWTEST_F(ClientTransUdpManagerTest, TransUdpChannelSendStreamTest002, TestSize.Level0)
509 {
510 int32_t channelId = TEST_CHANNELID;
511
512 int32_t ret = ClientTransUdpMgrInit(&g_sessionCb);
513 EXPECT_EQ(SOFTBUS_OK, ret);
514
515 UdpChannel *newChannel = reinterpret_cast<UdpChannel *>(SoftBusCalloc(sizeof(UdpChannel)));
516 ASSERT_NE(newChannel, nullptr);
517 newChannel->channelId = channelId;
518 newChannel->isEnable = false;
519 ret = ClientTransAddUdpChannel(newChannel);
520 EXPECT_EQ(SOFTBUS_OK, ret);
521 StreamFrameInfo tmpf = {};
522 char sendStringData[STREAM_DATA_LENGTH] = "diudiudiu";
523 StreamData tmpData1 = {
524 sendStringData,
525 STREAM_DATA_LENGTH,
526 };
527 char str[STREAM_DATA_LENGTH] = "ooooooood";
528 StreamData tmpData2 = {
529 str,
530 STREAM_DATA_LENGTH,
531 };
532 ret = TransUdpChannelSendStream(channelId, &tmpData1, &tmpData2, &tmpf);
533 EXPECT_EQ(SOFTBUS_TRANS_UDP_CHANNEL_DISABLE, ret);
534
535 newChannel->isEnable = true;
536 ret = TransUdpChannelSendStream(channelId, nullptr, nullptr, &tmpf);
537 EXPECT_EQ(SOFTBUS_INVALID_PARAM, ret);
538
539 ret = TransDeleteUdpChannel(channelId);
540 EXPECT_EQ(SOFTBUS_OK, ret);
541 ClientTransUdpMgrDeinit();
542 }
543
544 /**
545 * @tc.name: TransUdpChannelSendFileTest002
546 * @tc.desc: trans udp channel sendfile test, use the wrong or normal parameter.
547 * @tc.type: FUNC
548 * @tc.require:
549 */
550 HWTEST_F(ClientTransUdpManagerTest, TransUdpChannelSendFileTest002, TestSize.Level0)
551 {
552 int32_t channelId = TEST_CHANNELID;
553 const char *sFileList[] = {
554 "/data/big.tar",
555 "/data/richu.jpg",
556 "/data/richu-002.jpg",
557 "/data/richu-003.jpg",
558 };
559 const char *dFileList[] = {
560 "/data/big.tar",
561 "/data/richu.jpg",
562 "/data/richu-002.jpg",
563 "/data/richu-003.jpg",
564 };
565 uint32_t fileCnt = 0;
566
567 int32_t ret = ClientTransUdpMgrInit(&g_sessionCb);
568 EXPECT_EQ(SOFTBUS_OK, ret);
569
570 UdpChannel *newChannel = reinterpret_cast<UdpChannel *>(SoftBusCalloc(sizeof(UdpChannel)));
571 ASSERT_NE(newChannel, nullptr);
572 newChannel->channelId = channelId;
573 newChannel->isEnable = false;
574 newChannel->dfileId = TEST_ERR_SESSIONID;
575 ret = ClientTransAddUdpChannel(newChannel);
576 EXPECT_EQ(SOFTBUS_OK, ret);
577
578 ret = TransUdpChannelSendFile(channelId, sFileList, dFileList, fileCnt);
579 EXPECT_EQ(SOFTBUS_TRANS_UDP_CHANNEL_DISABLE, ret);
580 ret = TransDeleteUdpChannel(channelId);
581 EXPECT_EQ(SOFTBUS_OK, ret);
582
583 newChannel = reinterpret_cast<UdpChannel *>(SoftBusCalloc(sizeof(UdpChannel)));
584 ASSERT_NE(newChannel, nullptr);
585 newChannel->channelId = channelId;
586 newChannel->isEnable = true;
587 newChannel->dfileId = TEST_SESSIONID;
588 ret = ClientTransAddUdpChannel(newChannel);
589 EXPECT_EQ(SOFTBUS_OK, ret);
590
591 ret = TransUdpChannelSendFile(channelId, sFileList, dFileList, fileCnt);
592 EXPECT_NE(SOFTBUS_OK, ret);
593
594 ret = TransDeleteUdpChannel(channelId);
595 EXPECT_EQ(SOFTBUS_OK, ret);
596 ClientTransUdpMgrDeinit();
597 }
598
599 /**
600 * @tc.name: TransLimitChangeTest002
601 * @tc.desc: trans limit change test, use the wrong or normal parameter.
602 * @tc.type: FUNC
603 * @tc.require:
604 */
605 HWTEST_F(ClientTransUdpManagerTest, TransLimitChangeTest002, TestSize.Level0)
606 {
607 int32_t channelId = TEST_CHANNELID;
608
609 int32_t ret = ClientTransUdpMgrInit(&g_sessionCb);
610 EXPECT_EQ(SOFTBUS_OK, ret);
611
612 UdpChannel *newChannel = reinterpret_cast<UdpChannel *>(SoftBusCalloc(sizeof(UdpChannel)));
613 ASSERT_NE(newChannel, nullptr);
614 newChannel->channelId = channelId;
615 newChannel->businessType = BUSINESS_TYPE_FILE;
616 newChannel->info.isServer = true;
617 ret = ClientTransAddUdpChannel(newChannel);
618 EXPECT_EQ(SOFTBUS_OK, ret);
619
620 ret = TransLimitChange(channelId, FILE_PRIORITY_BK);
621 EXPECT_EQ(SOFTBUS_NOT_NEED_UPDATE, ret);
622 ret = TransDeleteUdpChannel(channelId);
623 EXPECT_EQ(SOFTBUS_OK, ret);
624
625 newChannel = reinterpret_cast<UdpChannel *>(SoftBusCalloc(sizeof(UdpChannel)));
626 ASSERT_NE(newChannel, nullptr);
627 newChannel->channelId = channelId;
628 newChannel->businessType = BUSINESS_TYPE_BYTE;
629 newChannel->info.isServer = false;
630 ret = ClientTransAddUdpChannel(newChannel);
631 EXPECT_EQ(SOFTBUS_OK, ret);
632
633 ret = TransLimitChange(channelId, FILE_PRIORITY_BK);
634 EXPECT_EQ(SOFTBUS_NOT_NEED_UPDATE, ret);
635
636 ret = TransDeleteUdpChannel(channelId);
637 EXPECT_EQ(SOFTBUS_OK, ret);
638 ClientTransUdpMgrDeinit();
639 }
640
641 /**
642 * @tc.name: TransLimitChangeTest003
643 * @tc.desc: trans limit change test, use the wrong or normal parameter.
644 * @tc.type: FUNC
645 * @tc.require:
646 */
647 HWTEST_F(ClientTransUdpManagerTest, TransLimitChangeTest003, TestSize.Level0)
648 {
649 int32_t channelId = TEST_CHANNELID;
650
651 int32_t ret = ClientTransUdpMgrInit(&g_sessionCb);
652 EXPECT_EQ(SOFTBUS_OK, ret);
653
654 UdpChannel *newChannel = reinterpret_cast<UdpChannel *>(SoftBusCalloc(sizeof(UdpChannel)));
655 ASSERT_NE(newChannel, nullptr);
656 newChannel->channelId = channelId;
657 newChannel->businessType = BUSINESS_TYPE_FILE;
658 newChannel->info.isServer = false;
659 newChannel->isTosSet = false;
660 newChannel->dfileId = TEST_ERR_SESSIONID;
661 ret = ClientTransAddUdpChannel(newChannel);
662 EXPECT_EQ(SOFTBUS_OK, ret);
663
664 ret = TransLimitChange(channelId, FILE_PRIORITY_BK);
665 EXPECT_EQ(SOFTBUS_OK, ret);
666 ret = TransDeleteUdpChannel(channelId);
667 EXPECT_EQ(SOFTBUS_OK, ret);
668
669 newChannel = reinterpret_cast<UdpChannel *>(SoftBusCalloc(sizeof(UdpChannel)));
670 ASSERT_NE(newChannel, nullptr);
671 newChannel->channelId = channelId;
672 newChannel->businessType = BUSINESS_TYPE_FILE;
673 newChannel->info.isServer = false;
674 newChannel->isTosSet = true;
675 newChannel->dfileId = TEST_ERR_SESSIONID;
676 ret = ClientTransAddUdpChannel(newChannel);
677 EXPECT_EQ(SOFTBUS_OK, ret);
678
679 ret = TransLimitChange(channelId, FILE_PRIORITY_BK);
680 EXPECT_EQ(SOFTBUS_NOT_NEED_UPDATE, ret);
681
682 ret = TransDeleteUdpChannel(channelId);
683 EXPECT_EQ(SOFTBUS_OK, ret);
684 ClientTransUdpMgrDeinit();
685 }
686
687 /**
688 * @tc.name: ClientEmitFileEventTest003
689 * @tc.desc: client emit file event test, use the wrong or normal parameter.
690 * @tc.type: FUNC
691 * @tc.require:
692 */
693 HWTEST_F(ClientTransUdpManagerTest, ClientEmitFileEventTest003, TestSize.Level0)
694 {
695 int32_t channelId = TEST_CHANNELID;
696
697 int32_t ret = ClientTransUdpMgrInit(&g_sessionCb);
698 EXPECT_EQ(SOFTBUS_OK, ret);
699
700 UdpChannel *newChannel = reinterpret_cast<UdpChannel *>(SoftBusCalloc(sizeof(UdpChannel)));
701 ASSERT_NE(newChannel, nullptr);
702 newChannel->channelId = channelId;
703 newChannel->businessType = BUSINESS_TYPE_FILE;
704 newChannel->dfileId = TEST_ERR_SESSIONID;
705 ret = ClientTransAddUdpChannel(newChannel);
706 EXPECT_EQ(SOFTBUS_OK, ret);
707
708 ret = ClientEmitFileEvent(channelId);
709 EXPECT_NE(SOFTBUS_NO_INIT, ret);
710
711 ret = TransDeleteUdpChannel(channelId);
712 EXPECT_EQ(SOFTBUS_OK, ret);
713 ClientTransUdpMgrDeinit();
714 }
715
716 /**
717 * @tc.name: TransSetUdpChanelSessionIdTest001
718 * @tc.desc: trans set udpchannel sessionid test, use the wrong or normal parameter.
719 * @tc.type: FUNC
720 * @tc.require:
721 */
722 HWTEST_F(ClientTransUdpManagerTest, TransSetUdpChanelSessionIdTest001, TestSize.Level0)
723 {
724 int32_t channelId = TEST_CHANNELID;
725 int32_t sessionId = TEST_SESSIONID;
726 int32_t ret = ClientTransUdpMgrInit(&g_sessionCb);
727 EXPECT_EQ(SOFTBUS_OK, ret);
728 ClientTransUdpMgrDeinit();
729
730 ret = TransSetUdpChanelSessionId(channelId, sessionId);
731 EXPECT_EQ(SOFTBUS_NO_INIT, ret);
732
733 ret = ClientTransUdpMgrInit(&g_sessionCb);
734 EXPECT_EQ(SOFTBUS_OK, ret);
735 UdpChannel *newChannel = reinterpret_cast<UdpChannel *>(SoftBusCalloc(sizeof(UdpChannel)));
736 ASSERT_NE(newChannel, nullptr);
737 newChannel->channelId = channelId;
738 ret = ClientTransAddUdpChannel(newChannel);
739 EXPECT_EQ(SOFTBUS_OK, ret);
740
741 ret = TransSetUdpChanelSessionId(channelId, sessionId);
742 EXPECT_EQ(SOFTBUS_OK, ret);
743
744 ret = TransDeleteUdpChannel(channelId);
745 EXPECT_EQ(SOFTBUS_OK, ret);
746 ClientTransUdpMgrDeinit();
747 }
748
OnRenameFileCb(RenameParam * renameParam)749 static void OnRenameFileCb(RenameParam *renameParam)
750 {
751 return;
752 }
753
754 /**
755 * @tc.name: TransSetUdpChannelRenameHookTest001
756 * @tc.desc: trans set udpchannel rename hook test, use the wrong or normal parameter.
757 * @tc.type: FUNC
758 * @tc.require:
759 */
760 HWTEST_F(ClientTransUdpManagerTest, TransSetUdpChannelRenameHookTest001, TestSize.Level0)
761 {
762 int32_t channelId = TEST_CHANNELID;
763 int32_t ret = ClientTransUdpMgrInit(&g_sessionCb);
764 EXPECT_EQ(SOFTBUS_OK, ret);
765 ClientTransUdpMgrDeinit();
766 OnRenameFileCallback onRenameFile = OnRenameFileCb;
767
768 ret = TransSetUdpChannelRenameHook(channelId, onRenameFile);
769 EXPECT_EQ(SOFTBUS_NO_INIT, ret);
770
771 ret = ClientTransUdpMgrInit(&g_sessionCb);
772 EXPECT_EQ(SOFTBUS_OK, ret);
773 UdpChannel *newChannel = reinterpret_cast<UdpChannel *>(SoftBusCalloc(sizeof(UdpChannel)));
774 ASSERT_NE(newChannel, nullptr);
775 newChannel->channelId = channelId;
776 newChannel->businessType = BUSINESS_TYPE_FILE;
777 ret = TransSetUdpChannelRenameHook(channelId, onRenameFile);
778 EXPECT_EQ(SOFTBUS_TRANS_UDP_CHANNEL_NOT_FOUND, ret);
779
780 ret = ClientTransAddUdpChannel(newChannel);
781 EXPECT_EQ(SOFTBUS_OK, ret);
782
783 ret = TransSetUdpChannelRenameHook(channelId, onRenameFile);
784 EXPECT_EQ(SOFTBUS_OK, ret);
785
786 ret = TransDeleteUdpChannel(channelId);
787 EXPECT_EQ(SOFTBUS_OK, ret);
788 ClientTransUdpMgrDeinit();
789 }
790
791 /**
792 * @tc.name: TransSetUdpChannelTosTest001
793 * @tc.desc: trans set udpchannel tos test, use the wrong or normal parameter.
794 * @tc.type: FUNC
795 * @tc.require:
796 */
797 HWTEST_F(ClientTransUdpManagerTest, TransSetUdpChannelTosTest001, TestSize.Level0)
798 {
799 int32_t channelId = TEST_CHANNELID;
800 int32_t ret = ClientTransUdpMgrInit(&g_sessionCb);
801 EXPECT_EQ(SOFTBUS_OK, ret);
802 ClientTransUdpMgrDeinit();
803
804 ret = TransSetUdpChannelTos(channelId);
805 EXPECT_EQ(SOFTBUS_NO_INIT, ret);
806
807 ret = ClientTransUdpMgrInit(&g_sessionCb);
808 EXPECT_EQ(SOFTBUS_OK, ret);
809 UdpChannel *newChannel = reinterpret_cast<UdpChannel *>(SoftBusCalloc(sizeof(UdpChannel)));
810 ASSERT_NE(newChannel, nullptr);
811 newChannel->channelId = channelId;
812
813 ret = ClientTransAddUdpChannel(newChannel);
814 EXPECT_EQ(SOFTBUS_OK, ret);
815
816 ret = TransSetUdpChannelTos(channelId);
817 EXPECT_EQ(SOFTBUS_OK, ret);
818
819 ret = TransDeleteUdpChannel(channelId);
820 EXPECT_EQ(SOFTBUS_OK, ret);
821 ClientTransUdpMgrDeinit();
822 }
823
824 /**
825 * @tc.name: TransGetUdpChannelTosTest002
826 * @tc.desc: trans get udpchannel tos test, use the wrong or normal parameter.
827 * @tc.type: FUNC
828 * @tc.require:
829 */
830 HWTEST_F(ClientTransUdpManagerTest, TransGetUdpChannelTosTest002, TestSize.Level0)
831 {
832 int32_t channelId = TEST_CHANNELID;
833 bool isTosSet = false;
834 int32_t ret = ClientTransUdpMgrInit(&g_sessionCb);
835 EXPECT_EQ(SOFTBUS_OK, ret);
836 ClientTransUdpMgrDeinit();
837
838 ret = TransGetUdpChannelTos(channelId, &isTosSet);
839 EXPECT_EQ(SOFTBUS_NO_INIT, ret);
840
841 ret = ClientTransUdpMgrInit(&g_sessionCb);
842 EXPECT_EQ(SOFTBUS_OK, ret);
843 UdpChannel *newChannel = reinterpret_cast<UdpChannel *>(SoftBusCalloc(sizeof(UdpChannel)));
844 ASSERT_NE(newChannel, nullptr);
845 newChannel->channelId = channelId;
846
847 ret = ClientTransAddUdpChannel(newChannel);
848 EXPECT_EQ(SOFTBUS_OK, ret);
849
850 ret = TransGetUdpChannelTos(channelId, &isTosSet);
851 EXPECT_EQ(SOFTBUS_OK, ret);
852
853 ret = TransDeleteUdpChannel(channelId);
854 EXPECT_EQ(SOFTBUS_OK, ret);
855 ClientTransUdpMgrDeinit();
856 }
857 } // namespace OHOS
858