• 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 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 }