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