• 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 #include "net_trans_common.h"
18 #include "wifi_utils.h"
19 #include "accesstoken_kit.h"
20 
21 #define I_FRAME_SIZE (150 * 1024)
22 #define P_FRAME_SIZE (30 * 1024)
23 
24 using namespace testing::ext;
25 
26 class TransStreamTest : public testing::Test {
27    public:
28     static void SetUpTestCase();
29     static void TearDownTestCase();
30     void SetUp();
31     void TearDown();
32 };
33 
SetUp()34 void TransStreamTest::SetUp() {}
35 
TearDown()36 void TransStreamTest::TearDown() {}
37 
SetUpTestCase()38 void TransStreamTest::SetUpTestCase()
39 {
40     LOG("SetUp begin");
41     AddPermission();
42     sleep(1);
43     OHOS::Security::AccessToken::AccessTokenKit::ReloadNativeTokenInfo();
44     sleep(1);
45     TestSetUp();
46     int ret = RegisterDeviceStateDefCallback();
47     EXPECT_EQ(SOFTBUS_OK, ret) << "call reg node state callback fail";
48     ret = CheckRemoteDeviceIsNull(BOOL_TRUE);
49     ASSERT_EQ(SOFTBUS_OK, ret) << "get node fail,please check network";
50 }
51 
TearDownTestCase()52 void TransStreamTest::TearDownTestCase()
53 {
54     int ret = UnRegisterDeviceStateDefCallback();
55     EXPECT_EQ(SOFTBUS_OK, ret) << "call unReg node state callback fail";
56 
57     TestTearDown();
58 }
59 
60 /**
61  * @tc.number   : SUB_DSoftbus_Spec_DCTS_SendStream_0100
62  * @tc.name     : test Stream
63  * @tc.desc     : Test send stream function
64  * @tc.type     : FUNC
65  * @tc.size     : MediumTest
66  */
67 HWTEST_F(TransStreamTest, SUB_DSoftbus_Spec_DCTS_SendStream_0100, TestSize.Level2) {
68     int ret;
69 
70     string data = "send stream transmission test!!!!";
71     char *sendData = (char *)malloc(data.length() + 1);
72     EXPECT_NE(sendData, nullptr);
73     ret = strcpy_s(sendData, data.length() + 1, data.c_str());
74     EXPECT_EQ(ret, SOFTBUS_OK);
75     StreamData extStreamData {0};
76     StreamData streamData {
77         .buf = sendData,
78         .bufLen = data.length() + 1,
79     };
80     StreamFrameInfo  frame = {0};
81 
82     ret = CreateSessionServer(DEF_PKG_NAME, SESSION_NAME_STREAM, GetSessionListenser4Stream());
83     EXPECT_EQ(SOFTBUS_OK, ret) << "CreateSS[Stream] fail";
84 
85     SessionAttribute attr;
86     (void)memset_s(&attr, sizeof(attr), 0, sizeof(attr));
87     attr.dataType = TYPE_STREAM;
88     ResetWaitFlag4Stream();
89     int sessionId = OpenSession(SESSION_NAME_STREAM, SESSION_NAME_STREAM, GetNetworkId(),
90                           DEF_GROUP_ID, &attr);
91     EXPECT_TRUE(sessionId >= SESSION_ID_MIN) << "call OpenSession[Stream] fail, sessionId=" << sessionId;
92     if (sessionId >= SESSION_ID_MIN) {
93         ret = Wait4Session(5, SESSION_4STREAM);
94         EXPECT_EQ(SOFTBUS_OK, ret) << "wait opensession fail[Stream]";
95         LOG("call OpenSession[Stream] success");
96     }
97     ResetWaitFlag4Stream();
98     ret = SendStream(sessionId, &streamData, &extStreamData, &frame);
99     EXPECT_EQ(SOFTBUS_OK, ret) << "call SendStream fail";
100 
101     CloseSession(sessionId);
102     ret = RemoveSessionServer(DEF_PKG_NAME, SESSION_NAME_STREAM);
103     EXPECT_EQ(SOFTBUS_OK, ret) << "RemoveSS[proxy] fail";
104 }
105 
106 /**
107  * @tc.number   : SUB_DSoftbus_Spec_DCTS_SendStream_P2P_0100
108  * @tc.name     : test Stream By P2P
109  * @tc.desc     : Test send stream function
110  * @tc.type     : FUNC
111  * @tc.size     : MediumTest
112  */
113 HWTEST_F(TransStreamTest, SUB_DSoftbus_Spec_DCTS_SendStream_P2P_0100, TestSize.Level2) {
114     int ret;
115 
116     string data = "send stream transmission test!!!!";
117     char *sendData = (char *)malloc(data.length() + 1);
118     EXPECT_NE(sendData, nullptr);
119     ret = strcpy_s(sendData, data.length() + 1, data.c_str());
120     EXPECT_EQ(ret, SOFTBUS_OK);
121     StreamData extStreamData {0};
122     StreamData streamData {
123         .buf = sendData,
124         .bufLen = data.length() + 1,
125     };
126     StreamFrameInfo  frame = {0};
127 
128     ret = CreateSessionServer(DEF_PKG_NAME, SESSION_NAME_STREAM, GetSessionListenser4Stream());
129     EXPECT_EQ(SOFTBUS_OK, ret) << "CreateSS[Stream] fail";
130 
131     SessionAttribute attr;
132     (void)memset_s(&attr, sizeof(attr), 0, sizeof(attr));
133     attr.dataType = TYPE_STREAM;
134     attr.linkTypeNum = 1;
135     attr.linkType[0] = LINK_TYPE_WIFI_P2P;
136     ResetWaitFlag4Stream();
137     int sessionId = OpenSession(SESSION_NAME_STREAM, SESSION_NAME_STREAM, GetNetworkId(),
138                           DEF_GROUP_ID, &attr);
139     EXPECT_TRUE(sessionId >= SESSION_ID_MIN) << "call OpenSession[Stream] fail, sessionId=" << sessionId;
140     if (sessionId >= SESSION_ID_MIN) {
141         ret = Wait4Session(5, SESSION_4STREAM);
142         EXPECT_EQ(SOFTBUS_OK, ret) << "wait opensession fail[Stream]";
143         LOG("call OpenSession[Stream] success");
144     }
145     ResetWaitFlag4Stream();
146     ret = SendStream(sessionId, &streamData, &extStreamData, &frame);
147     EXPECT_EQ(SOFTBUS_OK, ret) << "call SendStream fail";
148 
149     CloseSession(sessionId);
150     ret = RemoveSessionServer(DEF_PKG_NAME, SESSION_NAME_STREAM);
151     EXPECT_EQ(SOFTBUS_OK, ret) << "RemoveSS[proxy] fail";
152 }