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 #include "wifi_hal_wpa_p2p_test.h"
16 #include "securec.h"
17 #include "mock_wpa_ctrl.h"
18 #include "wifi_hal_crpc_server.h"
19 #include "wifi_hal_common_func.h"
20 #include "wifi_log.h"
21 #undef LOG_TAG
22 #define LOG_TAG "WifiHalWpaP2pTest"
23
24 using namespace testing::ext;
25
26 namespace OHOS {
27 namespace Wifi {
28 const std::string g_rpcSockPath = "./unix_sock_test.sock";
29 WifiWpaInterface *WifiHalWpaP2pTest::mGlobalInterface = nullptr;
30 WifiWpaP2pInterface *WifiHalWpaP2pTest::mInterface = nullptr;
31 RpcServer *WifiHalWpaP2pTest::mServer = nullptr;
32
SetUpTestCase()33 void WifiHalWpaP2pTest::SetUpTestCase()
34 {
35 if (access(g_rpcSockPath.c_str(), 0) == 0) {
36 unlink(g_rpcSockPath.c_str());
37 }
38 mServer = CreateRpcServer(g_rpcSockPath.c_str());
39 if (mServer == nullptr) {
40 printf("Init rpc server failed!");
41 exit(-1);
42 }
43 InitCallbackMsg();
44 SetRpcServerInited(mServer);
45 MockInitGlobalCmd();
46 MockInitP2pSupportedCmd();
47 mGlobalInterface = GetWifiWapGlobalInterface();
48 mGlobalInterface->wpaCliConnect(mGlobalInterface);
49 mInterface = GetWifiWapP2pInterface();
50 }
51
TearDownTestCase()52 void WifiHalWpaP2pTest::TearDownTestCase()
53 {
54 sleep(1);
55 RelesaeWpaP2pInterface();
56 if (mServer != nullptr) {
57 ReleaseRpcServer(mServer);
58 mServer = nullptr;
59 }
60 SetRpcServerInited(NULL);
61 ReleaseCallbackMsg();
62 }
63
64 HWTEST_F(WifiHalWpaP2pTest, GetWifiWpaP2pInterfaceTest, TestSize.Level1)
65 {
66 WifiWpaP2pInterface *p = GetWifiWapP2pInterface();
67 EXPECT_TRUE(p == mInterface);
68 }
69
70 HWTEST_F(WifiHalWpaP2pTest, WpaP2pCliCmdSetWpsNameTest, TestSize.Level1)
71 {
72 EXPECT_TRUE(mInterface->wpaP2pCliCmdSetWpsName(nullptr, nullptr) != P2P_SUP_ERRCODE_SUCCESS);
73 MockEraseSupportedCmd("SET");
74 char name[] = "p2p_device";
75 EXPECT_TRUE(mInterface->wpaP2pCliCmdSetWpsName(mInterface, name) != P2P_SUP_ERRCODE_SUCCESS);
76 MockSetWpaExpectCmdResponse("SET", "FAIL\n");
77 EXPECT_TRUE(mInterface->wpaP2pCliCmdSetWpsName(mInterface, name) != P2P_SUP_ERRCODE_SUCCESS);
78 MockSetWpaExpectCmdResponse("SET", "OK\n");
79 EXPECT_TRUE(mInterface->wpaP2pCliCmdSetWpsName(mInterface, name) == P2P_SUP_ERRCODE_SUCCESS);
80 }
81
82 HWTEST_F(WifiHalWpaP2pTest, WpaP2pCliCmdSetWpsDeviceTypeTest, TestSize.Level1)
83 {
84 EXPECT_TRUE(mInterface->wpaP2pCliCmdSetWpsName(nullptr, nullptr) != P2P_SUP_ERRCODE_SUCCESS);
85 MockEraseSupportedCmd("SET");
86 char type[] = "p2p_device_type";
87 EXPECT_TRUE(mInterface->wpaP2pCliCmdSetWpsDeviceType(mInterface, type) != P2P_SUP_ERRCODE_SUCCESS);
88 MockSetWpaExpectCmdResponse("SET", "FAIL\n");
89 EXPECT_TRUE(mInterface->wpaP2pCliCmdSetWpsDeviceType(mInterface, type) != P2P_SUP_ERRCODE_SUCCESS);
90 MockSetWpaExpectCmdResponse("SET", "OK\n");
91 EXPECT_TRUE(mInterface->wpaP2pCliCmdSetWpsDeviceType(mInterface, type) == P2P_SUP_ERRCODE_SUCCESS);
92 }
93
94 HWTEST_F(WifiHalWpaP2pTest, WpaP2pCliCmdSetWpsConfigMethodsTest, TestSize.Level1)
95 {
96 EXPECT_TRUE(mInterface->wpaP2pCliCmdSetWpsConfigMethods(nullptr, nullptr) != P2P_SUP_ERRCODE_SUCCESS);
97 MockEraseSupportedCmd("SET");
98 char methods[] = "p2p_config_method";
99 EXPECT_TRUE(mInterface->wpaP2pCliCmdSetWpsConfigMethods(mInterface, methods) != P2P_SUP_ERRCODE_SUCCESS);
100 MockSetWpaExpectCmdResponse("SET", "FAIL\n");
101 EXPECT_TRUE(mInterface->wpaP2pCliCmdSetWpsConfigMethods(mInterface, methods) != P2P_SUP_ERRCODE_SUCCESS);
102 MockSetWpaExpectCmdResponse("SET", "OK\n");
103 EXPECT_TRUE(mInterface->wpaP2pCliCmdSetWpsConfigMethods(mInterface, methods) == P2P_SUP_ERRCODE_SUCCESS);
104 }
105
106 HWTEST_F(WifiHalWpaP2pTest, WpaP2pCliCmdSetSsidPostfixNameTest, TestSize.Level1)
107 {
108 EXPECT_TRUE(mInterface->wpaP2pCliCmdSetSsidPostfixName(nullptr, nullptr) != P2P_SUP_ERRCODE_SUCCESS);
109 MockEraseSupportedCmd("P2P_SET");
110 char postfix[] = "p2p_postfix_name";
111 EXPECT_TRUE(mInterface->wpaP2pCliCmdSetSsidPostfixName(mInterface, postfix) != P2P_SUP_ERRCODE_SUCCESS);
112 MockSetWpaExpectCmdResponse("P2P_SET", "FAIL\n");
113 EXPECT_TRUE(mInterface->wpaP2pCliCmdSetSsidPostfixName(mInterface, postfix) != P2P_SUP_ERRCODE_SUCCESS);
114 MockSetWpaExpectCmdResponse("P2P_SET", "OK\n");
115 EXPECT_TRUE(mInterface->wpaP2pCliCmdSetSsidPostfixName(mInterface, postfix) == P2P_SUP_ERRCODE_SUCCESS);
116 }
117
118 HWTEST_F(WifiHalWpaP2pTest, WpaP2pCliCmdGetDeviceAddressTest, TestSize.Level1)
119 {
120 EXPECT_TRUE(mInterface->wpaP2pCliCmdGetDeviceAddress(nullptr, nullptr, 0) != P2P_SUP_ERRCODE_SUCCESS);
121 MockEraseSupportedCmd("STATUS");
122 char address[18] = {0};
123 int size = 18;
124 EXPECT_TRUE(mInterface->wpaP2pCliCmdGetDeviceAddress(mInterface, address, size) != P2P_SUP_ERRCODE_SUCCESS);
125 char buf1[] = "wpa_state=SCANNING\n"
126 "ip_address=192.168.xxx.xxx\n"
127 "freq=1024\n"
128 "key_mgmt=WPA-PSK\n";
129 MockSetWpaExpectCmdResponse("STATUS", buf1);
130 EXPECT_TRUE(mInterface->wpaP2pCliCmdGetDeviceAddress(mInterface, address, size) != P2P_SUP_ERRCODE_SUCCESS);
131 EXPECT_TRUE(strlen(address) == 0);
132 char buf2[] = "wpa_state=SCANNING\n"
133 "ip_address=192.168.xxx.xxx\n"
134 "freq=1024\n"
135 "key_mgmt=WPA-PSK\n"
136 "p2p_device_address=00:00:00:00:00:00\n";
137 MockSetWpaExpectCmdResponse("STATUS", buf2);
138 EXPECT_TRUE(mInterface->wpaP2pCliCmdGetDeviceAddress(mInterface, address, size) == P2P_SUP_ERRCODE_SUCCESS);
139 EXPECT_TRUE(strcmp(address, "00:00:00:00:00:00") == 0);
140 }
141
142 HWTEST_F(WifiHalWpaP2pTest, WpaP2pCliCmdFlushTest, TestSize.Level1)
143 {
144 EXPECT_TRUE(mInterface->wpaP2pCliCmdFlush(nullptr) != P2P_SUP_ERRCODE_SUCCESS);
145 MockEraseSupportedCmd("P2P_FLUSH");
146 EXPECT_TRUE(mInterface->wpaP2pCliCmdFlush(mInterface) != P2P_SUP_ERRCODE_SUCCESS);
147 MockSetWpaExpectCmdResponse("P2P_FLUSH", "FAIL\n");
148 EXPECT_TRUE(mInterface->wpaP2pCliCmdFlush(mInterface) != P2P_SUP_ERRCODE_SUCCESS);
149 MockSetWpaExpectCmdResponse("P2P_FLUSH", "OK\n");
150 EXPECT_TRUE(mInterface->wpaP2pCliCmdFlush(mInterface) == P2P_SUP_ERRCODE_SUCCESS);
151 char replyDeviceLost[] = "P2P-DEVICE-LOST p2p_dev_addr=00:00:00:00:00:00\n";
152 MockWpaCallback(mGlobalInterface->wpaCtrl.pSend, replyDeviceLost);
153 }
154
155 HWTEST_F(WifiHalWpaP2pTest, WpaP2pCliCmdFlushServiceTest, TestSize.Level1)
156 {
157 EXPECT_TRUE(mInterface->wpaP2pCliCmdFlushService(nullptr) != P2P_SUP_ERRCODE_SUCCESS);
158 MockEraseSupportedCmd("P2P_SERVICE_FLUSH");
159 EXPECT_TRUE(mInterface->wpaP2pCliCmdFlushService(mInterface) != P2P_SUP_ERRCODE_SUCCESS);
160 MockSetWpaExpectCmdResponse("P2P_SERVICE_FLUSH", "FAIL\n");
161 EXPECT_TRUE(mInterface->wpaP2pCliCmdFlushService(mInterface) != P2P_SUP_ERRCODE_SUCCESS);
162 MockSetWpaExpectCmdResponse("P2P_SERVICE_FLUSH", "OK\n");
163 EXPECT_TRUE(mInterface->wpaP2pCliCmdFlushService(mInterface) == P2P_SUP_ERRCODE_SUCCESS);
164 }
165
166 HWTEST_F(WifiHalWpaP2pTest, WpaP2pCliCmdP2pStopFindTest, TestSize.Level1)
167 {
168 EXPECT_TRUE(mInterface->wpaP2pCliCmdP2pStopFind(nullptr) != P2P_SUP_ERRCODE_SUCCESS);
169 MockEraseSupportedCmd("P2P_STOP_FIND");
170 EXPECT_TRUE(mInterface->wpaP2pCliCmdP2pStopFind(mInterface) != P2P_SUP_ERRCODE_SUCCESS);
171 MockSetWpaExpectCmdResponse("P2P_STOP_FIND", "FAIL\n");
172 EXPECT_TRUE(mInterface->wpaP2pCliCmdP2pStopFind(mInterface) != P2P_SUP_ERRCODE_SUCCESS);
173 MockSetWpaExpectCmdResponse("P2P_STOP_FIND", "OK\n");
174 EXPECT_TRUE(mInterface->wpaP2pCliCmdP2pStopFind(mInterface) == P2P_SUP_ERRCODE_SUCCESS);
175 char replyFindStop[] = "P2P-FIND-STOPPED \n";
176 MockWpaCallback(mGlobalInterface->wpaCtrl.pSend, replyFindStop);
177 }
178
179 HWTEST_F(WifiHalWpaP2pTest, WpaP2pCliCmdP2pRemoveGroupTest, TestSize.Level1)
180 {
181 EXPECT_TRUE(mInterface->wpaP2pCliCmdP2pRemoveGroup(nullptr, nullptr) != P2P_SUP_ERRCODE_SUCCESS);
182 char groupname[] = "p2p-dev-p2p0";
183 MockEraseSupportedCmd("P2P_GROUP_REMOVE");
184 EXPECT_TRUE(mInterface->wpaP2pCliCmdP2pRemoveGroup(mInterface, groupname) != P2P_SUP_ERRCODE_SUCCESS);
185 MockSetWpaExpectCmdResponse("P2P_GROUP_REMOVE", "FAIL\n");
186 EXPECT_TRUE(mInterface->wpaP2pCliCmdP2pRemoveGroup(mInterface, groupname) != P2P_SUP_ERRCODE_SUCCESS);
187 MockSetWpaExpectCmdResponse("P2P_GROUP_REMOVE", "OK\n");
188 EXPECT_TRUE(mInterface->wpaP2pCliCmdP2pRemoveGroup(mInterface, groupname) == P2P_SUP_ERRCODE_SUCCESS);
189 char replyGroupRemove[] = "P2P-GROUP-REMOVED p2p-dev-p2p0 GO reason=REQUESTED\n";
190 MockWpaCallback(mGlobalInterface->wpaCtrl.pSend, replyGroupRemove);
191 }
192
193 HWTEST_F(WifiHalWpaP2pTest, WpaP2pCliCmdP2pFoundTest, TestSize.Level1)
194 {
195 EXPECT_TRUE(mInterface->wpaP2pCliCmdP2pFound(nullptr, 0) != P2P_SUP_ERRCODE_SUCCESS);
196 MockEraseSupportedCmd("P2P_FIND");
197 EXPECT_TRUE(mInterface->wpaP2pCliCmdP2pFound(mInterface, 0) != P2P_SUP_ERRCODE_SUCCESS);
198 MockSetWpaExpectCmdResponse("P2P_FIND", "FAIL\n");
199 EXPECT_TRUE(mInterface->wpaP2pCliCmdP2pFound(mInterface, 0) != P2P_SUP_ERRCODE_SUCCESS);
200 MockSetWpaExpectCmdResponse("P2P_FIND", "OK\n");
201 EXPECT_TRUE(mInterface->wpaP2pCliCmdP2pFound(mInterface, 0) == P2P_SUP_ERRCODE_SUCCESS);
202 EXPECT_TRUE(mInterface->wpaP2pCliCmdP2pFound(mInterface, -1) == P2P_SUP_ERRCODE_SUCCESS);
203
204 char replyP2pFound[] =
205 "<3>P2P-DEVICE-FOUND ff:ff:ff:ff:ff:ff p2p_dev_addr=00:00:00:00:00:00 pri_dev_type=1-0050f204-1 "
206 "name='Wireless Client' config_methods=0xa4 dev_capab=0x2C group_capab=0xdD "
207 "wfd_dev_info=0x00111c440032 new=1\n";
208 MockWpaCallback(mGlobalInterface->wpaCtrl.pSend, replyP2pFound);
209 }
210
211 HWTEST_F(WifiHalWpaP2pTest, WpaP2pCliCmdRemoveNetworkTest, TestSize.Level1)
212 {
213 EXPECT_TRUE(mInterface->wpaP2pCliCmdRemoveNetwork(nullptr, 0) != P2P_SUP_ERRCODE_SUCCESS);
214 MockEraseSupportedCmd("REMOVE_NETWORK");
215 EXPECT_TRUE(mInterface->wpaP2pCliCmdRemoveNetwork(mInterface, 0) != P2P_SUP_ERRCODE_SUCCESS);
216 MockSetWpaExpectCmdResponse("REMOVE_NETWORK", "FAIL\n");
217 EXPECT_TRUE(mInterface->wpaP2pCliCmdRemoveNetwork(mInterface, 0) != P2P_SUP_ERRCODE_SUCCESS);
218 MockSetWpaExpectCmdResponse("REMOVE_NETWORK", "OK\n");
219 EXPECT_TRUE(mInterface->wpaP2pCliCmdRemoveNetwork(mInterface, 0) == P2P_SUP_ERRCODE_SUCCESS);
220 EXPECT_TRUE(mInterface->wpaP2pCliCmdRemoveNetwork(mInterface, -1) == P2P_SUP_ERRCODE_SUCCESS);
221 EXPECT_TRUE(mInterface->wpaP2pCliCmdRemoveNetwork(mInterface, -2) != P2P_SUP_ERRCODE_SUCCESS);
222 }
223
224 HWTEST_F(WifiHalWpaP2pTest, WpaP2pCliCmdSetWfdEnableTest, TestSize.Level1)
225 {
226 EXPECT_TRUE(mInterface->wpaP2pCliCmdSetWfdEnable(nullptr, 0) != P2P_SUP_ERRCODE_SUCCESS);
227 MockEraseSupportedCmd("SET");
228 EXPECT_TRUE(mInterface->wpaP2pCliCmdSetWfdEnable(mInterface, 0) != P2P_SUP_ERRCODE_SUCCESS);
229 MockSetWpaExpectCmdResponse("SET", "FAIL\n");
230 EXPECT_TRUE(mInterface->wpaP2pCliCmdSetWfdEnable(mInterface, 0) != P2P_SUP_ERRCODE_SUCCESS);
231 MockSetWpaExpectCmdResponse("SET", "OK\n");
232 EXPECT_TRUE(mInterface->wpaP2pCliCmdSetWfdEnable(mInterface, 0) == P2P_SUP_ERRCODE_SUCCESS);
233 }
234
235 HWTEST_F(WifiHalWpaP2pTest, WpaP2pCliCmdSetWfdDeviceInfoTest, TestSize.Level1)
236 {
237 EXPECT_TRUE(mInterface->wpaP2pCliCmdSetWfdDeviceInfo(nullptr, nullptr) != P2P_SUP_ERRCODE_SUCCESS);
238 MockEraseSupportedCmd("WFD_SUBELEM_SET");
239 char conf[] = "xxxxxxxx";
240 EXPECT_TRUE(mInterface->wpaP2pCliCmdSetWfdDeviceInfo(mInterface, conf) != P2P_SUP_ERRCODE_SUCCESS);
241 MockSetWpaExpectCmdResponse("WFD_SUBELEM_SET", "FAIL\n");
242 EXPECT_TRUE(mInterface->wpaP2pCliCmdSetWfdDeviceInfo(mInterface, conf) != P2P_SUP_ERRCODE_SUCCESS);
243 MockSetWpaExpectCmdResponse("WFD_SUBELEM_SET", "OK\n");
244 EXPECT_TRUE(mInterface->wpaP2pCliCmdSetWfdDeviceInfo(mInterface, conf) == P2P_SUP_ERRCODE_SUCCESS);
245 }
246
247 HWTEST_F(WifiHalWpaP2pTest, WpaP2pCliCmdExtListenTest, TestSize.Level1)
248 {
249 EXPECT_TRUE(mInterface->wpaP2pCliCmdExtListen(nullptr, 0, 0, 0) != P2P_SUP_ERRCODE_SUCCESS);
250 MockEraseSupportedCmd("P2P_EXT_LISTEN");
251 EXPECT_TRUE(mInterface->wpaP2pCliCmdExtListen(mInterface, 0, 0, 0) != P2P_SUP_ERRCODE_SUCCESS);
252 MockSetWpaExpectCmdResponse("P2P_EXT_LISTEN", "FAIL\n");
253 EXPECT_TRUE(mInterface->wpaP2pCliCmdExtListen(mInterface, 0, 0, 0) != P2P_SUP_ERRCODE_SUCCESS);
254 MockSetWpaExpectCmdResponse("P2P_EXT_LISTEN", "OK\n");
255 EXPECT_TRUE(mInterface->wpaP2pCliCmdExtListen(mInterface, 0, 0, 0) == P2P_SUP_ERRCODE_SUCCESS);
256 EXPECT_TRUE(mInterface->wpaP2pCliCmdExtListen(mInterface, 1, 120, 30) == P2P_SUP_ERRCODE_SUCCESS);
257 }
258
259 HWTEST_F(WifiHalWpaP2pTest, WpaP2pCliCmdSetListenChannelTest, TestSize.Level1)
260 {
261 EXPECT_TRUE(mInterface->wpaP2pCliCmdSetListenChannel(nullptr, 0, 0) != P2P_SUP_ERRCODE_SUCCESS);
262 MockEraseSupportedCmd("P2P_SET");
263 EXPECT_TRUE(mInterface->wpaP2pCliCmdSetListenChannel(mInterface, 0, 0) != P2P_SUP_ERRCODE_SUCCESS);
264 MockSetWpaExpectCmdResponse("P2P_SET", "FAIL\n");
265 EXPECT_TRUE(mInterface->wpaP2pCliCmdSetListenChannel(mInterface, 0, 0) != P2P_SUP_ERRCODE_SUCCESS);
266 MockSetWpaExpectCmdResponse("P2P_SET", "OK\n");
267 EXPECT_TRUE(mInterface->wpaP2pCliCmdSetListenChannel(mInterface, 0, 0) == P2P_SUP_ERRCODE_SUCCESS);
268 EXPECT_TRUE(mInterface->wpaP2pCliCmdSetListenChannel(mInterface, 0, 1) == P2P_SUP_ERRCODE_SUCCESS);
269 }
270
271 HWTEST_F(WifiHalWpaP2pTest, WpaP2pCliCmdCancelConnectTest, TestSize.Level1)
272 {
273 EXPECT_TRUE(mInterface->wpaP2pCliCmdCancelConnect(nullptr) != P2P_SUP_ERRCODE_SUCCESS);
274 MockEraseSupportedCmd("P2P_CANCEL");
275 EXPECT_TRUE(mInterface->wpaP2pCliCmdCancelConnect(mInterface) != P2P_SUP_ERRCODE_SUCCESS);
276 MockSetWpaExpectCmdResponse("P2P_CANCEL", "FAIL\n");
277 EXPECT_TRUE(mInterface->wpaP2pCliCmdCancelConnect(mInterface) != P2P_SUP_ERRCODE_SUCCESS);
278 MockSetWpaExpectCmdResponse("P2P_CANCEL", "OK\n");
279 EXPECT_TRUE(mInterface->wpaP2pCliCmdCancelConnect(mInterface) == P2P_SUP_ERRCODE_SUCCESS);
280 }
281
282 HWTEST_F(WifiHalWpaP2pTest, WpaP2pCliCmdInviteTest, TestSize.Level1)
283 {
284 EXPECT_TRUE(mInterface->wpaP2pCliCmdInvite(nullptr, nullptr) != P2P_SUP_ERRCODE_SUCCESS);
285 P2pHalInviteArgv argv;
286 ASSERT_TRUE(memset_s(&argv, sizeof(argv), 0, sizeof(argv)) == EOK);
287 EXPECT_TRUE(mInterface->wpaP2pCliCmdInvite(mInterface, &argv) != P2P_SUP_ERRCODE_SUCCESS);
288 StrSafeCopy(argv.ifname, sizeof(argv.ifname), "p2p-dev-p2p0");
289 EXPECT_TRUE(mInterface->wpaP2pCliCmdInvite(mInterface, &argv) != P2P_SUP_ERRCODE_SUCCESS);
290 StrSafeCopy(argv.gobssid, sizeof(argv.gobssid), "00:00:00:00:00:00");
291 EXPECT_TRUE(mInterface->wpaP2pCliCmdInvite(mInterface, &argv) != P2P_SUP_ERRCODE_SUCCESS);
292 StrSafeCopy(argv.peerbssid, sizeof(argv.peerbssid), "ff:ff:ff:ff:ff:ff");
293 MockEraseSupportedCmd("P2P_INVITE");
294 EXPECT_TRUE(mInterface->wpaP2pCliCmdInvite(mInterface, &argv) != P2P_SUP_ERRCODE_SUCCESS);
295 MockSetWpaExpectCmdResponse("P2P_INVITE", "FAIL\n");
296 EXPECT_TRUE(mInterface->wpaP2pCliCmdInvite(mInterface, &argv) != P2P_SUP_ERRCODE_SUCCESS);
297 MockSetWpaExpectCmdResponse("P2P_INVITE", "OK\n");
298 EXPECT_TRUE(mInterface->wpaP2pCliCmdInvite(mInterface, &argv) == P2P_SUP_ERRCODE_SUCCESS);
299 char replyInviteResult1[] = "P2P-INVITATION-RESULT status=0 00:00:00:00:00:00\n";
300 MockWpaCallback(mGlobalInterface->wpaCtrl.pSend, replyInviteResult1);
301 char replyInviteResult2[] = "P2P-INVITATION-RESULT status=0 \n";
302 MockWpaCallback(mGlobalInterface->wpaCtrl.pSend, replyInviteResult2);
303 char replyInviteReceive[] = "P2P-INVITATION-RECEIVED sa=00:00:00:00:00:00 persistent=4 freq=2467 "
304 "go_dev_addr=ff:ff:ff:ff:ff:ff bssid=0F:0F:0F:0F:0F:0F\n";
305 MockWpaCallback(mGlobalInterface->wpaCtrl.pSend, replyInviteReceive);
306 char replyInviateAccept[] = "P2P-INVITATION-ACCEPTED sa=00:00:00:00:00:00 persistent=0 freq=5180\n";
307 MockWpaCallback(mGlobalInterface->wpaCtrl.pSend, replyInviateAccept);
308 }
309
310 HWTEST_F(WifiHalWpaP2pTest, WpaP2pCliCmdReInviteTest, TestSize.Level1)
311 {
312 EXPECT_TRUE(mInterface->wpaP2pCliCmdReInvite(nullptr, nullptr) != P2P_SUP_ERRCODE_SUCCESS);
313 P2pHalReInviteArgv argv;
314 ASSERT_TRUE(memset_s(&argv, sizeof(argv), 0, sizeof(argv)) == EOK);
315 EXPECT_TRUE(mInterface->wpaP2pCliCmdReInvite(mInterface, &argv) != P2P_SUP_ERRCODE_SUCCESS);
316 StrSafeCopy(argv.peerbssid, sizeof(argv.peerbssid), "00:00:00:00:00:00");
317 MockEraseSupportedCmd("P2P_INVITE");
318 EXPECT_TRUE(mInterface->wpaP2pCliCmdReInvite(mInterface, &argv) != P2P_SUP_ERRCODE_SUCCESS);
319 MockSetWpaExpectCmdResponse("P2P_INVITE", "FAIL\n");
320 EXPECT_TRUE(mInterface->wpaP2pCliCmdReInvite(mInterface, &argv) != P2P_SUP_ERRCODE_SUCCESS);
321 MockSetWpaExpectCmdResponse("P2P_INVITE", "OK\n");
322 EXPECT_TRUE(mInterface->wpaP2pCliCmdReInvite(mInterface, &argv) == P2P_SUP_ERRCODE_SUCCESS);
323 }
324
325 HWTEST_F(WifiHalWpaP2pTest, WpaP2pCliCmdServiceAddTest, TestSize.Level1)
326 {
327 EXPECT_TRUE(mInterface->wpaP2pCliCmdServiceAdd(nullptr, nullptr) != P2P_SUP_ERRCODE_SUCCESS);
328 P2pServiceInfo info;
329 ASSERT_TRUE(memset_s(&info, sizeof(info), 0, sizeof(info)) == EOK);
330 EXPECT_TRUE(mInterface->wpaP2pCliCmdServiceAdd(mInterface, &info) != P2P_SUP_ERRCODE_SUCCESS);
331 StrSafeCopy(info.name, sizeof(info.name), "random_string");
332 MockEraseSupportedCmd("P2P_SERVICE_ADD");
333 EXPECT_TRUE(mInterface->wpaP2pCliCmdServiceAdd(mInterface, &info) != P2P_SUP_ERRCODE_SUCCESS);
334 MockSetWpaExpectCmdResponse("P2P_SERVICE_ADD", "FAIL\n");
335 EXPECT_TRUE(mInterface->wpaP2pCliCmdServiceAdd(mInterface, &info) != P2P_SUP_ERRCODE_SUCCESS);
336 MockSetWpaExpectCmdResponse("P2P_SERVICE_ADD", "OK\n");
337 EXPECT_TRUE(mInterface->wpaP2pCliCmdServiceAdd(mInterface, &info) == P2P_SUP_ERRCODE_SUCCESS);
338 info.mode = 1;
339 EXPECT_TRUE(mInterface->wpaP2pCliCmdServiceAdd(mInterface, &info) != P2P_SUP_ERRCODE_SUCCESS);
340 StrSafeCopy(info.query, sizeof(info.query), "random_hex_type_query_message");
341 EXPECT_TRUE(mInterface->wpaP2pCliCmdServiceAdd(mInterface, &info) != P2P_SUP_ERRCODE_SUCCESS);
342 StrSafeCopy(info.resp, sizeof(info.resp), "random_hex_type_resp_message");
343 EXPECT_TRUE(mInterface->wpaP2pCliCmdServiceAdd(mInterface, &info) == P2P_SUP_ERRCODE_SUCCESS);
344 }
345
346 HWTEST_F(WifiHalWpaP2pTest, WpaP2pCliCmdServiceDelTest, TestSize.Level1)
347 {
348 EXPECT_TRUE(mInterface->wpaP2pCliCmdServiceDel(nullptr, nullptr) != P2P_SUP_ERRCODE_SUCCESS);
349 P2pServiceInfo info;
350 ASSERT_TRUE(memset_s(&info, sizeof(info), 0, sizeof(info)) == EOK);
351 EXPECT_TRUE(mInterface->wpaP2pCliCmdServiceDel(mInterface, &info) != P2P_SUP_ERRCODE_SUCCESS);
352 StrSafeCopy(info.name, sizeof(info.name), "random_string");
353 MockEraseSupportedCmd("P2P_SERVICE_DEL");
354 EXPECT_TRUE(mInterface->wpaP2pCliCmdServiceDel(mInterface, &info) != P2P_SUP_ERRCODE_SUCCESS);
355 MockSetWpaExpectCmdResponse("P2P_SERVICE_DEL", "FAIL\n");
356 EXPECT_TRUE(mInterface->wpaP2pCliCmdServiceDel(mInterface, &info) != P2P_SUP_ERRCODE_SUCCESS);
357 MockSetWpaExpectCmdResponse("P2P_SERVICE_DEL", "OK\n");
358 EXPECT_TRUE(mInterface->wpaP2pCliCmdServiceDel(mInterface, &info) == P2P_SUP_ERRCODE_SUCCESS);
359 info.mode = 1;
360 EXPECT_TRUE(mInterface->wpaP2pCliCmdServiceDel(mInterface, &info) != P2P_SUP_ERRCODE_SUCCESS);
361 StrSafeCopy(info.query, sizeof(info.query), "random_hex_type_query_message");
362 EXPECT_TRUE(mInterface->wpaP2pCliCmdServiceDel(mInterface, &info) == P2P_SUP_ERRCODE_SUCCESS);
363 }
364
365 HWTEST_F(WifiHalWpaP2pTest, WpaP2pCliCmdServDiscReqTest, TestSize.Level1)
366 {
367 EXPECT_TRUE(mInterface->wpaP2pCliCmdServDiscReq(nullptr, nullptr, nullptr, nullptr, 0) != P2P_SUP_ERRCODE_SUCCESS);
368 char peerBssid[] = "00:00:00:00:00:00";
369 char tlvs[256] = {0};
370 char retSeq[64] = {0};
371 unsigned size = sizeof(retSeq);
372 EXPECT_TRUE(
373 mInterface->wpaP2pCliCmdServDiscReq(mInterface, peerBssid, tlvs, retSeq, size) != P2P_SUP_ERRCODE_SUCCESS);
374 StrSafeCopy(tlvs, sizeof(tlvs), "hex_type_tlv_string");
375 MockEraseSupportedCmd("P2P_SERV_DISC_REQ");
376 EXPECT_TRUE(
377 mInterface->wpaP2pCliCmdServDiscReq(mInterface, peerBssid, tlvs, retSeq, size) != P2P_SUP_ERRCODE_SUCCESS);
378 MockSetWpaExpectCmdResponse("P2P_SERV_DISC_REQ", "FAIL\n");
379 EXPECT_TRUE(
380 mInterface->wpaP2pCliCmdServDiscReq(mInterface, peerBssid, tlvs, retSeq, size) != P2P_SUP_ERRCODE_SUCCESS);
381 MockSetWpaExpectCmdResponse("P2P_SERV_DISC_REQ", "OK\n");
382 EXPECT_TRUE(
383 mInterface->wpaP2pCliCmdServDiscReq(mInterface, peerBssid, tlvs, retSeq, size) == P2P_SUP_ERRCODE_SUCCESS);
384 EXPECT_TRUE(strcmp(retSeq, "OK\n") == 0);
385 }
386
387 HWTEST_F(WifiHalWpaP2pTest, WpaP2pCliCmdServDiscCancelReqTest, TestSize.Level1)
388 {
389 EXPECT_TRUE(mInterface->wpaP2pCliCmdServDiscCancelReq(nullptr, nullptr) != P2P_SUP_ERRCODE_SUCCESS);
390 char val[] = "hex_string";
391 MockEraseSupportedCmd("P2P_SERV_DISC_CANCEL_REQ");
392 EXPECT_TRUE(mInterface->wpaP2pCliCmdServDiscCancelReq(mInterface, val) != P2P_SUP_ERRCODE_SUCCESS);
393 MockSetWpaExpectCmdResponse("P2P_SERV_DISC_CANCEL_REQ", "FAIL\n");
394 EXPECT_TRUE(mInterface->wpaP2pCliCmdServDiscCancelReq(mInterface, val) != P2P_SUP_ERRCODE_SUCCESS);
395 MockSetWpaExpectCmdResponse("P2P_SERV_DISC_CANCEL_REQ", "OK\n");
396 EXPECT_TRUE(mInterface->wpaP2pCliCmdServDiscCancelReq(mInterface, val) == P2P_SUP_ERRCODE_SUCCESS);
397 }
398
399 HWTEST_F(WifiHalWpaP2pTest, WpaP2pCliCmdProvisionDiscoveryTest, TestSize.Level1)
400 {
401 EXPECT_TRUE(mInterface->wpaP2pCliCmdProvisionDiscovery(nullptr, nullptr) != P2P_SUP_ERRCODE_SUCCESS);
402 P2pProvisionDiscoveryArgv argv;
403 ASSERT_TRUE(memset_s(&argv, sizeof(argv), 0, sizeof(argv)) == EOK);
404 EXPECT_TRUE(mInterface->wpaP2pCliCmdProvisionDiscovery(mInterface, &argv) != P2P_SUP_ERRCODE_SUCCESS);
405 argv.mode = HAL_WPS_METHOD_PBC;
406 StrSafeCopy(argv.peerbssid, sizeof(argv.peerbssid), "00:00:00:00:00:00");
407 MockEraseSupportedCmd("P2P_PROV_DISC");
408 EXPECT_TRUE(mInterface->wpaP2pCliCmdProvisionDiscovery(mInterface, &argv) != P2P_SUP_ERRCODE_SUCCESS);
409 MockSetWpaExpectCmdResponse("P2P_PROV_DISC", "FAIL\n");
410 EXPECT_TRUE(mInterface->wpaP2pCliCmdProvisionDiscovery(mInterface, &argv) != P2P_SUP_ERRCODE_SUCCESS);
411 MockSetWpaExpectCmdResponse("P2P_PROV_DISC", "OK\n");
412 EXPECT_TRUE(mInterface->wpaP2pCliCmdProvisionDiscovery(mInterface, &argv) == P2P_SUP_ERRCODE_SUCCESS);
413 argv.mode = HAL_WPS_METHOD_DISPLAY;
414 EXPECT_TRUE(mInterface->wpaP2pCliCmdProvisionDiscovery(mInterface, &argv) == P2P_SUP_ERRCODE_SUCCESS);
415 argv.mode = HAL_WPS_METHOD_KEYPAD;
416 EXPECT_TRUE(mInterface->wpaP2pCliCmdProvisionDiscovery(mInterface, &argv) == P2P_SUP_ERRCODE_SUCCESS);
417 argv.mode = HAL_WPS_METHOD_LABEL;
418 EXPECT_TRUE(mInterface->wpaP2pCliCmdProvisionDiscovery(mInterface, &argv) != P2P_SUP_ERRCODE_SUCCESS);
419 argv.mode = HAL_WPS_METHOD_INVALID;
420 EXPECT_TRUE(mInterface->wpaP2pCliCmdProvisionDiscovery(mInterface, &argv) != P2P_SUP_ERRCODE_SUCCESS);
421
422 char replyDiscPbcReq1[] = "P2P-PROV-DISC-PBC-REQ 00:00:00:00:00:00 \n";
423 MockWpaCallback(mGlobalInterface->wpaCtrl.pSend, replyDiscPbcReq1);
424 char replyDiscPbcReq2[] = "P2P-PROV-DISC-PBC-REQ invalid mac \n";
425 MockWpaCallback(mGlobalInterface->wpaCtrl.pSend, replyDiscPbcReq2);
426 char replyDiscEnterPin1[] = "P2P-PROV-DISC-ENTER-PIN 00:00:00:00:00:00 \n";
427 MockWpaCallback(mGlobalInterface->wpaCtrl.pSend, replyDiscEnterPin1);
428 char replyDiscEnterPin2[] = "P2P-PROV-DISC-ENTER-PIN invalid mac \n";
429 MockWpaCallback(mGlobalInterface->wpaCtrl.pSend, replyDiscEnterPin2);
430 char replyDiscShowPin1[] = "P2P-PROV-DISC-SHOW-PIN 00:00:00:00:00:00 12345678\n";
431 MockWpaCallback(mGlobalInterface->wpaCtrl.pSend, replyDiscShowPin1);
432 char replyDiscShowPin2[] = "P2P-PROV-DISC-SHOW-PIN invalid mac \n";
433 MockWpaCallback(mGlobalInterface->wpaCtrl.pSend, replyDiscShowPin2);
434 char replyServiceDiscReq[] = "P2P-SERV-DISC-REQ 2462 00:00:00:00:00:00 0 0 0200010102000202\n";
435 MockWpaCallback(mGlobalInterface->wpaCtrl.pSend, replyServiceDiscReq);
436 }
437
438 HWTEST_F(WifiHalWpaP2pTest, WpaP2pCliCmdGroupAddTest, TestSize.Level1)
439 {
440 EXPECT_TRUE(mInterface->wpaP2pCliCmdGroupAdd(nullptr, 0, 0, 0) != P2P_SUP_ERRCODE_SUCCESS);
441 MockEraseSupportedCmd("P2P_GROUP_ADD");
442 EXPECT_TRUE(mInterface->wpaP2pCliCmdGroupAdd(mInterface, 0, 0, 0) != P2P_SUP_ERRCODE_SUCCESS);
443 MockSetWpaExpectCmdResponse("P2P_GROUP_ADD", "FAIL\n");
444 EXPECT_TRUE(mInterface->wpaP2pCliCmdGroupAdd(mInterface, 0, 0, 0) != P2P_SUP_ERRCODE_SUCCESS);
445 MockSetWpaExpectCmdResponse("P2P_GROUP_ADD", "OK\n");
446 EXPECT_TRUE(mInterface->wpaP2pCliCmdGroupAdd(mInterface, 0, 0, 0) == P2P_SUP_ERRCODE_SUCCESS);
447 EXPECT_TRUE(mInterface->wpaP2pCliCmdGroupAdd(mInterface, 1, -1, 0) == P2P_SUP_ERRCODE_SUCCESS);
448 EXPECT_TRUE(mInterface->wpaP2pCliCmdGroupAdd(mInterface, 1, 0, 0) == P2P_SUP_ERRCODE_SUCCESS);
449
450 char replyGroupStart[] = "P2P-GROUP-STARTED p2p-wlan0-0 GO "
451 "ssid=\"OHOS p2p ssid\" "
452 "freq=5180 "
453 "psk=pskmsg "
454 "passphrase=\"UotFDHj3\" "
455 "go_dev_addr=00:00:00:00:00:00\n";
456 MockWpaCallback(mGlobalInterface->wpaCtrl.pSend, replyGroupStart);
457 char replyGroupFailure[] = "P2P-GROUP-FORMATION-FAILURE reason=FREQ_CONFLICT\n";
458 MockWpaCallback(mGlobalInterface->wpaCtrl.pSend, replyGroupFailure);
459 char replyGroupSuccess[] = "P2P-GROUP-FORMATION-SUCCESS \n";
460 MockWpaCallback(mGlobalInterface->wpaCtrl.pSend, replyGroupSuccess);
461 }
462
463 HWTEST_F(WifiHalWpaP2pTest, WpaP2pCliCmdStoreConfigTest, TestSize.Level1)
464 {
465 EXPECT_TRUE(mInterface->wpaP2pCliCmdStoreConfig(nullptr) != P2P_SUP_ERRCODE_SUCCESS);
466 MockEraseSupportedCmd("SAVE_CONFIG");
467 EXPECT_TRUE(mInterface->wpaP2pCliCmdStoreConfig(mInterface) != P2P_SUP_ERRCODE_SUCCESS);
468 MockSetWpaExpectCmdResponse("SAVE_CONFIG", "FAIL\n");
469 EXPECT_TRUE(mInterface->wpaP2pCliCmdStoreConfig(mInterface) != P2P_SUP_ERRCODE_SUCCESS);
470 MockSetWpaExpectCmdResponse("SAVE_CONFIG", "OK\n");
471 EXPECT_TRUE(mInterface->wpaP2pCliCmdStoreConfig(mInterface) == P2P_SUP_ERRCODE_SUCCESS);
472 }
473
474 HWTEST_F(WifiHalWpaP2pTest, WpaP2pCliCmdNetworkListTest, TestSize.Level1)
475 {
476 EXPECT_TRUE(mInterface->wpaP2pCliCmdNetworkList(nullptr, nullptr) != P2P_SUP_ERRCODE_SUCCESS);
477 P2pNetworkList infoList;
478 ASSERT_TRUE(memset_s(&infoList, sizeof(infoList), 0, sizeof(infoList)) == EOK);
479 MockEraseSupportedCmd("LIST_NETWORKS");
480 EXPECT_TRUE(mInterface->wpaP2pCliCmdNetworkList(mInterface, &infoList) != P2P_SUP_ERRCODE_SUCCESS);
481 MockSetWpaExpectCmdResponse("LIST_NETWORKS", "OK");
482 EXPECT_TRUE(mInterface->wpaP2pCliCmdNetworkList(mInterface, &infoList) != P2P_SUP_ERRCODE_SUCCESS);
483 MockSetWpaExpectCmdResponse("LIST_NETWORKS", "network id / ssid / bssid / flags\n");
484 EXPECT_TRUE(mInterface->wpaP2pCliCmdNetworkList(mInterface, &infoList) == P2P_SUP_ERRCODE_SUCCESS);
485 EXPECT_TRUE(infoList.infoNum == 0);
486 char buf[] = "network id / ssid / bssid / flags\n"
487 "0\tp2p_ssid_1\t00:00:00:00:00:00\t[DISABLED][P2P-PERSISTENT]\n"
488 "1\tp2p_ssid_2\tff:ff:ff:ff:ff:ff\t[DISABLED]\n";
489 MockSetWpaExpectCmdResponse("LIST_NETWORKS", buf);
490 EXPECT_TRUE(mInterface->wpaP2pCliCmdNetworkList(mInterface, &infoList) == P2P_SUP_ERRCODE_SUCCESS);
491 EXPECT_TRUE(infoList.infoNum == 2);
492 EXPECT_TRUE(infoList.infos[0].id == 0);
493 EXPECT_TRUE(strcmp(infoList.infos[0].ssid, "p2p_ssid_1") == 0);
494 EXPECT_TRUE(strcmp(infoList.infos[0].bssid, "00:00:00:00:00:00") == 0);
495 EXPECT_TRUE(strcmp(infoList.infos[0].flags, "[DISABLED][P2P-PERSISTENT]") == 0);
496 EXPECT_TRUE(infoList.infos[1].id == 1);
497 EXPECT_TRUE(strcmp(infoList.infos[1].ssid, "p2p_ssid_2") == 0);
498 EXPECT_TRUE(strcmp(infoList.infos[1].bssid, "ff:ff:ff:ff:ff:ff") == 0);
499 EXPECT_TRUE(strcmp(infoList.infos[1].flags, "[DISABLED]") == 0);
500 free(infoList.infos);
501 }
502
503 HWTEST_F(WifiHalWpaP2pTest, WpaP2pCliCmdConnectTest, TestSize.Level1)
504 {
505 EXPECT_TRUE(mInterface->wpaP2pCliCmdConnect(nullptr, nullptr) != P2P_SUP_ERRCODE_SUCCESS);
506 P2pConnectInfo info;
507 ASSERT_TRUE(memset_s(&info, sizeof(info), 0, sizeof(info)) == EOK);
508 info.mode = 0;
509 info.goIntent = 0;
510 info.provdisc = HAL_WPS_METHOD_DISPLAY;
511 StrSafeCopy(info.peerDevAddr, sizeof(info.peerDevAddr), "00:00:00:00:00:00");
512 MockEraseSupportedCmd("P2P_CONNECT");
513 EXPECT_TRUE(mInterface->wpaP2pCliCmdConnect(mInterface, &info) != P2P_SUP_ERRCODE_SUCCESS);
514 MockSetWpaExpectCmdResponse("P2P_CONNECT", "FAIL\n");
515 EXPECT_TRUE(mInterface->wpaP2pCliCmdConnect(mInterface, &info) != P2P_SUP_ERRCODE_SUCCESS);
516 MockSetWpaExpectCmdResponse("P2P_CONNECT", "OK\n");
517 EXPECT_TRUE(mInterface->wpaP2pCliCmdConnect(mInterface, &info) == P2P_SUP_ERRCODE_SUCCESS);
518 info.mode = 1;
519 EXPECT_TRUE(mInterface->wpaP2pCliCmdConnect(mInterface, &info) == P2P_SUP_ERRCODE_SUCCESS);
520 info.provdisc = HAL_WPS_METHOD_KEYPAD;
521 EXPECT_TRUE(mInterface->wpaP2pCliCmdConnect(mInterface, &info) == P2P_SUP_ERRCODE_SUCCESS);
522 info.provdisc = HAL_WPS_METHOD_PBC;
523 EXPECT_TRUE(mInterface->wpaP2pCliCmdConnect(mInterface, &info) == P2P_SUP_ERRCODE_SUCCESS);
524 info.provdisc = HAL_WPS_METHOD_LABEL;
525 EXPECT_TRUE(mInterface->wpaP2pCliCmdConnect(mInterface, &info) != P2P_SUP_ERRCODE_SUCCESS);
526 info.provdisc = HAL_WPS_METHOD_DISPLAY;
527 StrSafeCopy(info.pin, sizeof(info.pin), "pin");
528 MockSetWpaExpectCmdResponse("P2P_CONNECT", "12345678");
529 EXPECT_TRUE(mInterface->wpaP2pCliCmdConnect(mInterface, &info) == P2P_SUP_ERRCODE_SUCCESS);
530 EXPECT_TRUE(strcmp(info.pin, "12345678") == 0);
531 char replyGoNegRequest1[] = "P2P-GO-NEG-REQUEST 00:00:00:00:00:00 dev_passwd_id=1 go_intent=7\n";
532 MockWpaCallback(mGlobalInterface->wpaCtrl.pSend, replyGoNegRequest1);
533 char replyGoNegRequest2[] = "P2P-GO-NEG-REQUEST 00:00:00:00:00:00 \n";
534 MockWpaCallback(mGlobalInterface->wpaCtrl.pSend, replyGoNegRequest2);
535 char replyGoNegSuccess[] = "P2P-GO-NEG-SUCCESS role=GO freq=5180 ht40=0 peer_dev=00:00:00:00:00:00 "
536 "peer_iface=00:00:00:00:00:00 wps_method=Display\n";
537 MockWpaCallback(mGlobalInterface->wpaCtrl.pSend, replyGoNegSuccess);
538 char replyGoNegFailure1[] = "P2P-GO-NEG-FAILURE status=1\n";
539 MockWpaCallback(mGlobalInterface->wpaCtrl.pSend, replyGoNegFailure1);
540 char replyGoNegFailure2[] = "P2P-GO-NEG-FAILURE \n";
541 MockWpaCallback(mGlobalInterface->wpaCtrl.pSend, replyGoNegFailure2);
542 char replyConnect[] = "AP-STA-CONNECTED 00:00:00:00:00:00 p2p_dev_addr=ff:ff:ff:ff:ff:ff\n";
543 MockWpaCallback(mGlobalInterface->wpaCtrl.pSend, replyConnect);
544 char replyDisconnect[] = "AP-STA-DISCONNECTED 00:00:00:00:00:00 p2p_dev_addr=ff:ff:ff:ff:ff:ff\n";
545 MockWpaCallback(mGlobalInterface->wpaCtrl.pSend, replyDisconnect);
546 char replyDisconnect2[] = "AP-STA-DISCONNECTED 00:00:00:00:00:00\n";
547 MockWpaCallback(mGlobalInterface->wpaCtrl.pSend, replyDisconnect2);
548 }
549
550 HWTEST_F(WifiHalWpaP2pTest, WpaP2pCliCmdP2pGetPeerTest, TestSize.Level1)
551 {
552 EXPECT_TRUE(mInterface->wpaP2pCliCmdP2pGetPeer(nullptr, nullptr, nullptr) != P2P_SUP_ERRCODE_SUCCESS);
553 const char *bssid = "00:00:00:00:00:00";
554 P2pDeviceInfo info;
555 MockEraseSupportedCmd("P2P_PEER");
556 EXPECT_TRUE(mInterface->wpaP2pCliCmdP2pGetPeer(mInterface, nullptr, &info) != P2P_SUP_ERRCODE_SUCCESS);
557 MockSetWpaExpectCmdResponse("P2P_PEER", "group_capab=0x0\n");
558 EXPECT_TRUE(mInterface->wpaP2pCliCmdP2pGetPeer(mInterface, bssid, &info) == P2P_SUP_ERRCODE_SUCCESS);
559 }
560
561 HWTEST_F(WifiHalWpaP2pTest, WpaP2pCliCmdSetPersistentReconnectTest, TestSize.Level1)
562 {
563 EXPECT_TRUE(mInterface->wpaP2pCliCmdSetPersistentReconnect(nullptr, 0) != P2P_SUP_ERRCODE_SUCCESS);
564 EXPECT_TRUE(mInterface->wpaP2pCliCmdSetPersistentReconnect(mInterface, -1) != P2P_SUP_ERRCODE_SUCCESS);
565 EXPECT_TRUE(mInterface->wpaP2pCliCmdSetPersistentReconnect(mInterface, 2) != P2P_SUP_ERRCODE_SUCCESS);
566 MockEraseSupportedCmd("SET");
567 EXPECT_TRUE(mInterface->wpaP2pCliCmdSetPersistentReconnect(mInterface, 0) != P2P_SUP_ERRCODE_SUCCESS);
568 MockSetWpaExpectCmdResponse("SET", "FAIL\n");
569 EXPECT_TRUE(mInterface->wpaP2pCliCmdSetPersistentReconnect(mInterface, 0) != P2P_SUP_ERRCODE_SUCCESS);
570 MockSetWpaExpectCmdResponse("SET", "OK\n");
571 EXPECT_TRUE(mInterface->wpaP2pCliCmdSetPersistentReconnect(mInterface, 0) == P2P_SUP_ERRCODE_SUCCESS);
572 }
573
574 HWTEST_F(WifiHalWpaP2pTest, WpaP2pCliCmdRespServerDiscoveryTest, TestSize.Level1)
575 {
576 EXPECT_TRUE(mInterface->wpaP2pCliCmdRespServerDiscovery(nullptr, nullptr) != P2P_SUP_ERRCODE_SUCCESS);
577 P2pServDiscReqInfo info;
578 ASSERT_TRUE(memset_s(&info, sizeof(info), 0, sizeof(info)) == EOK);
579 info.freq = 2412;
580 info.dialogToken = 0;
581 StrSafeCopy(info.mac, sizeof(info.mac), "00:00:00:00:00:00");
582 info.tlvs = (char *)calloc(256, sizeof(char));
583 ASSERT_TRUE(info.tlvs != NULL);
584 StrSafeCopy(info.tlvs, 256, "08000104112233445566");
585 MockEraseSupportedCmd("P2P_SERV_DISC_RESP");
586 EXPECT_TRUE(mInterface->wpaP2pCliCmdRespServerDiscovery(mInterface, &info) != P2P_SUP_ERRCODE_SUCCESS);
587 MockSetWpaExpectCmdResponse("P2P_SERV_DISC_RESP", "FAIL\n");
588 EXPECT_TRUE(mInterface->wpaP2pCliCmdRespServerDiscovery(mInterface, &info) != P2P_SUP_ERRCODE_SUCCESS);
589 MockSetWpaExpectCmdResponse("P2P_SERV_DISC_RESP", "OK\n");
590 EXPECT_TRUE(mInterface->wpaP2pCliCmdRespServerDiscovery(mInterface, &info) == P2P_SUP_ERRCODE_SUCCESS);
591 free(info.tlvs);
592
593 char replyDiscPbc[] = "P2P-PROV-DISC-PBC-RESP 00:00:00:00:00:00\n";
594 MockWpaCallback(mGlobalInterface->wpaCtrl.pSend, replyDiscPbc);
595 char replyDiscPbc2[] = "P2P-PROV-DISC-PBC-RESP invalid mac\n";
596 MockWpaCallback(mGlobalInterface->wpaCtrl.pSend, replyDiscPbc2);
597 char replyServiceDisc[] = "P2P-SERV-DISC-RESP 00:00:00:00:00:00 0 03000101010300020201\n";
598 MockWpaCallback(mGlobalInterface->wpaCtrl.pSend, replyServiceDisc);
599 char replyDiscFailure[] = "P2P-PROV-DISC-FAILURE p2p_dev_addr=00:00:00:00:00:00 status=0\n";
600 MockWpaCallback(mGlobalInterface->wpaCtrl.pSend, replyDiscFailure);
601 }
602
603 HWTEST_F(WifiHalWpaP2pTest, WpaP2pCliCmdSetServDiscExternalTest, TestSize.Level1)
604 {
605 EXPECT_TRUE(mInterface->wpaP2pCliCmdSetServDiscExternal(nullptr, 0) != P2P_SUP_ERRCODE_SUCCESS);
606 MockEraseSupportedCmd("P2P_SERV_DISC_EXTERNAL");
607 EXPECT_TRUE(mInterface->wpaP2pCliCmdSetServDiscExternal(mInterface, 0) != P2P_SUP_ERRCODE_SUCCESS);
608 MockSetWpaExpectCmdResponse("P2P_SERV_DISC_EXTERNAL", "FAIL\n");
609 EXPECT_TRUE(mInterface->wpaP2pCliCmdSetServDiscExternal(mInterface, 0) != P2P_SUP_ERRCODE_SUCCESS);
610 MockSetWpaExpectCmdResponse("P2P_SERV_DISC_EXTERNAL", "OK\n");
611 EXPECT_TRUE(mInterface->wpaP2pCliCmdSetServDiscExternal(mInterface, 0) == P2P_SUP_ERRCODE_SUCCESS);
612 }
613
614 HWTEST_F(WifiHalWpaP2pTest, WpaP2pCliCmdSetRandomMacTest, TestSize.Level1)
615 {
616 EXPECT_TRUE(mInterface->wpaP2pCliCmdSetRandomMac(nullptr, 0) != P2P_SUP_ERRCODE_SUCCESS);
617 MockEraseSupportedCmd("DRIVER_FLAGS");
618 EXPECT_TRUE(mInterface->wpaP2pCliCmdSetRandomMac(mInterface, 0) != P2P_SUP_ERRCODE_SUCCESS);
619 MockSetWpaExpectCmdResponse("DRIVER_FLAGS", "OK\n");
620 EXPECT_TRUE(mInterface->wpaP2pCliCmdSetRandomMac(mInterface, 0) != P2P_SUP_ERRCODE_SUCCESS);
621 MockSetWpaExpectCmdResponse("DRIVER_FLAGS", "DEDICATED_P2P_DEVICE\n");
622 MockEraseSupportedCmd("SET");
623 EXPECT_TRUE(mInterface->wpaP2pCliCmdSetRandomMac(mInterface, 0) != P2P_SUP_ERRCODE_SUCCESS);
624 MockSetWpaExpectCmdResponse("SET", "FAIL\n");
625 EXPECT_TRUE(mInterface->wpaP2pCliCmdSetRandomMac(mInterface, 0) != P2P_SUP_ERRCODE_SUCCESS);
626 MockSetWpaExpectCmdResponse("SET", "OK\n");
627 EXPECT_TRUE(mInterface->wpaP2pCliCmdSetRandomMac(mInterface, 0) == P2P_SUP_ERRCODE_SUCCESS);
628 }
629
630 HWTEST_F(WifiHalWpaP2pTest, WpaP2pCliCmdWpsPbcTest, TestSize.Level1)
631 {
632 WifiWpaP2pGroupInterface *groupInterface = GetWifiWpaP2pGroupInterface("p2p-dev-wlan0");
633 ASSERT_TRUE(groupInterface != nullptr);
634 EXPECT_TRUE(groupInterface->wpaP2pCliCmdWpsPbc(nullptr, nullptr) != P2P_SUP_ERRCODE_SUCCESS);
635 const char *bssid = "00:00:00:00:00:00";
636 MockEraseSupportedCmd("WPS_PBC");
637 EXPECT_TRUE(groupInterface->wpaP2pCliCmdWpsPbc(groupInterface, bssid) != P2P_SUP_ERRCODE_SUCCESS);
638 MockSetWpaExpectCmdResponse("WPS_PBC", "FAIL\n");
639 EXPECT_TRUE(groupInterface->wpaP2pCliCmdWpsPbc(groupInterface, bssid) != P2P_SUP_ERRCODE_SUCCESS);
640 MockSetWpaExpectCmdResponse("WPS_PBC", "FAIL-PBC-OVERLAP\n");
641 EXPECT_TRUE(groupInterface->wpaP2pCliCmdWpsPbc(groupInterface, bssid) != P2P_SUP_ERRCODE_SUCCESS);
642 MockSetWpaExpectCmdResponse("WPS_PBC", "OK\n");
643 EXPECT_TRUE(groupInterface->wpaP2pCliCmdWpsPbc(groupInterface, bssid) == P2P_SUP_ERRCODE_SUCCESS);
644 }
645
646 HWTEST_F(WifiHalWpaP2pTest, WpaP2pCliCmdWpsPinTest, TestSize.Level1)
647 {
648 WifiWpaP2pGroupInterface *groupInterface = GetWifiWpaP2pGroupInterface("p2p-dev-wlan0");
649 ASSERT_TRUE(groupInterface != nullptr);
650 EXPECT_TRUE(groupInterface->wpaP2pCliCmdWpsPin(nullptr, nullptr) != P2P_SUP_ERRCODE_SUCCESS);
651 P2pWpsPinDisplayArgv argv;
652 ASSERT_TRUE(memset_s(&argv, sizeof(argv), 0, sizeof(argv)) == EOK);
653 EXPECT_TRUE(groupInterface->wpaP2pCliCmdWpsPin(groupInterface, &argv) != P2P_SUP_ERRCODE_SUCCESS);
654 argv.mode = P2P_PIN_KEYPAD;
655 EXPECT_TRUE(groupInterface->wpaP2pCliCmdWpsPin(groupInterface, &argv) != P2P_SUP_ERRCODE_SUCCESS);
656 StrSafeCopy(argv.pinCode, sizeof(argv.pinCode), "12345678");
657 MockEraseSupportedCmd("WPS_PIN");
658 EXPECT_TRUE(groupInterface->wpaP2pCliCmdWpsPin(groupInterface, &argv) != P2P_SUP_ERRCODE_SUCCESS);
659 MockSetWpaExpectCmdResponse("WPS_PIN", "FAIL\n");
660 EXPECT_TRUE(groupInterface->wpaP2pCliCmdWpsPin(groupInterface, &argv) != P2P_SUP_ERRCODE_SUCCESS);
661 MockSetWpaExpectCmdResponse("WPS_PIN", "OK\n");
662 EXPECT_TRUE(groupInterface->wpaP2pCliCmdWpsPin(groupInterface, &argv) == P2P_SUP_ERRCODE_SUCCESS);
663 argv.mode = P2P_PIN_DISPLAY;
664 MockSetWpaExpectCmdResponse("WPS_PIN", "987654321");
665 EXPECT_TRUE(groupInterface->wpaP2pCliCmdWpsPin(groupInterface, &argv) == P2P_SUP_ERRCODE_SUCCESS);
666 EXPECT_TRUE(strcmp(argv.pinCode, "98765432") == 0);
667 StrSafeCopy(argv.bssid, sizeof(argv.bssid), "00:00:00:00:00:00");
668 MockSetWpaExpectCmdResponse("WPS_PIN", "00123456");
669 EXPECT_TRUE(groupInterface->wpaP2pCliCmdWpsPin(groupInterface, &argv) == P2P_SUP_ERRCODE_SUCCESS);
670 EXPECT_TRUE(strcmp(argv.pinCode, "00123456") == 0);
671 }
672
673 HWTEST_F(WifiHalWpaP2pTest, WpaP2pCliCmdSetPowerSaveTest, TestSize.Level1)
674 {
675 WifiWpaP2pGroupInterface *groupInterface = GetWifiWpaP2pGroupInterface("p2p-dev-wlan0");
676 ASSERT_TRUE(groupInterface != nullptr);
677 EXPECT_TRUE(groupInterface->wpaP2pCliCmdSetPowerSave(nullptr, 0) != P2P_SUP_ERRCODE_SUCCESS);
678 MockEraseSupportedCmd("P2P_SET");
679 EXPECT_TRUE(groupInterface->wpaP2pCliCmdSetPowerSave(groupInterface, 0) != P2P_SUP_ERRCODE_SUCCESS);
680 MockSetWpaExpectCmdResponse("P2P_SET", "FAIL\n");
681 EXPECT_TRUE(groupInterface->wpaP2pCliCmdSetPowerSave(groupInterface, 0) != P2P_SUP_ERRCODE_SUCCESS);
682 MockSetWpaExpectCmdResponse("P2P_SET", "OK\n");
683 EXPECT_TRUE(groupInterface->wpaP2pCliCmdSetPowerSave(groupInterface, 0) == P2P_SUP_ERRCODE_SUCCESS);
684 }
685
686 HWTEST_F(WifiHalWpaP2pTest, WpaP2pCliCmdSetGroupIdleTest, TestSize.Level1)
687 {
688 WifiWpaP2pGroupInterface *groupInterface = GetWifiWpaP2pGroupInterface("p2p-dev-wlan0");
689 ASSERT_TRUE(groupInterface != nullptr);
690 EXPECT_TRUE(groupInterface->wpaP2pCliCmdSetGroupIdle(nullptr, 0) != P2P_SUP_ERRCODE_SUCCESS);
691 MockEraseSupportedCmd("SET");
692 EXPECT_TRUE(groupInterface->wpaP2pCliCmdSetGroupIdle(groupInterface, 0) != P2P_SUP_ERRCODE_SUCCESS);
693 MockSetWpaExpectCmdResponse("SET", "FAIL\n");
694 EXPECT_TRUE(groupInterface->wpaP2pCliCmdSetGroupIdle(groupInterface, 0) != P2P_SUP_ERRCODE_SUCCESS);
695 MockSetWpaExpectCmdResponse("SET", "OK\n");
696 EXPECT_TRUE(groupInterface->wpaP2pCliCmdSetGroupIdle(groupInterface, 0) == P2P_SUP_ERRCODE_SUCCESS);
697 }
698
699 HWTEST_F(WifiHalWpaP2pTest, ConvertP2pErrCodeTest, TestSize.Level1)
700 {
701 EXPECT_TRUE(ConvertP2pErrCode(P2P_SUP_ERRCODE_SUCCESS) == WIFI_HAL_SUCCESS);
702 EXPECT_TRUE(ConvertP2pErrCode(P2P_SUP_ERRCODE_PBC_OVERLAP) == WIFI_HAL_PBC_OVERLAP);
703 EXPECT_TRUE(ConvertP2pErrCode(P2P_SUP_ERRCODE_INPUT_ERROR) == WIFI_HAL_INVALID_PARAM);
704 EXPECT_TRUE(ConvertP2pErrCode(P2P_SUP_ERRCODE_FAILED) == WIFI_HAL_FAILED);
705 EXPECT_TRUE(ConvertP2pErrCode(P2P_SUP_ERRCODE_TIMEOUT) == WIFI_HAL_FAILED);
706 }
707
708 HWTEST_F(WifiHalWpaP2pTest, GetWifiWpaP2pGroupInterfaceTest, TestSize.Level1)
709 {
710 WifiWpaP2pGroupInterface *groupInterface = GetWifiWpaP2pGroupInterface("p2p-dev-wlan0");
711 ASSERT_TRUE(groupInterface != nullptr);
712 WifiWpaP2pGroupInterface *groupInterface1 = GetWifiWpaP2pGroupInterface("p2p-dev-wlan0");
713 ASSERT_TRUE(groupInterface1 != nullptr);
714 EXPECT_TRUE(groupInterface == groupInterface1);
715 ReleaseWpaP2pGroupInterface("p2p-dev-unknown");
716 ReleaseWpaP2pGroupInterface("p2p-dev-wlan0");
717 ReleaseWpaP2pGroupInterface("p2p-dev-wlan0");
718 }
719
720 HWTEST_F(WifiHalWpaP2pTest, WpaP2pCliCmdSetWpsSecDeviceTypeTest, TestSize.Level1)
721 {
722 char type[] = "p2p_device_type";
723 EXPECT_TRUE(mInterface->wpaP2pCliCmdSetWpsSecDeviceType(nullptr, 0) != P2P_SUP_ERRCODE_SUCCESS);
724 EXPECT_TRUE(mInterface->wpaP2pCliCmdSetWpsSecDeviceType(mInterface, nullptr) != P2P_SUP_ERRCODE_SUCCESS);
725 MockEraseSupportedCmd("SET sec_device_type");
726 EXPECT_TRUE(mInterface->wpaP2pCliCmdSetWpsSecDeviceType(mInterface, type) == P2P_SUP_ERRCODE_SUCCESS);
727 MockSetWpaExpectCmdResponse("SET sec_device_type", "FAIL\n");
728 EXPECT_TRUE(mInterface->wpaP2pCliCmdSetWpsSecDeviceType(mInterface, type) == P2P_SUP_ERRCODE_SUCCESS);
729 MockSetWpaExpectCmdResponse("SET sec_device_type", "OK\n");
730 EXPECT_TRUE(mInterface->wpaP2pCliCmdSetWpsSecDeviceType(mInterface, type) == P2P_SUP_ERRCODE_SUCCESS);
731 }
732
733 HWTEST_F(WifiHalWpaP2pTest, wpaP2pCliCmdSetGroupConfigTest, TestSize.Level1)
734 {
735 P2pWpaGroupConfigArgv argv;
736 argv.param = GROUP_CONFIG_END_POS;
737 ASSERT_TRUE(memset_s(&argv, sizeof(argv), 0, sizeof(argv)) == EOK);
738 EXPECT_TRUE(mInterface->wpaP2pCliCmdSetGroupConfig(nullptr, nullptr) != P2P_SUP_ERRCODE_SUCCESS);
739 EXPECT_TRUE(mInterface->wpaP2pCliCmdSetGroupConfig(mInterface, nullptr) != P2P_SUP_ERRCODE_SUCCESS);
740 MockEraseSupportedCmd("SET_NETWORK");
741 EXPECT_TRUE(mInterface->wpaP2pCliCmdSetGroupConfig(mInterface, &argv) != P2P_SUP_ERRCODE_SUCCESS);
742 MockSetWpaExpectCmdResponse("SET_NETWORK", "FAIL\n");
743 argv.param = GROUP_CONFIG_SSID;
744 EXPECT_TRUE(mInterface->wpaP2pCliCmdSetGroupConfig(mInterface, &argv) != P2P_SUP_ERRCODE_SUCCESS);
745 MockSetWpaExpectCmdResponse("SET_NETWORK", "OK\n");
746 argv.param = GROUP_CONFIG_BSSID;
747 EXPECT_TRUE(mInterface->wpaP2pCliCmdSetGroupConfig(mInterface, &argv) == P2P_SUP_ERRCODE_SUCCESS);
748 }
749
750 HWTEST_F(WifiHalWpaP2pTest, WpaP2pHid2dCliCmdConnectTest, TestSize.Level1)
751 {
752 Hid2dConnectInfo info;
753 ASSERT_TRUE(memset_s(&info, sizeof(info), 0, sizeof(info)) == EOK);
754 EXPECT_TRUE(mInterface->wpaP2pCliCmdHid2dConnect(nullptr, nullptr) != P2P_SUP_ERRCODE_SUCCESS);
755 EXPECT_TRUE(mInterface->wpaP2pCliCmdHid2dConnect(mInterface, nullptr) != P2P_SUP_ERRCODE_SUCCESS);
756 MockEraseSupportedCmd("MAGICLINK");
757 EXPECT_TRUE(mInterface->wpaP2pCliCmdHid2dConnect(mInterface, &info) != P2P_SUP_ERRCODE_SUCCESS);
758 MockSetWpaExpectCmdResponse("MAGICLINK", "FAIL\n");
759 EXPECT_TRUE(mInterface->wpaP2pCliCmdHid2dConnect(mInterface, &info) != P2P_SUP_ERRCODE_SUCCESS);
760 MockSetWpaExpectCmdResponse("MAGICLINK", "OK\n");
761 EXPECT_TRUE(mInterface->wpaP2pCliCmdHid2dConnect(mInterface, &info) == P2P_SUP_ERRCODE_SUCCESS);
762 }
763
764 HWTEST_F(WifiHalWpaP2pTest, WpaP2pCliCmdGetGroupConfigTest, TestSize.Level1)
765 {
766 P2pWpaGroupConfigArgv info;
767 ASSERT_TRUE(memset_s(&info, sizeof(info), 0, sizeof(info)) == EOK);
768 EXPECT_TRUE(mInterface->wpaP2pCliCmdGetGroupConfig(nullptr, nullptr) != P2P_SUP_ERRCODE_SUCCESS);
769 EXPECT_TRUE(mInterface->wpaP2pCliCmdGetGroupConfig(mInterface, nullptr) != P2P_SUP_ERRCODE_SUCCESS);
770 MockEraseSupportedCmd("GET_NETWORK");
771 EXPECT_TRUE(mInterface->wpaP2pCliCmdGetGroupConfig(mInterface, &info) != P2P_SUP_ERRCODE_SUCCESS);
772 MockSetWpaExpectCmdResponse("GET_NETWORK", "FAIL\n");
773 EXPECT_TRUE(mInterface->wpaP2pCliCmdGetGroupConfig(mInterface, &info) != P2P_SUP_ERRCODE_SUCCESS);
774 MockSetWpaExpectCmdResponse("GET_NETWORK", "OK\n");
775 EXPECT_TRUE(mInterface->wpaP2pCliCmdGetGroupConfig(mInterface, &info) == P2P_SUP_ERRCODE_SUCCESS);
776 }
777 } // namespace Wifi
778 } // namespace OHOS