1 /*
2 * Copyright (c) 2021 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 "net_trans_common.h"
19 #include "wifi_utils.h"
20 #include "accesstoken_kit.h"
21
22 static int g_waitFlag = WAIT_DEF_VALUE;
23
FileSessionOpened(int sessionId,int result)24 static int FileSessionOpened(int sessionId, int result)
25 {
26 LOG("[cb][file]open session sid[%d],rst[%d]", sessionId, result);
27 if (result == SOFTBUS_OK) {
28 g_waitFlag = WAIT_SUCCESS_VALUE;
29 } else {
30 g_waitFlag = WAIT_FAIL_VALUE;
31 }
32 return SOFTBUS_OK;
33 }
34
FileSessionClosed(int sessionId)35 static void FileSessionClosed(int sessionId)
36 {
37 LOG("[cb][file]close session sid[%d]", sessionId);
38 }
39
FileBytesReceived(int sessionId,const void * data,unsigned int dataLen)40 static void FileBytesReceived(int sessionId, const void* data, unsigned int dataLen)
41 {
42 LOG("[cb][file]ByteRec sid:%d, data len:%d", sessionId, dataLen);
43 if (data == NULL) {
44 LOG("[cb][file]ByteRec invalid data=null sid[%d]", sessionId);
45 g_waitFlag = WAIT_FAIL_VALUE;
46 } else {
47 g_waitFlag = WAIT_SUCCESS_VALUE;
48 }
49 }
50
FileMessageReceived(int sessionId,const void * data,unsigned int dataLen)51 static void FileMessageReceived(int sessionId, const void* data, unsigned int dataLen)
52 {
53 LOG("[cb][file]MessageRec sid:%d, data len:%d", sessionId, dataLen);
54 if (data == NULL) {
55 LOG("[cb][file]MessageRec invalid data=null sid[%d]", sessionId);
56 g_waitFlag = WAIT_FAIL_VALUE;
57 } else {
58 g_waitFlag = WAIT_SUCCESS_VALUE;
59 }
60 }
61
62 static SessionAttribute g_fileSessionAttr = {
63 .dataType = TYPE_FILE,
64 };
65
66 static SessionAttribute g_fileSessionAttrP2P = {
67 .dataType = TYPE_FILE,
68 .linkTypeNum = 1,
69 .linkType[0] = LINK_TYPE_WIFI_P2P,
70 };
71
72 static ISessionListener g_fileSessionListener = {
73 .OnSessionOpened = FileSessionOpened,
74 .OnSessionClosed = FileSessionClosed,
75 .OnBytesReceived = FileBytesReceived,
76 .OnMessageReceived = FileMessageReceived,
77 };
78
79
80 using namespace testing::ext;
81
82 class TransFileFuncTest : public testing::Test {
83 public:
84 // 测试套前置和后置操作
85 static void SetUpTestCase();
86 static void TearDownTestCase();
87
88 // 测试用例前置和后置操作
89 void SetUp();
90 void TearDown();
91 };
92
SetUp()93 void TransFileFuncTest::SetUp() {
94 // set listener
95 int ret = SetFileSendListener(DEF_PKG_NAME, SESSION_NAME_FILE, GetSendFileListener());
96 EXPECT_EQ(SOFTBUS_OK, ret) << "call SetFileSendListener fail";
97 ret = SetFileReceiveListener(DEF_PKG_NAME, SESSION_NAME_FILE, GetRecvFileListener(), RECV_FILE_PATH);
98 EXPECT_EQ(SOFTBUS_OK, ret) << "call SetFileSendListener fail";
99 }
100
TearDown()101 void TransFileFuncTest::TearDown() {}
102
SetUpTestCase()103 void TransFileFuncTest::SetUpTestCase()
104 {
105 LOG("SetUp begin");
106 AddPermission();
107 sleep(1);
108 system("pidof accesstoken_service | xargs kill -9");
109 sleep(1);
110 TestSetUp();
111 int ret = RegisterDeviceStateDefCallback();
112 EXPECT_EQ(SOFTBUS_OK, ret) << "call reg node state callback fail";
113
114 ret = CheckRemoteDeviceIsNull(BOOL_TRUE);
115 ASSERT_EQ(SOFTBUS_OK, ret) << "get node fail,please check network";
116
117 system(" truncate -s 0M /data/A.tar");
118 system(" truncate -s 8M /data/8M.tar");
119 system(" truncate -s 8M /data/8M_DNull.tar");
120 system(" truncate -s 400M /data/big.tar");
121 sleepn(5);
122 system(" truncate -s 8M /data/richu.jpg");
123 system(" truncate -s 3M /data/richu-002.jpg");
124 system(" truncate -s 10M /data/richu-003.jpg");
125
126 LOG("SetUp end");
127 }
128
TearDownTestCase()129 void TransFileFuncTest::TearDownTestCase()
130 {
131 int ret = UnRegisterDeviceStateDefCallback();
132 EXPECT_EQ(SOFTBUS_OK, ret) << "call unReg node state callback fail";
133
134 TestTearDown();
135 }
136
WaitFile(int timeout)137 static int WaitFile(int timeout)
138 {
139 LOG("start waitfile,timeout:%d", timeout);
140 int count = 0;
141 int t = timeout;
142 while (t > 0) {
143 sleep(1);
144 if (g_waitFlag != WAIT_DEF_VALUE) {
145 LOG("waitfile success[flag:%d][time:%d]", g_waitFlag, count);
146 break;
147 }
148 t--;
149 count++;
150 }
151 if (g_waitFlag != WAIT_SUCCESS_VALUE) {
152 LOG("waitfile fail[exp:%d, real:%d][used time:%d]", WAIT_SUCCESS_VALUE, g_waitFlag, count);
153 return SOFTBUS_ERR;
154 }
155 return SOFTBUS_OK;
156 }
157
158 /**
159 * @tc.number : SUB_DSoftbus_Spec_DCTS_SendFile_0100
160 * @tc.name : test SendFile 8M
161 * @tc.desc : [G-DISTRIBUTED-0208] 必须支持蓝牙 WiFi或以太网等软总线依赖的通信能力中的一种或者多种
162 * @tc.type : FUNC
163 * @tc.size : MediumTest
164 */
165 HWTEST_F(TransFileFuncTest, SUB_DSoftbus_Spec_DCTS_SendFile_0100, TestSize.Level2)
166 {
167 int ret;
168 ret = CreateSessionServer(DEF_PKG_NAME, SESSION_NAME_FILE, &g_fileSessionListener);
169 EXPECT_EQ(SOFTBUS_OK, ret) << "CreateSS[file] fail";
170
171 g_waitFlag = WAIT_DEF_VALUE;
172 int sid = OpenSession(SESSION_NAME_FILE, SESSION_NAME_FILE, GetNetworkId(), DEF_GROUP_ID, &g_fileSessionAttr);
173 EXPECT_TRUE(sid >= SESSION_ID_MIN) << "call OpenSession[file] fail, sid=" << sid;
174 if (sid >= SESSION_ID_MIN) {
175 ret = WaitFile(10);
176 EXPECT_EQ(SOFTBUS_OK, ret) << "wait opensession fail[file]";
177 }
178
179 static const char* g_fileOne[] = {
180 "/data/8M.tar",
181 };
182
183 static const char *dfileList[] = {
184 "/data/8M.tar",
185 };
186
187 ResetWaitFlag();
188 ret = SendFile(sid, g_fileOne, dfileList, 1);
189 EXPECT_EQ(SOFTBUS_OK, ret) << "call SendFile fail";
190 ret = Wait(10);
191 EXPECT_EQ(SOFTBUS_OK, ret) << "wait send fail rst fail";
192
193 CloseSession(sid);
194 ret = RemoveSessionServer(DEF_PKG_NAME, SESSION_NAME_FILE);
195 EXPECT_EQ(SOFTBUS_OK, ret) << "RemoveSS[proxy] fail";
196 }
197
198 /**
199 * @tc.number : SUB_DSoftbus_Spec_DCTS_SendFile_0200
200 * @tc.name : test SendFile 0M
201 * @tc.desc : Test send file function
202 * @tc.type : FUNC
203 * @tc.size : MediumTest
204 */
205 HWTEST_F(TransFileFuncTest, SUB_DSoftbus_Spec_DCTS_SendFile_0200, TestSize.Level2)
206 {
207 int ret;
208 ret = CreateSessionServer(DEF_PKG_NAME, SESSION_NAME_FILE, &g_fileSessionListener);
209 EXPECT_EQ(SOFTBUS_OK, ret) << "CreateSS[file] fail";
210
211 g_waitFlag = WAIT_DEF_VALUE;
212 int sid = OpenSession(SESSION_NAME_FILE, SESSION_NAME_FILE, GetNetworkId(), DEF_GROUP_ID, &g_fileSessionAttr);
213 EXPECT_TRUE(sid >= SESSION_ID_MIN) << "call OpenSession[file] fail, sid=" << sid;
214 if (sid >= SESSION_ID_MIN) {
215 ret = WaitFile(10);
216 EXPECT_EQ(SOFTBUS_OK, ret) << "wait opensession fail[file]";
217 }
218
219 static const char* g_fileOne[] = {
220 "/data/A.tar",
221 };
222
223 static const char *dfileList[] = {
224 "/data/A_recv.tar",
225 };
226
227 ResetWaitFlag();
228 ret = SendFile(sid, g_fileOne, dfileList, 1);
229 EXPECT_EQ(SOFTBUS_OK, ret) << "call SendFile fail";
230 ret = Wait(10);
231 EXPECT_EQ(SOFTBUS_OK, ret) << "wait send fail rst fail";
232
233 CloseSession(sid);
234 ret = RemoveSessionServer(DEF_PKG_NAME, SESSION_NAME_FILE);
235 EXPECT_EQ(SOFTBUS_OK, ret) << "RemoveSS[proxy] fail";
236 }
237
238 /**
239 * @tc.number : SUB_DSoftbus_Spec_DCTS_SendFile_0300
240 * @tc.name : SendFile the sender address is empty ,send failed
241 * @tc.desc : Test send file function
242 * @tc.type : FUNC
243 * @tc.size : MediumTest
244 */
245 HWTEST_F(TransFileFuncTest, SUB_DSoftbus_Spec_DCTS_SendFile_0300, TestSize.Level2)
246 {
247 int ret;
248 ret = CreateSessionServer(DEF_PKG_NAME, SESSION_NAME_FILE, &g_fileSessionListener);
249 EXPECT_EQ(SOFTBUS_OK, ret) << "CreateSS[file] fail";
250
251 g_waitFlag = WAIT_DEF_VALUE;
252 int sid = OpenSession(SESSION_NAME_FILE, SESSION_NAME_FILE, GetNetworkId(), DEF_GROUP_ID, &g_fileSessionAttr);
253 EXPECT_TRUE(sid >= SESSION_ID_MIN) << "call OpenSession[file] fail, sid=" << sid;
254 if (sid >= SESSION_ID_MIN) {
255 ret = WaitFile(10);
256 EXPECT_EQ(SOFTBUS_OK, ret) << "wait opensession fail[file]";
257 }
258
259 static const char *dfileList[] = {
260 "/data/SNULL.tar",
261 };
262
263 ResetWaitFlag();
264 ret = SendFile(sid, NULL, dfileList, 1);
265 EXPECT_NE(SOFTBUS_OK, ret) << "call SendFile successful";
266
267 CloseSession(sid);
268 ret = RemoveSessionServer(DEF_PKG_NAME, SESSION_NAME_FILE);
269 EXPECT_EQ(SOFTBUS_OK, ret) << "RemoveSS[proxy] fail";
270 }
271
272 /**
273 * @tc.number : SUB_DSoftbus_Spec_DCTS_SendFile_0400
274 * @tc.name : SendFile the sender address is invalid ,send failed
275 * @tc.desc : Test send file function
276 * @tc.type : FUNC
277 * @tc.size : MediumTest
278 */
279 HWTEST_F(TransFileFuncTest, SUB_DSoftbus_Spec_DCTS_SendFile_0400, TestSize.Level2)
280 {
281 int ret;
282 ret = CreateSessionServer(DEF_PKG_NAME, SESSION_NAME_FILE, &g_fileSessionListener);
283 EXPECT_EQ(SOFTBUS_OK, ret) << "CreateSS[file] fail";
284
285 g_waitFlag = WAIT_DEF_VALUE;
286 int sid = OpenSession(SESSION_NAME_FILE, SESSION_NAME_FILE, GetNetworkId(), DEF_GROUP_ID, &g_fileSessionAttr);
287 EXPECT_TRUE(sid >= SESSION_ID_MIN) << "call OpenSession[file] fail, sid=" << sid;
288 if (sid >= SESSION_ID_MIN) {
289 ret = WaitFile(10);
290 EXPECT_EQ(SOFTBUS_OK, ret) << "wait opensession fail[file]";
291 }
292
293 static const char *g_fileOne[] = {
294 "/data/sendfile/8M.tar",
295 };
296
297 static const char *dfileList[] = {
298 "/data/8M_invalid.tar",
299 };
300
301 ResetWaitFlag();
302 ret = SendFile(sid, g_fileOne, dfileList, 1);
303 EXPECT_NE(SOFTBUS_OK, ret) << "call SendFile successful";
304
305 CloseSession(sid);
306 ret = RemoveSessionServer(DEF_PKG_NAME, SESSION_NAME_FILE);
307 EXPECT_EQ(SOFTBUS_OK, ret) << "RemoveSS[proxy] fail";
308 }
309
310 /**
311 * @tc.number : SUB_DSoftbus_Spec_DCTS_SendFile_0500
312 * @tc.name : SendFile the receiving address is null ,send successful
313 * @tc.desc : Test send file function
314 * @tc.type : FUNC
315 * @tc.size : MediumTest
316 */
317 HWTEST_F(TransFileFuncTest, SUB_DSoftbus_Spec_DCTS_SendFile_0500, TestSize.Level2)
318 {
319 int ret;
320 ret = CreateSessionServer(DEF_PKG_NAME, SESSION_NAME_FILE, &g_fileSessionListener);
321 EXPECT_EQ(SOFTBUS_OK, ret) << "CreateSS[file] fail";
322
323 g_waitFlag = WAIT_DEF_VALUE;
324 int sid = OpenSession(SESSION_NAME_FILE, SESSION_NAME_FILE, GetNetworkId(), DEF_GROUP_ID, &g_fileSessionAttr);
325 EXPECT_TRUE(sid >= SESSION_ID_MIN) << "call OpenSession[file] fail, sid=" << sid;
326 if (sid >= SESSION_ID_MIN) {
327 ret = WaitFile(10);
328 EXPECT_EQ(SOFTBUS_OK, ret) << "wait opensession fail[file]";
329 }
330
331 static const char* g_fileOne[] = {
332 "/data/8M_DNull.tar",
333 };
334
335 ResetWaitFlag();
336 ret = SendFile(sid, g_fileOne, NULL, 1);
337 EXPECT_EQ(SOFTBUS_OK, ret) << "call SendFile fail";
338 ret = Wait(15);
339 EXPECT_EQ(SOFTBUS_OK, ret) << "wait send fail rst fail";
340
341 CloseSession(sid);
342 ret = RemoveSessionServer(DEF_PKG_NAME, SESSION_NAME_FILE);
343 EXPECT_EQ(SOFTBUS_OK, ret) << "RemoveSS[proxy] fail";
344 }
345
346 /**
347 * @tc.number : SUB_DSoftbus_Spec_DCTS_SendFile_0600
348 * @tc.name : SendFile the receiving address is invalid ,send successful
349 * @tc.desc : Test send file function
350 * @tc.type : FUNC
351 * @tc.size : MediumTest
352 */
353 HWTEST_F(TransFileFuncTest, SUB_DSoftbus_Spec_DCTS_SendFile_0600, TestSize.Level2)
354 {
355 int ret;
356 ret = CreateSessionServer(DEF_PKG_NAME, SESSION_NAME_FILE, &g_fileSessionListener);
357 EXPECT_EQ(SOFTBUS_OK, ret) << "CreateSS[file] fail";
358
359 g_waitFlag = WAIT_DEF_VALUE;
360 int sid = OpenSession(SESSION_NAME_FILE, SESSION_NAME_FILE, GetNetworkId(), DEF_GROUP_ID, &g_fileSessionAttr);
361 EXPECT_TRUE(sid >= SESSION_ID_MIN) << "call OpenSession[file] fail, sid=" << sid;
362 if (sid >= SESSION_ID_MIN) {
363 ret = WaitFile(10);
364 EXPECT_EQ(SOFTBUS_OK, ret) << "wait opensession fail[file]";
365 }
366
367 static const char* g_fileOne[] = {
368 "/data/8M.tar",
369 };
370
371 static const char *dfileList[] = {
372 "/sendfile/8M_invalid.tar",
373 };
374
375 ResetWaitFlag();
376 ret = SendFile(sid, g_fileOne, dfileList, 1);
377 EXPECT_EQ(SOFTBUS_OK, ret) << "call SendFile fail";
378 ret = Wait(15);
379 EXPECT_EQ(SOFTBUS_OK, ret) << "wait send fail rst fail";
380
381 CloseSession(sid);
382 ret = RemoveSessionServer(DEF_PKG_NAME, SESSION_NAME_FILE);
383 EXPECT_EQ(SOFTBUS_OK, ret) << "RemoveSS[proxy] fail";
384 }
385
386 /**
387 * @tc.number : SUB_DSoftbus_Spec_DCTS_SendFile_0700
388 * @tc.name : SendFile close session ,send failed
389 * @tc.desc : Test send file function
390 * @tc.type : FUNC
391 * @tc.size : MediumTest
392 */
393 HWTEST_F(TransFileFuncTest, SUB_DSoftbus_Spec_DCTS_SendFile_0700, TestSize.Level2)
394 {
395 int ret;
396 ret = CreateSessionServer(DEF_PKG_NAME, SESSION_NAME_FILE, &g_fileSessionListener);
397 EXPECT_EQ(SOFTBUS_OK, ret) << "CreateSS[file] fail";
398
399 g_waitFlag = WAIT_DEF_VALUE;
400 int sid = OpenSession(SESSION_NAME_FILE, SESSION_NAME_FILE, GetNetworkId(), DEF_GROUP_ID, &g_fileSessionAttr);
401 EXPECT_TRUE(sid >= SESSION_ID_MIN) << "call OpenSession[file] fail, sid=" << sid;
402 if (sid >= SESSION_ID_MIN) {
403 ret = WaitFile(10);
404 EXPECT_EQ(SOFTBUS_OK, ret) << "wait opensession fail[file]";
405 }
406
407 static const char* g_fileOne[] = {
408 "/data/big.tar",
409 };
410
411 static const char *dfileList[] = {
412 "/sendfile/big.tar",
413 };
414
415 ResetWaitFlag();
416 ret = SendFile(sid, g_fileOne, dfileList, 1);
417 EXPECT_EQ(SOFTBUS_OK, ret) << "call SendFile fail";
418
419 CloseSession(sid);
420 ret = Wait(15);
421 EXPECT_NE(SOFTBUS_OK, ret) << "wait send success ,expect fail";
422
423 ret = RemoveSessionServer(DEF_PKG_NAME, SESSION_NAME_FILE);
424 EXPECT_EQ(SOFTBUS_OK, ret) << "RemoveSS[proxy] fail";
425 }
426
427 /**
428 * @tc.number : SUB_DSoftbus_Spec_DCTS_SendFile_0800
429 * @tc.name : SendFile set recev listening address to be null or invalid
430 * @tc.desc : Test send file function
431 * @tc.type : FUNC
432 * @tc.size : MediumTest
433 */
434 HWTEST_F(TransFileFuncTest, SUB_DSoftbus_Spec_DCTS_SendFile_0800, TestSize.Level2)
435 {
436 int ret = SetFileReceiveListener(DEF_PKG_NAME, SESSION_NAME_FILE, GetRecvFileListener(), NULL);
437 EXPECT_NE(SOFTBUS_OK, ret) << "call SetFileSendListener fail";
438 }
439
440 /**
441 * @tc.number : SUB_DSoftbus_Spec_DCTS_SendFile_0900
442 * @tc.name : Send 4 files once
443 * @tc.desc : [G-DISTRIBUTED-0206]禁止修改传输的默认协议,新增或者变更默认传输协议必须通过协商机制来实现
444 * @tc.type : FUNC
445 * @tc.size : MediumTest
446 */
447 HWTEST_F(TransFileFuncTest, SUB_DSoftbus_Spec_DCTS_SendFile_0900, TestSize.Level2)
448 {
449 int ret;
450 ret = CreateSessionServer(DEF_PKG_NAME, SESSION_NAME_FILE, &g_fileSessionListener);
451 EXPECT_EQ(SOFTBUS_OK, ret) << "CreateSS[file] fail";
452
453 g_waitFlag = WAIT_DEF_VALUE;
454 int sid = OpenSession(SESSION_NAME_FILE, SESSION_NAME_FILE, GetNetworkId(), DEF_GROUP_ID, &g_fileSessionAttr);
455 EXPECT_TRUE(sid >= SESSION_ID_MIN) << "call OpenSession[file] fail, sid=" << sid;
456 if (sid >= SESSION_ID_MIN) {
457 ret = WaitFile(10);
458 EXPECT_EQ(SOFTBUS_OK, ret) << "wait opensession fail[file]";
459 }
460
461 static const char* g_fileOne[] = {
462 "/data/big.tar",
463 "/data/richu.jpg",
464 "/data/richu-002.jpg",
465 "/data/richu-003.jpg",
466 };
467
468 ResetWaitFlag();
469 ret = SendFile(sid, g_fileOne, NULL, 4);
470 EXPECT_EQ(SOFTBUS_OK, ret) << "call SendFile fail";
471 ret = Wait(350);
472 EXPECT_EQ(SOFTBUS_OK, ret) << "wait send fail rst fail";
473
474 CloseSession(sid);
475 ret = RemoveSessionServer(DEF_PKG_NAME, SESSION_NAME_FILE);
476 EXPECT_EQ(SOFTBUS_OK, ret) << "RemoveSS[proxy] fail";
477 }
478
479 /**
480 * @tc.number : SUB_DSoftbus_Spec_DCTS_SendFile_P2P_0100
481 * @tc.name : test SendFile 8M By P2P
482 * @tc.desc : [G-DISTRIBUTED-0206]禁止修改传输的默认协议,新增或者变更默认传输协议必须通过协商机制来实现
483 * @tc.type : FUNC
484 * @tc.size : MediumTest
485 */
486 HWTEST_F(TransFileFuncTest, SUB_DSoftbus_Spec_DCTS_SendFile_P2P_0100, TestSize.Level2)
487 {
488 int ret;
489 ret = CreateSessionServer(DEF_PKG_NAME, SESSION_NAME_FILE, &g_fileSessionListener);
490 EXPECT_EQ(SOFTBUS_OK, ret) << "CreateSS[file] fail";
491
492 g_waitFlag = WAIT_DEF_VALUE;
493 int sid = OpenSession(SESSION_NAME_FILE, SESSION_NAME_FILE, GetNetworkId(), DEF_GROUP_ID, &g_fileSessionAttrP2P);
494 EXPECT_TRUE(sid >= SESSION_ID_MIN) << "call OpenSession[file] fail, sid=" << sid;
495 if (sid >= SESSION_ID_MIN) {
496 ret = WaitFile(10);
497 EXPECT_EQ(SOFTBUS_OK, ret) << "wait opensession fail[file]";
498 }
499
500 static const char* g_fileOne[] = {
501 "/data/8M.tar",
502 };
503
504 static const char *dfileList[] = {
505 "/data/P2P/8M.tar",
506 };
507
508 ResetWaitFlag();
509 ret = SendFile(sid, g_fileOne, dfileList, 1);
510 EXPECT_EQ(SOFTBUS_OK, ret) << "call SendFile fail";
511 ret = Wait(10);
512 EXPECT_EQ(SOFTBUS_OK, ret) << "wait send fail rst fail";
513
514 CloseSession(sid);
515 ret = RemoveSessionServer(DEF_PKG_NAME, SESSION_NAME_FILE);
516 EXPECT_EQ(SOFTBUS_OK, ret) << "RemoveSS[proxy] fail";
517 }
518
519 /**
520 * @tc.number : SUB_DSoftbus_Spec_DCTS_SendFile_P2P_0200
521 * @tc.name : test SendFile 0M By P2P
522 * @tc.desc : Test send file function
523 * @tc.type : FUNC
524 * @tc.size : MediumTest
525 */
526 HWTEST_F(TransFileFuncTest, SUB_DSoftbus_Spec_DCTS_SendFile_P2P_0200, TestSize.Level2)
527 {
528 int ret;
529 ret = CreateSessionServer(DEF_PKG_NAME, SESSION_NAME_FILE, &g_fileSessionListener);
530 EXPECT_EQ(SOFTBUS_OK, ret) << "CreateSS[file] fail";
531
532 g_waitFlag = WAIT_DEF_VALUE;
533 int sid = OpenSession(SESSION_NAME_FILE, SESSION_NAME_FILE, GetNetworkId(), DEF_GROUP_ID, &g_fileSessionAttrP2P);
534 EXPECT_TRUE(sid >= SESSION_ID_MIN) << "call OpenSession[file] fail, sid=" << sid;
535 if (sid >= SESSION_ID_MIN) {
536 ret = WaitFile(10);
537 EXPECT_EQ(SOFTBUS_OK, ret) << "wait opensession fail[file]";
538 }
539
540 static const char* g_fileOne[] = {
541 "/data/A.tar",
542 };
543
544 static const char *dfileList[] = {
545 "/data/P2P/A_recv.tar",
546 };
547
548 ResetWaitFlag();
549 ret = SendFile(sid, g_fileOne, dfileList, 1);
550 EXPECT_EQ(SOFTBUS_OK, ret) << "call SendFile fail";
551 ret = Wait(10);
552 EXPECT_EQ(SOFTBUS_OK, ret) << "wait send fail rst fail";
553
554 CloseSession(sid);
555 ret = RemoveSessionServer(DEF_PKG_NAME, SESSION_NAME_FILE);
556 EXPECT_EQ(SOFTBUS_OK, ret) << "RemoveSS[proxy] fail";
557 }
558
559 /**
560 * @tc.number : SUB_DSoftbus_Spec_DCTS_SendFile_P2P_0300
561 * @tc.name : SendFile By P2P the sender address is empty ,send failed
562 * @tc.desc : Test send file function
563 * @tc.type : FUNC
564 * @tc.size : MediumTest
565 */
566 HWTEST_F(TransFileFuncTest, SUB_DSoftbus_Spec_DCTS_SendFile_P2P_0300, TestSize.Level2)
567 {
568 int ret;
569 ret = CreateSessionServer(DEF_PKG_NAME, SESSION_NAME_FILE, &g_fileSessionListener);
570 EXPECT_EQ(SOFTBUS_OK, ret) << "CreateSS[file] fail";
571
572 g_waitFlag = WAIT_DEF_VALUE;
573 int sid = OpenSession(SESSION_NAME_FILE, SESSION_NAME_FILE, GetNetworkId(), DEF_GROUP_ID, &g_fileSessionAttrP2P);
574 EXPECT_TRUE(sid >= SESSION_ID_MIN) << "call OpenSession[file] fail, sid=" << sid;
575 if (sid >= SESSION_ID_MIN) {
576 ret = WaitFile(10);
577 EXPECT_EQ(SOFTBUS_OK, ret) << "wait opensession fail[file]";
578 }
579
580 static const char *dfileList[] = {
581 "/data/P2P/SNULL.tar",
582 };
583
584 ResetWaitFlag();
585 ret = SendFile(sid, NULL, dfileList, 1);
586 EXPECT_NE(SOFTBUS_OK, ret) << "call SendFile successful";
587
588 CloseSession(sid);
589 ret = RemoveSessionServer(DEF_PKG_NAME, SESSION_NAME_FILE);
590 EXPECT_EQ(SOFTBUS_OK, ret) << "RemoveSS[proxy] fail";
591 }
592
593 /**
594 * @tc.number : SUB_DSoftbus_Spec_DCTS_SendFile_P2P_0400
595 * @tc.name : SendFile By P2P the sender address is invalid ,send failed
596 * @tc.desc : Test send file function
597 * @tc.type : FUNC
598 * @tc.size : MediumTest
599 */
600 HWTEST_F(TransFileFuncTest, SUB_DSoftbus_Spec_DCTS_SendFile_P2P_0400, TestSize.Level2)
601 {
602 int ret;
603 ret = CreateSessionServer(DEF_PKG_NAME, SESSION_NAME_FILE, &g_fileSessionListener);
604 EXPECT_EQ(SOFTBUS_OK, ret) << "CreateSS[file] fail";
605
606 g_waitFlag = WAIT_DEF_VALUE;
607 int sid = OpenSession(SESSION_NAME_FILE, SESSION_NAME_FILE, GetNetworkId(), DEF_GROUP_ID, &g_fileSessionAttrP2P);
608 EXPECT_TRUE(sid >= SESSION_ID_MIN) << "call OpenSession[file] fail, sid=" << sid;
609 if (sid >= SESSION_ID_MIN) {
610 ret = WaitFile(10);
611 EXPECT_EQ(SOFTBUS_OK, ret) << "wait opensession fail[file]";
612 }
613
614 static const char *g_fileOne[] = {
615 "/data/sendfile/8M.tar",
616 };
617
618 static const char *dfileList[] = {
619 "/data/P2P/8M_invalid.tar",
620 };
621
622 ResetWaitFlag();
623 ret = SendFile(sid, g_fileOne, dfileList, 1);
624 EXPECT_NE(SOFTBUS_OK, ret) << "call SendFile successful";
625
626 CloseSession(sid);
627 ret = RemoveSessionServer(DEF_PKG_NAME, SESSION_NAME_FILE);
628 EXPECT_EQ(SOFTBUS_OK, ret) << "RemoveSS[proxy] fail";
629 }
630
631 /**
632 * @tc.number : SUB_DSoftbus_Spec_DCTS_SendFile_P2P_0500
633 * @tc.name : SendFile By P2P the receiving address is null ,send successful
634 * @tc.desc : Test send file function
635 * @tc.type : FUNC
636 * @tc.size : MediumTest
637 */
638 HWTEST_F(TransFileFuncTest, SUB_DSoftbus_Spec_DCTS_SendFile_P2P_0500, TestSize.Level2)
639 {
640 int ret;
641 ret = CreateSessionServer(DEF_PKG_NAME, SESSION_NAME_FILE, &g_fileSessionListener);
642 EXPECT_EQ(SOFTBUS_OK, ret) << "CreateSS[file] fail";
643
644 g_waitFlag = WAIT_DEF_VALUE;
645 int sid = OpenSession(SESSION_NAME_FILE, SESSION_NAME_FILE, GetNetworkId(), DEF_GROUP_ID, &g_fileSessionAttrP2P);
646 EXPECT_TRUE(sid >= SESSION_ID_MIN) << "call OpenSession[file] fail, sid=" << sid;
647 if (sid >= SESSION_ID_MIN) {
648 ret = WaitFile(10);
649 EXPECT_EQ(SOFTBUS_OK, ret) << "wait opensession fail[file]";
650 }
651
652 static const char* g_fileOne[] = {
653 "/data/8M_DNull.tar",
654 };
655
656 ResetWaitFlag();
657 ret = SendFile(sid, g_fileOne, NULL, 1);
658 EXPECT_EQ(SOFTBUS_OK, ret) << "call SendFile fail";
659 ret = Wait(15);
660 EXPECT_EQ(SOFTBUS_OK, ret) << "wait send fail rst fail";
661
662 CloseSession(sid);
663 ret = RemoveSessionServer(DEF_PKG_NAME, SESSION_NAME_FILE);
664 EXPECT_EQ(SOFTBUS_OK, ret) << "RemoveSS[proxy] fail";
665 }
666
667 /**
668 * @tc.number : SUB_DSoftbus_Spec_DCTS_SendFile_P2P_0600
669 * @tc.name : SendFile By P2P the receiving address is invalid ,send successful
670 * @tc.desc : Test send file function
671 * @tc.type : FUNC
672 * @tc.size : MediumTest
673 */
674 HWTEST_F(TransFileFuncTest, SUB_DSoftbus_Spec_DCTS_SendFile_P2P_0600, TestSize.Level2)
675 {
676 int ret;
677 ret = CreateSessionServer(DEF_PKG_NAME, SESSION_NAME_FILE, &g_fileSessionListener);
678 EXPECT_EQ(SOFTBUS_OK, ret) << "CreateSS[file] fail";
679
680 g_waitFlag = WAIT_DEF_VALUE;
681 int sid = OpenSession(SESSION_NAME_FILE, SESSION_NAME_FILE, GetNetworkId(), DEF_GROUP_ID, &g_fileSessionAttrP2P);
682 EXPECT_TRUE(sid >= SESSION_ID_MIN) << "call OpenSession[file] fail, sid=" << sid;
683 if (sid >= SESSION_ID_MIN) {
684 ret = WaitFile(10);
685 EXPECT_EQ(SOFTBUS_OK, ret) << "wait opensession fail[file]";
686 }
687
688 static const char* g_fileOne[] = {
689 "/data/8M.tar",
690 };
691
692 static const char *dfileList[] = {
693 "/sendfile/P2P/8M_invalid.tar",
694 };
695
696 ResetWaitFlag();
697 ret = SendFile(sid, g_fileOne, dfileList, 1);
698 EXPECT_EQ(SOFTBUS_OK, ret) << "call SendFile fail";
699 ret = Wait(15);
700 EXPECT_EQ(SOFTBUS_OK, ret) << "wait send fail rst fail";
701
702 CloseSession(sid);
703 ret = RemoveSessionServer(DEF_PKG_NAME, SESSION_NAME_FILE);
704 EXPECT_EQ(SOFTBUS_OK, ret) << "RemoveSS[proxy] fail";
705 }
706
707 /**
708 * @tc.number : SUB_DSoftbus_Spec_DCTS_SendFile_P2P_0700
709 * @tc.name : SendFile By P2P close session ,send failed
710 * @tc.desc : Test send file function
711 * @tc.type : FUNC
712 * @tc.size : MediumTest
713 */
714 HWTEST_F(TransFileFuncTest, SUB_DSoftbus_Spec_DCTS_SendFile_P2P_0700, TestSize.Level2)
715 {
716 int ret;
717 ret = CreateSessionServer(DEF_PKG_NAME, SESSION_NAME_FILE, &g_fileSessionListener);
718 EXPECT_EQ(SOFTBUS_OK, ret) << "CreateSS[file] fail";
719
720 g_waitFlag = WAIT_DEF_VALUE;
721 int sid = OpenSession(SESSION_NAME_FILE, SESSION_NAME_FILE, GetNetworkId(), DEF_GROUP_ID, &g_fileSessionAttrP2P);
722 EXPECT_TRUE(sid >= SESSION_ID_MIN) << "call OpenSession[file] fail, sid=" << sid;
723 if (sid >= SESSION_ID_MIN) {
724 ret = WaitFile(10);
725 EXPECT_EQ(SOFTBUS_OK, ret) << "wait opensession fail[file]";
726 }
727
728 static const char* g_fileOne[] = {
729 "/data/big.tar",
730 };
731
732 static const char *dfileList[] = {
733 "/sendfile/P2P/big.tar",
734 };
735
736 ResetWaitFlag();
737 ret = SendFile(sid, g_fileOne, dfileList, 1);
738 EXPECT_EQ(SOFTBUS_OK, ret) << "call SendFile fail";
739
740 CloseSession(sid);
741 ret = Wait(15);
742 EXPECT_NE(SOFTBUS_OK, ret) << "wait send success ,expect fail";
743
744 ret = RemoveSessionServer(DEF_PKG_NAME, SESSION_NAME_FILE);
745 EXPECT_EQ(SOFTBUS_OK, ret) << "RemoveSS[proxy] fail";
746 }
747
748 /**
749 * @tc.number : SUB_DSoftbus_Spec_DCTS_SendFile_P2P_0800
750 * @tc.name : Send 4 files once By P2P
751 * @tc.desc : Test send file function
752 * @tc.type : FUNC
753 * @tc.size : MediumTest
754 */
755 HWTEST_F(TransFileFuncTest, SUB_DSoftbus_Spec_DCTS_SendFile_P2P_0800, TestSize.Level2)
756 {
757 int ret;
758 ret = CreateSessionServer(DEF_PKG_NAME, SESSION_NAME_FILE, &g_fileSessionListener);
759 EXPECT_EQ(SOFTBUS_OK, ret) << "CreateSS[file] fail";
760
761 g_waitFlag = WAIT_DEF_VALUE;
762 int sid = OpenSession(SESSION_NAME_FILE, SESSION_NAME_FILE, GetNetworkId(), DEF_GROUP_ID, &g_fileSessionAttrP2P);
763 EXPECT_TRUE(sid >= SESSION_ID_MIN) << "call OpenSession[file] fail, sid=" << sid;
764 if (sid >= SESSION_ID_MIN) {
765 ret = WaitFile(10);
766 EXPECT_EQ(SOFTBUS_OK, ret) << "wait opensession fail[file]";
767 }
768
769 static const char* g_fileOne[] = {
770 "/data/big.tar",
771 "/data/richu.jpg",
772 "/data/richu-002.jpg",
773 "/data/richu-003.jpg",
774 };
775
776 ResetWaitFlag();
777 ret = SendFile(sid, g_fileOne, NULL, 4);
778 EXPECT_EQ(SOFTBUS_OK, ret) << "call SendFile fail";
779 ret = Wait(350);
780 EXPECT_EQ(SOFTBUS_OK, ret) << "wait send fail rst fail";
781
782 CloseSession(sid);
783 ret = RemoveSessionServer(DEF_PKG_NAME, SESSION_NAME_FILE);
784 EXPECT_EQ(SOFTBUS_OK, ret) << "RemoveSS[proxy] fail";
785 }