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 using namespace testing::ext;
23
24 class TransFuncTest : public testing::Test {
25 public:
26 // 测试套前置和后置操作
27 static void SetUpTestCase();
28 static void TearDownTestCase();
29
30 // 测试用例前置和后置操作
31 void SetUp();
32 void TearDown();
33 };
34
SetUp()35 void TransFuncTest::SetUp() {}
36
TearDown()37 void TransFuncTest::TearDown()
38 {
39 sleepn(1);
40 }
41
SetUpTestCase()42 void TransFuncTest::SetUpTestCase()
43 {
44 LOG("SetUp begin");
45 AddPermission();
46 sleep(1);
47 OHOS::Security::AccessToken::AccessTokenKit::ReloadNativeTokenInfo();
48 sleep(1);
49 TestSetUp();
50 int ret = RegisterDeviceStateDefCallback();
51 EXPECT_EQ(SOFTBUS_OK, ret) << "call reg node state callback fail";
52 ret = CheckRemoteDeviceIsNull(BOOL_TRUE);
53 ASSERT_EQ(SOFTBUS_OK, ret) << "get node fail,please check network";
54
55 LOG("SetUp end");
56 }
57
TearDownTestCase()58 void TransFuncTest::TearDownTestCase()
59 {
60 int ret = UnRegisterDeviceStateDefCallback();
61 EXPECT_EQ(SOFTBUS_OK, ret) << "call unReg node state callback fail";
62
63 TestTearDown();
64 }
65
66 /**
67 * @tc.number : SUB_DSoftbus_Spec_DCTS_SendBytes_0100
68 * @tc.name : SendByte Packet size 1B, send and receive successful
69 * @tc.desc : Test the SendByte specification
70 * @tc.type : FUNC
71 * @tc.size : MediumTest
72 */
HWTEST_F(TransFuncTest, SUB_DSoftbus_Spec_DCTS_SendBytes_0100, TestSize.Level3)73 HWTEST_F(TransFuncTest, SUB_DSoftbus_Spec_DCTS_SendBytes_0100, TestSize.Level3)
74 {
75 int ret;
76 ret = CreateSsAndOpenSession4Data();
77 ASSERT_EQ(SOFTBUS_OK, ret) << "create Ss and openS[data] fail";
78
79 int size = 1;
80 ret = SendData4Data(DATA_TYPE_BYTE, size);
81 EXPECT_EQ(SOFTBUS_OK, ret) << "SendData4Data(byte, 1B) fail";
82
83 ret = CloseSessionAndRemoveSs4Data();
84 EXPECT_EQ(SOFTBUS_OK, ret) << "close session and remove Ss fail";
85 }
86
87 /**
88 * @tc.number : SUB_DSoftbus_Spec_DCTS_SendBytes_0200
89 * @tc.name : SendByte Packet size 2M, send and receive successful
90 * @tc.desc : Test the SendByte specification
91 * @tc.type : FUNC
92 * @tc.size : MediumTest
93 */
HWTEST_F(TransFuncTest, SUB_DSoftbus_Spec_DCTS_SendBytes_0200, TestSize.Level3)94 HWTEST_F(TransFuncTest, SUB_DSoftbus_Spec_DCTS_SendBytes_0200, TestSize.Level3)
95 {
96 int ret;
97 ret = CreateSsAndOpenSession4Data();
98 ASSERT_EQ(SOFTBUS_OK, ret) << "create Ss and openS[data] fail";
99
100 int size = 2 * 1024 * 1024;
101 ret = SendData4Data(DATA_TYPE_BYTE, size);
102 EXPECT_EQ(SOFTBUS_OK, ret) << "SendData4Data(byte,2M) fail";
103
104 ret = CloseSessionAndRemoveSs4Data();
105 EXPECT_EQ(SOFTBUS_OK, ret) << "close session and remove Ss fail";
106 }
107
108 /**
109 * @tc.number : SUB_DSoftbus_Spec_DCTS_SendBytes_0300
110 * @tc.name : SendByte Packet size 0, send and receive failed
111 * @tc.desc : Test the SendByte specification
112 * @tc.type : FUNC
113 * @tc.size : MediumTest
114 */
HWTEST_F(TransFuncTest, SUB_DSoftbus_Spec_DCTS_SendBytes_0300, TestSize.Level3)115 HWTEST_F(TransFuncTest, SUB_DSoftbus_Spec_DCTS_SendBytes_0300, TestSize.Level3)
116 {
117 int ret;
118 ret = CreateSsAndOpenSession4Data();
119 ASSERT_EQ(SOFTBUS_OK, ret) << "create Ss and openS[data] fail";
120
121 int size = 0;
122 string emptyStr = "";
123 int sessionId = GetCurrentSessionId4Data();
124 ret = SendBytes(sessionId, emptyStr.c_str(), size);
125 EXPECT_NE(SOFTBUS_OK, ret) << "call sendbytes(empty) fail";
126
127 ret = CloseSessionAndRemoveSs4Data();
128 EXPECT_EQ(SOFTBUS_OK, ret) << "close session and remove Ss fail";
129 }
130
131
132 /**
133 * @tc.number : SUB_DSoftbus_Spec_DCTS_SendBytes_0400
134 * @tc.name : SendByte Packet size 1B ,Proxy channel, send and receive failed
135 * @tc.desc : Test the SendByte specification
136 * @tc.type : FUNC
137 * @tc.size : MediumTest
138 */
HWTEST_F(TransFuncTest, SUB_DSoftbus_Spec_DCTS_SendBytes_0400, TestSize.Level3)139 HWTEST_F(TransFuncTest, SUB_DSoftbus_Spec_DCTS_SendBytes_0400, TestSize.Level3)
140 {
141 int ret;
142 ret = CreateSsAndOpenSession4Proxy();
143 ASSERT_EQ(SOFTBUS_OK, ret) << "create Ss and openS[data] fail";
144
145 int size = 1;
146 ret = SendData4Message(DATA_TYPE_BYTE, size);
147 EXPECT_NE(SOFTBUS_OK, ret) << "SendData4Data(byte, 1B) fail";
148
149 ret = CloseSessionAndRemoveSs4Proxy();
150 EXPECT_EQ(SOFTBUS_OK, ret) << "close session and remove Ss fail";
151 }
152
153 /**
154 * @tc.number : SUB_DSoftbus_Spec_DCTS_SendBytes_0500
155 * @tc.name : SendByte Packet size Max by session Negotiate, send and receive failed
156 * @tc.desc : Test the SendByte specification
157 * @tc.type : FUNC
158 * @tc.size : MediumTest
159 */
HWTEST_F(TransFuncTest, SUB_DSoftbus_Spec_DCTS_SendBytes_0500, TestSize.Level3)160 HWTEST_F(TransFuncTest, SUB_DSoftbus_Spec_DCTS_SendBytes_0500, TestSize.Level3)
161 {
162 int ret;
163 ret = CreateSsAndOpenSession4Data();
164 ASSERT_EQ(SOFTBUS_OK, ret) << "create Ss and openS[data] fail";
165
166 int optionvalue = 0;
167 ret = GetSessionOption(GetCurrentSessionId4Data(), SESSION_OPTION_MAX_SENDBYTES_SIZE,
168 &optionvalue, sizeof(optionvalue));
169 EXPECT_EQ(SOFTBUS_OK, ret) << "GetSessionOption fail";
170 LOG("GetSessionOption optionvalue = %d", optionvalue);
171 int size = optionvalue;
172 ret = SendData4Data(DATA_TYPE_BYTE, size);
173 EXPECT_EQ(SOFTBUS_OK, ret) << "call sendbytes(Max) fail";
174
175 ret = CloseSessionAndRemoveSs4Data();
176 EXPECT_EQ(SOFTBUS_OK, ret) << "close session and remove Ss fail";
177 }
178
179 /**
180 * @tc.number : SUB_DSoftbus_Spec_DCTS_SendBytes_0600
181 * @tc.name : SendByte Packet size Max + 1 by session Negotiate, send and receive failed
182 * @tc.desc : Test the SendByte specification
183 * @tc.type : FUNC
184 * @tc.size : MediumTest
185 */
HWTEST_F(TransFuncTest, SUB_DSoftbus_Spec_DCTS_SendBytes_0600, TestSize.Level3)186 HWTEST_F(TransFuncTest, SUB_DSoftbus_Spec_DCTS_SendBytes_0600, TestSize.Level3)
187 {
188 int ret;
189 ret = CreateSsAndOpenSession4Data();
190 ASSERT_EQ(SOFTBUS_OK, ret) << "create Ss and openS[data] fail";
191
192 int optionvalue = 0;
193 ret = GetSessionOption(GetCurrentSessionId4Data(), SESSION_OPTION_MAX_SENDBYTES_SIZE,
194 &optionvalue, sizeof(optionvalue));
195 EXPECT_EQ(SOFTBUS_OK, ret) << "GetSessionOption fail";
196 LOG("GetSessionOption optionvalue = %d", optionvalue);
197 int size = optionvalue + 1;
198 ret = SendData4Data(DATA_TYPE_BYTE, size);
199 EXPECT_NE(SOFTBUS_OK, ret) << "call sendbytes(Max + 1) fail";
200
201 ret = CloseSessionAndRemoveSs4Data();
202 EXPECT_EQ(SOFTBUS_OK, ret) << "close session and remove Ss fail";
203 }
204
205 /**
206 * @tc.number : SUB_DSoftbus_Spec_DCTS_SendMessage_0100
207 * @tc.name : SendMessage Packet size 1B, session type is TYPE_BYTES send and receive failed
208 * @tc.desc : Test the SendMessage specification
209 * @tc.type : FUNC
210 * @tc.size : MediumTest
211 */
HWTEST_F(TransFuncTest, SUB_DSoftbus_Spec_DCTS_SendMessage_0100, TestSize.Level3)212 HWTEST_F(TransFuncTest, SUB_DSoftbus_Spec_DCTS_SendMessage_0100, TestSize.Level3)
213 {
214 int ret;
215 ret = CreateSsAndOpenSession4Data();
216 ASSERT_EQ(SOFTBUS_OK, ret) << "create Ss and openS[data] fail";
217
218 int size = 1;
219 ret = SendData4Data(DATA_TYPE_MSG, size);
220 EXPECT_NE(SOFTBUS_OK, ret) << "SendData4Data(msg, 1B) fail";
221
222 ret = CloseSessionAndRemoveSs4Data();
223 EXPECT_EQ(SOFTBUS_OK, ret) << "close session and remove Ss fail";
224 }
225
226 /**
227 * @tc.number : SUB_DSoftbus_Spec_DCTS_SendMessage_0200
228 * @tc.name : SendMessage Packet size 1B, proxy channel, send and receive successful
229 * @tc.desc : [G-DISTRIBUTED-0206]禁止修改传输的默认协议,新增或者变更默认传输协议必须通过协商机制来实现
230 * @tc.type : FUNC
231 * @tc.size : MediumTest
232 */
HWTEST_F(TransFuncTest, SUB_DSoftbus_Spec_DCTS_SendMessage_0200, TestSize.Level3)233 HWTEST_F(TransFuncTest, SUB_DSoftbus_Spec_DCTS_SendMessage_0200, TestSize.Level3)
234 {
235 int ret;
236 ret = CreateSsAndOpenSession4Proxy();
237 ASSERT_EQ(SOFTBUS_OK, ret) << "create Ss and openS[data] fail";
238
239 int size = 1;
240 ret = SendData4Message(DATA_TYPE_MSG, size);
241 EXPECT_EQ(SOFTBUS_OK, ret) << "SendData4Data(msg, 1B) fail";
242
243 ret = CloseSessionAndRemoveSs4Proxy();
244 EXPECT_EQ(SOFTBUS_OK, ret) << "close session and remove Ss fail";
245 }
246
247 /**
248 * @tc.number : SUB_DSoftbus_Spec_DCTS_SendMessage_0300
249 * @tc.name : SendMessage Packet size 1K, proxy channel, send and receive successful
250 * @tc.desc : [G-DISTRIBUTED-0206]禁止修改传输的默认协议,新增或者变更默认传输协议必须通过协商机制来实现
251 * @tc.type : FUNC
252 * @tc.size : MediumTest
253 */
HWTEST_F(TransFuncTest, SUB_DSoftbus_Spec_DCTS_SendMessage_0300, TestSize.Level3)254 HWTEST_F(TransFuncTest, SUB_DSoftbus_Spec_DCTS_SendMessage_0300, TestSize.Level3)
255 {
256 int ret;
257 ret = CreateSsAndOpenSession4Proxy();
258 ASSERT_EQ(SOFTBUS_OK, ret) << "create Ss and openS[data] fail";
259
260 int size = 1024;
261 ret = SendData4Message(DATA_TYPE_MSG, size);
262 EXPECT_EQ(SOFTBUS_OK, ret) << "SendData4Data(msg,1K) fail";
263
264 ret = CloseSessionAndRemoveSs4Proxy();
265 EXPECT_EQ(SOFTBUS_OK, ret) << "close session and remove Ss fail";
266 }
267
268 /**
269 * @tc.number : SUB_DSoftbus_Spec_DCTS_SendMessage_0400
270 * @tc.name : SendMessage Packet size 0, proxy channel, send and receive failed
271 * @tc.desc : Test the SendMessage specification
272 * @tc.type : FUNC
273 * @tc.size : MediumTest
274 */
HWTEST_F(TransFuncTest, SUB_DSoftbus_Spec_DCTS_SendMessage_0400, TestSize.Level3)275 HWTEST_F(TransFuncTest, SUB_DSoftbus_Spec_DCTS_SendMessage_0400, TestSize.Level3)
276 {
277 int ret;
278 ret = CreateSsAndOpenSession4Proxy();
279 ASSERT_EQ(SOFTBUS_OK, ret) << "create Ss and openS[data] fail";
280
281 int size = 0;
282 string emptystr = "";
283 int sessionId = GetCurrentSessionId4Proxy();
284 ret = SendMessage(sessionId, emptystr.c_str(), size);
285 EXPECT_NE(SOFTBUS_OK, ret) << "call sendmsg(empty) fail";
286
287 ret = CloseSessionAndRemoveSs4Proxy();
288 EXPECT_EQ(SOFTBUS_OK, ret) << "close session and remove Ss fail";
289 }
290
291 /**
292 * @tc.number : SUB_DSoftbus_Spec_DCTS_SendMessage_0500
293 * @tc.name : SendMessage Packet size Max by session Negotiate, proxy channel, send and receive failed
294 * @tc.desc : [G-DISTRIBUTED-0210] 使用消息传输接口,消息大小不超过4K字节,超过时需要业务对消息进行分包
295 * 处理,或者改为使用字节传输接口,字节传输可支持最大4M字节
296 * @tc.type : FUNC
297 * @tc.size : MediumTest
298 */
HWTEST_F(TransFuncTest, SUB_DSoftbus_Spec_DCTS_SendMessage_0500, TestSize.Level3)299 HWTEST_F(TransFuncTest, SUB_DSoftbus_Spec_DCTS_SendMessage_0500, TestSize.Level3)
300 {
301 int ret;
302 ret = CreateSsAndOpenSession4Proxy();
303 ASSERT_EQ(SOFTBUS_OK, ret) << "create Ss and openS[data] fail";
304
305 int optionvalue = 0;
306 ret = GetSessionOption(GetCurrentSessionId4Proxy(), SESSION_OPTION_MAX_SENDMESSAGE_SIZE,
307 &optionvalue, sizeof(optionvalue));
308 EXPECT_EQ(SOFTBUS_OK, ret) << "GetSessionOption fail";
309 LOG("GetSessionOption optionvalue = %d", optionvalue);
310 int size = optionvalue;
311 ret = SendData4Message(DATA_TYPE_MSG, size);
312 EXPECT_EQ(SOFTBUS_OK, ret) << "call sendmsg(Max) fail";
313
314 ret = CloseSessionAndRemoveSs4Proxy();
315 EXPECT_EQ(SOFTBUS_OK, ret) << "close session and remove Ss fail";
316 }
317
318 /**
319 * @tc.number : SUB_DSoftbus_Spec_DCTS_SendMessage_0600
320 * @tc.name : SendMessage Packet size Max +1 by session Negotiate, proxy channel, send and receive failed
321 * @tc.desc : [G-DISTRIBUTED-0210] 使用消息传输接口,消息大小不超过4K字节,超过时需要业务对消息进行分包
322 * 处理,或者改为使用字节传输接口,字节传输可支持最大4M字节
323 * @tc.type : FUNC
324 * @tc.size : MediumTest
325 */
HWTEST_F(TransFuncTest, SUB_DSoftbus_Spec_DCTS_SendMessage_0600, TestSize.Level3)326 HWTEST_F(TransFuncTest, SUB_DSoftbus_Spec_DCTS_SendMessage_0600, TestSize.Level3)
327 {
328 int ret;
329 ret = CreateSsAndOpenSession4Proxy();
330 ASSERT_EQ(SOFTBUS_OK, ret) << "create Ss and openS[data] fail";
331
332 int optionvalue = 0;
333 ret = GetSessionOption(GetCurrentSessionId4Proxy(), SESSION_OPTION_MAX_SENDMESSAGE_SIZE,
334 &optionvalue, sizeof(optionvalue));
335 EXPECT_EQ(SOFTBUS_OK, ret) << "GetSessionOption fail";
336 LOG("GetSessionOption optionvalue = %d", optionvalue);
337 int size = optionvalue + 1;
338 ret = SendData4Message(DATA_TYPE_MSG, size);
339 EXPECT_NE(SOFTBUS_OK, ret) << "call sendmsg(Max+1) fail";
340
341 ret = CloseSessionAndRemoveSs4Proxy();
342 EXPECT_EQ(SOFTBUS_OK, ret) << "close session and remove Ss fail";
343 }
344
345 /**
346 * @tc.number : SUB_DSoftbus_Spec_DCTS_SendBytes_P2P_0100
347 * @tc.name : SendByte By P2P Packet size 1B, send and receive successful
348 * @tc.desc : [G-DISTRIBUTED-0206]禁止修改传输的默认协议,新增或者变更默认传输协议必须通过协商机制来实现
349 * @tc.type : FUNC
350 * @tc.size : MediumTest
351 */
HWTEST_F(TransFuncTest, SUB_DSoftbus_Spec_DCTS_SendBytes_P2P_0100, TestSize.Level3)352 HWTEST_F(TransFuncTest, SUB_DSoftbus_Spec_DCTS_SendBytes_P2P_0100, TestSize.Level3)
353 {
354 int ret;
355 ret = CreateSessionServer(DEF_PKG_NAME, SESSION_NAME_DATA, GetSessionListenser4Data());
356 ASSERT_EQ(SOFTBUS_OK, ret) << "create Ss and openS[data] fail";
357
358 ret = OpenSession4DataByP2p();
359 EXPECT_EQ(SOFTBUS_OK, ret) << "SendData4Data(byte, 1B) fail";
360
361 int size = 1;
362 ret = SendData4Data(DATA_TYPE_BYTE, size);
363 EXPECT_EQ(SOFTBUS_OK, ret) << "SendData4Data(byte, 1B) fail";
364
365 ret = CloseSessionAndRemoveSs4Data();
366 EXPECT_EQ(SOFTBUS_OK, ret) << "close session and remove Ss fail";
367 }
368
369 /**
370 * @tc.number : SUB_DSoftbus_Spec_DCTS_SendBytes_P2P_0200
371 * @tc.name : SendByte By P2P Packet size 2M, send and receive successful
372 * @tc.desc : Test the SendByte specification
373 * @tc.type : FUNC
374 * @tc.size : MediumTest
375 */
HWTEST_F(TransFuncTest, SUB_DSoftbus_Spec_DCTS_SendBytes_P2P_0200, TestSize.Level3)376 HWTEST_F(TransFuncTest, SUB_DSoftbus_Spec_DCTS_SendBytes_P2P_0200, TestSize.Level3)
377 {
378 int ret;
379 ret = CreateSessionServer(DEF_PKG_NAME, SESSION_NAME_DATA, GetSessionListenser4Data());
380 ASSERT_EQ(SOFTBUS_OK, ret) << "create Ss and openS[data] fail";
381
382 ret = OpenSession4DataByP2p();
383 EXPECT_EQ(SOFTBUS_OK, ret) << "SendData4Data(byte, 1B) fail";
384
385 int size = 2 * 1024 * 1024;
386 ret = SendData4Data(DATA_TYPE_BYTE, size);
387 EXPECT_EQ(SOFTBUS_OK, ret) << "SendData4Data(byte,2M) fail";
388
389 ret = CloseSessionAndRemoveSs4Data();
390 EXPECT_EQ(SOFTBUS_OK, ret) << "close session and remove Ss fail";
391 }
392
393 /**
394 * @tc.number : SUB_DSoftbus_Spec_DCTS_SendBytes_P2P_0300
395 * @tc.name : SendByte By P2P Packet size 0, send and receive failed
396 * @tc.desc : Test the SendByte specification
397 * @tc.type : FUNC
398 * @tc.size : MediumTest
399 */
HWTEST_F(TransFuncTest, SUB_DSoftbus_Spec_DCTS_SendBytes_P2P_0300, TestSize.Level3)400 HWTEST_F(TransFuncTest, SUB_DSoftbus_Spec_DCTS_SendBytes_P2P_0300, TestSize.Level3)
401 {
402 int ret;
403 ret = CreateSessionServer(DEF_PKG_NAME, SESSION_NAME_DATA, GetSessionListenser4Data());
404 ASSERT_EQ(SOFTBUS_OK, ret) << "create Ss and openS[data] fail";
405
406 ret = OpenSession4DataByP2p();
407 EXPECT_EQ(SOFTBUS_OK, ret) << "SendData4Data(byte, 1B) fail";
408
409 int size = 0;
410 string emptyStr = "";
411 int sessionId = GetCurrentSessionId4Data();
412 ret = SendBytes(sessionId, emptyStr.c_str(), size);
413 EXPECT_NE(SOFTBUS_OK, ret) << "call sendbytes(empty) fail";
414
415 ret = CloseSessionAndRemoveSs4Data();
416 EXPECT_EQ(SOFTBUS_OK, ret) << "close session and remove Ss fail";
417 }
418
419 /**
420 * @tc.number : SUB_DSoftbus_Spec_DCTS_SendBytes_P2P_0400
421 * @tc.name : SendByte By P2P Packet size 1B ,Proxy channel, send and receive failed
422 * @tc.desc : Test the SendByte specification
423 * @tc.type : FUNC
424 * @tc.size : MediumTest
425 */
HWTEST_F(TransFuncTest, SUB_DSoftbus_Spec_DCTS_SendBytes_P2P_0400, TestSize.Level3)426 HWTEST_F(TransFuncTest, SUB_DSoftbus_Spec_DCTS_SendBytes_P2P_0400, TestSize.Level3)
427 {
428 int ret;
429 ret = CreateSessionServer(DEF_PKG_NAME, SESSION_NAME_PROXY, GetSessionListenser4Proxy());
430 ASSERT_EQ(SOFTBUS_OK, ret) << "create Ss and openS[data] fail";
431
432 ret = OpenSession4ProxyByP2p();
433 ASSERT_EQ(SOFTBUS_OK, ret) << "SendData4Data(byte, 1B) fail";
434
435 int size = 1;
436 ret = SendData4Message(DATA_TYPE_BYTE, size);
437 EXPECT_NE(SOFTBUS_OK, ret) << "SendData4Data(byte, 1B) fail";
438
439 ret = CloseSessionAndRemoveSs4Proxy();
440 EXPECT_EQ(SOFTBUS_OK, ret) << "close session and remove Ss fail";
441 }
442
443 /**
444 * @tc.number : SUB_DSoftbus_Spec_DCTS_SendBytes_P2P_0500
445 * @tc.name : SendByte By P2P Packet size Max by session Negotiate, send and receive successful
446 * @tc.desc : [G-DISTRIBUTED-0210] 使用消息传输接口,消息大小不超过4K字节,超过时需要业务对消息进行分包
447 * 处理,或者改为使用字节传输接口,字节传输可支持最大4M字节
448 * @tc.type : FUNC
449 * @tc.size : MediumTest
450 */
HWTEST_F(TransFuncTest, SUB_DSoftbus_Spec_DCTS_SendBytes_P2P_0500, TestSize.Level3)451 HWTEST_F(TransFuncTest, SUB_DSoftbus_Spec_DCTS_SendBytes_P2P_0500, TestSize.Level3)
452 {
453 int ret;
454 ret = CreateSessionServer(DEF_PKG_NAME, SESSION_NAME_DATA, GetSessionListenser4Data());
455 ASSERT_EQ(SOFTBUS_OK, ret) << "create Ss and openS[data] fail";
456
457 ret = OpenSession4DataByP2p();
458 EXPECT_EQ(SOFTBUS_OK, ret) << "SendData4Data(byte, 1B) fail";
459
460 int optionvalue = 0;
461 ret = GetSessionOption(GetCurrentSessionId4Data(), SESSION_OPTION_MAX_SENDBYTES_SIZE,
462 &optionvalue, sizeof(optionvalue));
463 EXPECT_EQ(SOFTBUS_OK, ret) << "GetSessionOption fail";
464 LOG("GetSessionOption optionvalue = %d", optionvalue);
465 int size = optionvalue;
466 ret = SendData4Data(DATA_TYPE_BYTE, size);
467 EXPECT_EQ(SOFTBUS_OK, ret) << "SendData4Data(byte,Max) fail";
468
469 ret = CloseSessionAndRemoveSs4Data();
470 EXPECT_EQ(SOFTBUS_OK, ret) << "close session and remove Ss fail";
471 }
472
473 /**
474 * @tc.number : SUB_DSoftbus_Spec_DCTS_SendBytes_P2P_0600
475 * @tc.name : SendByte By P2P Packet size Max + 1 by session Negotiate, send and receive failed
476 * @tc.desc : [G-DISTRIBUTED-0210] 使用消息传输接口,消息大小不超过4K字节,超过时需要业务对消息进行分包
477 * 处理,或者改为使用字节传输接口,字节传输可支持最大4M字节
478 * @tc.type : FUNC
479 * @tc.size : MediumTest
480 */
HWTEST_F(TransFuncTest, SUB_DSoftbus_Spec_DCTS_SendBytes_P2P_0600, TestSize.Level3)481 HWTEST_F(TransFuncTest, SUB_DSoftbus_Spec_DCTS_SendBytes_P2P_0600, TestSize.Level3)
482 {
483 int ret;
484 ret = CreateSessionServer(DEF_PKG_NAME, SESSION_NAME_DATA, GetSessionListenser4Data());
485 ASSERT_EQ(SOFTBUS_OK, ret) << "create Ss and openS[data] fail";
486
487 ret = OpenSession4DataByP2p();
488 EXPECT_EQ(SOFTBUS_OK, ret) << "SendData4Data(byte, 1B) fail";
489
490 int optionvalue = 0;
491 ret = GetSessionOption(GetCurrentSessionId4Data(), SESSION_OPTION_MAX_SENDBYTES_SIZE,
492 &optionvalue, sizeof(optionvalue));
493 EXPECT_EQ(SOFTBUS_OK, ret) << "GetSessionOption fail";
494 LOG("GetSessionOption optionvalue = %d", optionvalue);
495 int size = optionvalue + 1;
496 ret = SendData4Data(DATA_TYPE_BYTE, size);
497 EXPECT_NE(SOFTBUS_OK, ret) << "call sendbytes(empty) fail";
498
499 ret = CloseSessionAndRemoveSs4Data();
500 EXPECT_EQ(SOFTBUS_OK, ret) << "close session and remove Ss fail";
501 }
502
503 /**
504 * @tc.number : SUB_DSoftbus_Spec_DCTS_SendMessage_P2P_0100
505 * @tc.name : SendMessage By P2P Packet size 1B, send and receive failed
506 * @tc.desc : Test the SendMessage specification
507 * @tc.type : FUNC
508 * @tc.size : MediumTest
509 */
HWTEST_F(TransFuncTest, SUB_DSoftbus_Spec_DCTS_SendMessage_P2P_0100, TestSize.Level3)510 HWTEST_F(TransFuncTest, SUB_DSoftbus_Spec_DCTS_SendMessage_P2P_0100, TestSize.Level3)
511 {
512 int ret;
513 ret = CreateSessionServer(DEF_PKG_NAME, SESSION_NAME_DATA, GetSessionListenser4Data());
514 ASSERT_EQ(SOFTBUS_OK, ret) << "create Ss and openS[data] fail";
515
516 ret = OpenSession4DataByP2p();
517 EXPECT_EQ(SOFTBUS_OK, ret) << "SendData4Data(byte, 1B) fail";
518 int size = 1;
519 ret = SendData4Data(DATA_TYPE_MSG, size);
520 EXPECT_NE(SOFTBUS_OK, ret) << "SendData4Data(msg, 1B) fail";
521
522 ret = CloseSessionAndRemoveSs4Data();
523 EXPECT_EQ(SOFTBUS_OK, ret) << "close session and remove Ss fail";
524 }
525
526 /**
527 * @tc.number : SUB_DSoftbus_Spec_DCTS_SendMessage_P2P_0200
528 * @tc.name : SendMessage Packet size 1B, proxy channel, send and receive successful
529 * @tc.desc : Test the SendMessage specification
530 * @tc.type : FUNC
531 * @tc.size : MediumTest
532 */
HWTEST_F(TransFuncTest, SUB_DSoftbus_Spec_DCTS_SendMessage_P2P_0200, TestSize.Level3)533 HWTEST_F(TransFuncTest, SUB_DSoftbus_Spec_DCTS_SendMessage_P2P_0200, TestSize.Level3)
534 {
535 int ret;
536 ret = CreateSessionServer(DEF_PKG_NAME, SESSION_NAME_PROXY, GetSessionListenser4Proxy());
537 ASSERT_EQ(SOFTBUS_OK, ret) << "create Ss [Proxy] fail";
538
539 ret = OpenSession4ProxyByP2p();
540 EXPECT_EQ(SOFTBUS_OK, ret) << "OpenSession Proxy fail";
541
542 int size = 1;
543 ret = SendData4Message(DATA_TYPE_MSG, size);
544 EXPECT_EQ(SOFTBUS_OK, ret) << "SendData4Data(msg, 1B) fail";
545
546 ret = CloseSessionAndRemoveSs4Proxy();
547 EXPECT_EQ(SOFTBUS_OK, ret) << "close session and remove Ss fail";
548 }
549
550 /**
551 * @tc.number : SUB_DSoftbus_Spec_DCTS_SendMessage_P2P_0300
552 * @tc.name : SendMessage Packet size 1K, proxy channel, send and receive successful
553 * @tc.desc : Test the SendMessage specification
554 * @tc.type : FUNC
555 * @tc.size : MediumTest
556 */
HWTEST_F(TransFuncTest, SUB_DSoftbus_Spec_DCTS_SendMessage_P2P_0300, TestSize.Level3)557 HWTEST_F(TransFuncTest, SUB_DSoftbus_Spec_DCTS_SendMessage_P2P_0300, TestSize.Level3)
558 {
559 int ret;
560 ret = CreateSessionServer(DEF_PKG_NAME, SESSION_NAME_PROXY, GetSessionListenser4Proxy());
561 ASSERT_EQ(SOFTBUS_OK, ret) << "create Ss [Proxy] fail";
562
563 ret = OpenSession4ProxyByP2p();
564 EXPECT_EQ(SOFTBUS_OK, ret) << "OpenSession Proxy fail";
565
566 int size = 1024;
567 ret = SendData4Message(DATA_TYPE_MSG, size);
568 EXPECT_EQ(SOFTBUS_OK, ret) << "SendData4Data(msg,1K) fail";
569
570 ret = CloseSessionAndRemoveSs4Proxy();
571 EXPECT_EQ(SOFTBUS_OK, ret) << "close session and remove Ss fail";
572 }
573
574 /**
575 * @tc.number : SUB_DSoftbus_Spec_DCTS_SendMessage_P2P_0400
576 * @tc.name : SendMessage Packet size 0, proxy channel, send and receive failed
577 * @tc.desc : Test the SendMessage specification
578 * @tc.type : FUNC
579 * @tc.size : MediumTest
580 */
HWTEST_F(TransFuncTest, SUB_DSoftbus_Spec_DCTS_SendMessage_P2P_0400, TestSize.Level3)581 HWTEST_F(TransFuncTest, SUB_DSoftbus_Spec_DCTS_SendMessage_P2P_0400, TestSize.Level3)
582 {
583 int ret;
584 ret = CreateSessionServer(DEF_PKG_NAME, SESSION_NAME_PROXY, GetSessionListenser4Proxy());
585 ASSERT_EQ(SOFTBUS_OK, ret) << "create Ss [Proxy] fail";
586
587 ret = OpenSession4ProxyByP2p();
588 ASSERT_EQ(SOFTBUS_OK, ret) << "OpenSession Proxy fail";
589
590 int size = 0;
591 string emptystr = "";
592 int sessionId = GetCurrentSessionId4Proxy();
593 ret = SendMessage(sessionId, emptystr.c_str(), size);
594 EXPECT_NE(SOFTBUS_OK, ret) << "call sendmsg(empty) fail";
595
596 ret = CloseSessionAndRemoveSs4Proxy();
597 EXPECT_EQ(SOFTBUS_OK, ret) << "close session and remove Ss fail";
598 }
599
600 /**
601 * @tc.number : SUB_DSoftbus_Spec_DCTS_SendMessage_P2P_0500
602 * @tc.name : SendMessage Packet size max by session Negotiate, proxy channel, send and receive successful
603 * @tc.desc : [G-DISTRIBUTED-0210] 使用消息传输接口,消息大小不超过4K字节,超过时需要业务对消息进行分包
604 * 处理,或者改为使用字节传输接口,字节传输可支持最大4M字节
605 * @tc.type : FUNC
606 * @tc.size : MediumTest
607 */
HWTEST_F(TransFuncTest, SUB_DSoftbus_Spec_DCTS_SendMessage_P2P_0500, TestSize.Level3)608 HWTEST_F(TransFuncTest, SUB_DSoftbus_Spec_DCTS_SendMessage_P2P_0500, TestSize.Level3)
609 {
610 int ret;
611 ret = CreateSessionServer(DEF_PKG_NAME, SESSION_NAME_PROXY, GetSessionListenser4Proxy());
612 ASSERT_EQ(SOFTBUS_OK, ret) << "create Ss [Proxy] fail";
613
614 ret = OpenSession4ProxyByP2p();
615 EXPECT_EQ(SOFTBUS_OK, ret) << "OpenSession Proxy fail";
616
617 int optionvalue = 0;
618 ret = GetSessionOption(GetCurrentSessionId4Proxy(), SESSION_OPTION_MAX_SENDMESSAGE_SIZE,
619 &optionvalue, sizeof(optionvalue));
620 EXPECT_EQ(SOFTBUS_OK, ret) << "GetSessionOption fail";
621 LOG("GetSessionOption optionvalue = %d", optionvalue);
622 int size = optionvalue;
623 ret = SendData4Message(DATA_TYPE_MSG, size);
624 EXPECT_EQ(SOFTBUS_OK, ret) << "SendData4Data(msg,Max) fail";
625
626 ret = CloseSessionAndRemoveSs4Proxy();
627 EXPECT_EQ(SOFTBUS_OK, ret) << "close session and remove Ss fail";
628 }
629
630 /**
631 * @tc.number : SUB_DSoftbus_Spec_DCTS_SendMessage_P2P_0600
632 * @tc.name : SendMessage Packet size Max +1 by session Negotiate, proxy channel, send and receive failed
633 * @tc.desc : [G-DISTRIBUTED-0210] 使用消息传输接口,消息大小不超过4K字节,超过时需要业务对消息进行分包
634 * 处理,或者改为使用字节传输接口,字节传输可支持最大4M字节
635 * @tc.type : FUNC
636 * @tc.size : MediumTest
637 */
HWTEST_F(TransFuncTest, SUB_DSoftbus_Spec_DCTS_SendMessage_P2P_0600, TestSize.Level3)638 HWTEST_F(TransFuncTest, SUB_DSoftbus_Spec_DCTS_SendMessage_P2P_0600, TestSize.Level3)
639 {
640 int ret;
641 ret = CreateSessionServer(DEF_PKG_NAME, SESSION_NAME_PROXY, GetSessionListenser4Proxy());
642 ASSERT_EQ(SOFTBUS_OK, ret) << "create Ss [Proxy] fail";
643
644 ret = OpenSession4ProxyByP2p();
645 ASSERT_EQ(SOFTBUS_OK, ret) << "OpenSession Proxy fail";
646
647 int optionvalue = 0;
648 ret = GetSessionOption(GetCurrentSessionId4Proxy(), SESSION_OPTION_MAX_SENDMESSAGE_SIZE,
649 &optionvalue, sizeof(optionvalue));
650 EXPECT_EQ(SOFTBUS_OK, ret) << "GetSessionOption fail";
651 LOG("GetSessionOption optionvalue = %d", optionvalue);
652 int size = optionvalue + 1;
653 ret = SendData4Message(DATA_TYPE_MSG, size);
654 EXPECT_NE(SOFTBUS_OK, ret) << "call sendmsg(Max+1) fail";
655
656 ret = CloseSessionAndRemoveSs4Proxy();
657 EXPECT_EQ(SOFTBUS_OK, ret) << "close session and remove Ss fail";
658 }