• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 }