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