• 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_sta_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 "WifiHalWpaStaTest"
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 *WifiHalWpaStaTest::mGlobalInterface = nullptr;
30 WifiWpaStaInterface *WifiHalWpaStaTest::mInterface = nullptr;
31 RpcServer *WifiHalWpaStaTest::mServer = nullptr;
32 
SetUpTestCase()33 void WifiHalWpaStaTest::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     MockInitStaSupportedCmd();
47     mGlobalInterface = GetWifiWapGlobalInterface();
48     mGlobalInterface->wpaCliConnect(mGlobalInterface);
49     mInterface = GetWifiStaInterface(0);
50 }
51 
TearDownTestCase()52 void WifiHalWpaStaTest::TearDownTestCase()
53 {
54     sleep(1);
55     ReleaseWpaGlobalInterface();
56     ReleaseWifiStaInterface(0);
57     if (mServer != nullptr) {
58         ReleaseRpcServer(mServer);
59         mServer = nullptr;
60     }
61     SetRpcServerInited(NULL);
62     ReleaseCallbackMsg();
63 }
64 
65 HWTEST_F(WifiHalWpaStaTest, WpaCliCmdStatusTest, TestSize.Level1)
66 {
67     EXPECT_TRUE(mInterface->wpaCliCmdStatus(nullptr, nullptr) < 0);
68     EXPECT_TRUE(mInterface->wpaCliCmdStatus(mInterface, nullptr) < 0);
69     MockEraseSupportedCmd("STATUS");
70     WpaHalCmdStatus status;
71     ASSERT_TRUE(memset_s(&status, sizeof(status), 0, sizeof(status)) == EOK);
72     EXPECT_TRUE(mInterface->wpaCliCmdStatus(mInterface, &status) < 0);
73     char buf1[] = "wpa_state=SCANNING\n"
74                   "ip_address=192.168.xxx.xxx\n"
75                   "freq=1024\n"
76                   "key_mgmt=WPA-PSK\n";
77     MockSetWpaExpectCmdResponse("STATUS", buf1);
78     EXPECT_TRUE(mInterface->wpaCliCmdStatus(mInterface, &status) < 0);
79     EXPECT_TRUE(status.freq == 1024);
80     char buf2[] = "wpa_state=SCANNING\n"
81                   "ip_address=192.168.xxx.xxx\n"
82                   "freq=1024\n"
83                   "key_mgmt=WPA-PSK\n"
84                   "address=00:00:00:00:00:00\n";
85     MockSetWpaExpectCmdResponse("STATUS", buf2);
86     EXPECT_TRUE(mInterface->wpaCliCmdStatus(mInterface, &status) == 1);
87     EXPECT_TRUE(strcmp(status.address, "00:00:00:00:00:00") == 0);
88     char buf3[] = "wpa_state=SCANNING\n"
89                   "ip_address=192.168.xxx.xxx\n"
90                   "freq=1024\n"
91                   "key_mgmt=WPA-PSK\n"
92                   "address=00:00:00:00:00:00\n"
93                   "bssid=00:00:00:00:00:00\n"
94                   "ssid=testAp\n"
95                   "id=1\n";
96     MockSetWpaExpectCmdResponse("STATUS", buf3);
97     EXPECT_TRUE(mInterface->wpaCliCmdStatus(mInterface, &status) == 0);
98     EXPECT_TRUE(strcmp(status.address, "00:00:00:00:00:00") == 0);
99 }
100 
101 HWTEST_F(WifiHalWpaStaTest, WpaCliCmdAddNetworksTest, TestSize.Level1)
102 {
103     MockEraseSupportedCmd("ADD_NETWORK");
104     EXPECT_TRUE(mInterface->wpaCliCmdAddNetworks(nullptr) < 0);
105     EXPECT_TRUE(mInterface->wpaCliCmdAddNetworks(mInterface) < 0);
106     MockSetWpaExpectCmdResponse("ADD_NETWORK", "1");
107     int ret = mInterface->wpaCliCmdAddNetworks(mInterface);
108     EXPECT_TRUE(ret == 1);
109 }
110 
111 HWTEST_F(WifiHalWpaStaTest, WpaCliCmdReconnectTest, TestSize.Level1)
112 {
113     MockEraseSupportedCmd("RECONNECT");
114     EXPECT_TRUE(mInterface->wpaCliCmdReconnect(nullptr) < 0);
115     EXPECT_TRUE(mInterface->wpaCliCmdReconnect(mInterface) < 0);
116     MockSetWpaExpectCmdResponse("RECONNECT", "FAIL\n");
117     EXPECT_TRUE(mInterface->wpaCliCmdReconnect(mInterface) < 0);
118     MockSetWpaExpectCmdResponse("RECONNECT", "OK");
119     EXPECT_TRUE(mInterface->wpaCliCmdReconnect(mInterface) == 0);
120     MockWpaCallback(mGlobalInterface->wpaCtrl.pSend,
121         "<3>CTRL-EVENT-CONNECTED - Connection to 00:00:00:00:00:00 completed [id=1 id_str=]\n");
122     MockWpaCallback(mGlobalInterface->wpaCtrl.pSend, "<3>CTRL-EVENT-STATE-CHANGE state=2\n");
123 }
124 
125 HWTEST_F(WifiHalWpaStaTest, WpaCliCmdReassociateTest, TestSize.Level1)
126 {
127     MockEraseSupportedCmd("REASSOCIATE");
128     EXPECT_TRUE(mInterface->wpaCliCmdReassociate(nullptr) < 0);
129     EXPECT_TRUE(mInterface->wpaCliCmdReassociate(mInterface) < 0);
130     MockSetWpaExpectCmdResponse("REASSOCIATE", "FAIL\n");
131     EXPECT_TRUE(mInterface->wpaCliCmdReassociate(mInterface) < 0);
132     MockSetWpaExpectCmdResponse("REASSOCIATE", "OK");
133     EXPECT_TRUE(mInterface->wpaCliCmdReassociate(mInterface) == 0);
134     MockWpaCallback(mGlobalInterface->wpaCtrl.pSend, "<3>CTRL-EVENT-SSID-TEMP-DISABLED reason=WRONG_KEY\n");
135 }
136 
137 HWTEST_F(WifiHalWpaStaTest, WpaCliCmdDisconnectTest, TestSize.Level1)
138 {
139     MockEraseSupportedCmd("DISCONNECT");
140     EXPECT_TRUE(mInterface->wpaCliCmdDisconnect(mInterface) < 0);
141     EXPECT_TRUE(mInterface->wpaCliCmdDisconnect(nullptr) < 0);
142     MockSetWpaExpectCmdResponse("DISCONNECT", "FAIL\n");
143     EXPECT_TRUE(mInterface->wpaCliCmdDisconnect(mInterface) < 0);
144     MockSetWpaExpectCmdResponse("DISCONNECT", "OK");
145     EXPECT_TRUE(mInterface->wpaCliCmdDisconnect(mInterface) == 0);
146     MockWpaCallback(mGlobalInterface->wpaCtrl.pSend,
147         "<3>CTRL-EVENT-DISCONNECTED bssid=00:00:00:00:00:00 reason=4 locally_generated=1\n");
148     MockWpaCallback(mGlobalInterface->wpaCtrl.pSend, "<3>CTRL-EVENT-STATE-CHANGE state=3\n");
149 }
150 
151 HWTEST_F(WifiHalWpaStaTest, WpaCliCmdSaveConfigTest, TestSize.Level1)
152 {
153     MockEraseSupportedCmd("SAVE_CONFIG");
154     EXPECT_TRUE(mInterface->wpaCliCmdSaveConfig(nullptr) < 0);
155     EXPECT_TRUE(mInterface->wpaCliCmdSaveConfig(mInterface) < 0);
156     MockSetWpaExpectCmdResponse("SAVE_CONFIG", "FAIL\n");
157     EXPECT_TRUE(mInterface->wpaCliCmdSaveConfig(mInterface) < 0);
158     MockSetWpaExpectCmdResponse("SAVE_CONFIG", "OK");
159     EXPECT_TRUE(mInterface->wpaCliCmdSaveConfig(mInterface) == 0);
160 }
161 
162 HWTEST_F(WifiHalWpaStaTest, WpaCliCmdSetNetworkTest, TestSize.Level1)
163 {
164     EXPECT_TRUE(mInterface->wpaCliCmdSetNetwork(nullptr, nullptr) < 0);
165     EXPECT_TRUE(mInterface->wpaCliCmdSetNetwork(mInterface, nullptr) < 0);
166     WpaSetNetworkArgv argv;
167     ASSERT_TRUE(memset_s(&argv, sizeof(argv), 0, sizeof(argv)) == EOK);
168     argv.id = 0;
169     argv.param = DEVICE_CONFIG_END_POS;
170     EXPECT_TRUE(mInterface->wpaCliCmdSetNetwork(mInterface, &argv) < 0);
171     argv.param = DEVICE_CONFIG_SSID;
172     EXPECT_TRUE(mInterface->wpaCliCmdSetNetwork(mInterface, &argv) == 0);
173     MockEraseSupportedCmd("SET_NETWORK");
174     EXPECT_TRUE(mInterface->wpaCliCmdSetNetwork(mInterface, &argv) < 0);
175     MockSetWpaExpectCmdResponse("SET_NETWORK", "FAIL\n");
176     EXPECT_TRUE(mInterface->wpaCliCmdSetNetwork(mInterface, &argv) < 0);
177     MockSetWpaExpectCmdResponse("SET_NETWORK", "OK");
178     EXPECT_TRUE(mInterface->wpaCliCmdSetNetwork(mInterface, &argv) == 0);
179     argv.param = DEVICE_CONFIG_KEYMGMT;
180     EXPECT_TRUE(mInterface->wpaCliCmdSetNetwork(mInterface, &argv) == 0);
181 }
182 
183 HWTEST_F(WifiHalWpaStaTest, WpaCliCmdEnableNetworkTest, TestSize.Level1)
184 {
185     MockEraseSupportedCmd("ENABLE_NETWORK");
186     EXPECT_TRUE(mInterface->wpaCliCmdEnableNetwork(nullptr, 0) < 0);
187     EXPECT_TRUE(mInterface->wpaCliCmdEnableNetwork(mInterface, 0) < 0);
188     MockSetWpaExpectCmdResponse("ENABLE_NETWORK", "FAIL\n");
189     EXPECT_TRUE(mInterface->wpaCliCmdEnableNetwork(mInterface, 0) < 0);
190     MockSetWpaExpectCmdResponse("ENABLE_NETWORK", "OK");
191     EXPECT_TRUE(mInterface->wpaCliCmdEnableNetwork(mInterface, 0) == 0);
192 }
193 
194 HWTEST_F(WifiHalWpaStaTest, WpaCliCmdSelectNetworkTest, TestSize.Level1)
195 {
196     MockEraseSupportedCmd("SELECT_NETWORK");
197     EXPECT_TRUE(mInterface->wpaCliCmdSelectNetwork(nullptr, 0) < 0);
198     EXPECT_TRUE(mInterface->wpaCliCmdSelectNetwork(mInterface, 0) < 0);
199     MockSetWpaExpectCmdResponse("SELECT_NETWORK", "FAIL\n");
200     EXPECT_TRUE(mInterface->wpaCliCmdSelectNetwork(mInterface, 0) < 0);
201     MockSetWpaExpectCmdResponse("SELECT_NETWORK", "OK");
202     EXPECT_TRUE(mInterface->wpaCliCmdSelectNetwork(mInterface, 0) == 0);
203 }
204 
205 HWTEST_F(WifiHalWpaStaTest, WpaCliCmdDisableNetworkTest, TestSize.Level1)
206 {
207     MockEraseSupportedCmd("DISABLE_NETWORK");
208     EXPECT_TRUE(mInterface->wpaCliCmdDisableNetwork(nullptr, 0) < 0);
209     EXPECT_TRUE(mInterface->wpaCliCmdDisableNetwork(mInterface, 0) < 0);
210     MockSetWpaExpectCmdResponse("DISABLE_NETWORK", "FAIL\n");
211     EXPECT_TRUE(mInterface->wpaCliCmdDisableNetwork(mInterface, 0) < 0);
212     MockSetWpaExpectCmdResponse("DISABLE_NETWORK", "OK");
213     EXPECT_TRUE(mInterface->wpaCliCmdDisableNetwork(mInterface, 0) == 0);
214 }
215 
216 HWTEST_F(WifiHalWpaStaTest, WpaCliCmdRemoveNetworkTest, TestSize.Level1)
217 {
218     MockEraseSupportedCmd("REMOVE_NETWORK");
219     EXPECT_TRUE(mInterface->wpaCliCmdRemoveNetwork(nullptr, 0) < 0);
220     EXPECT_TRUE(mInterface->wpaCliCmdRemoveNetwork(mInterface, 0) < 0);
221     MockSetWpaExpectCmdResponse("REMOVE_NETWORK", "FAIL\n");
222     EXPECT_TRUE(mInterface->wpaCliCmdRemoveNetwork(mInterface, 0) < 0);
223     MockSetWpaExpectCmdResponse("REMOVE_NETWORK", "OK");
224     EXPECT_TRUE(mInterface->wpaCliCmdRemoveNetwork(mInterface, 0) == 0);
225     EXPECT_TRUE(mInterface->wpaCliCmdRemoveNetwork(mInterface, -1) == 0);
226     EXPECT_TRUE(mInterface->wpaCliCmdRemoveNetwork(mInterface, -2) < 0);
227 }
228 
229 HWTEST_F(WifiHalWpaStaTest, WpaCliCmdGetNetworkTest, TestSize.Level1)
230 {
231     EXPECT_TRUE(mInterface->wpaCliCmdGetNetwork(nullptr, nullptr, nullptr, 0) < 0);
232     EXPECT_TRUE(mInterface->wpaCliCmdGetNetwork(mInterface, nullptr, nullptr, 0) < 0);
233     WpaGetNetworkArgv argv;
234     ASSERT_TRUE(memset_s(&argv, sizeof(argv), 0, sizeof(argv)) == EOK);
235     EXPECT_TRUE(mInterface->wpaCliCmdGetNetwork(mInterface, &argv, nullptr, 0) < 0);
236     char getBuffer[256] = {0};
237     MockEraseSupportedCmd("GET_NETWORK");
238     EXPECT_TRUE(mInterface->wpaCliCmdGetNetwork(mInterface, &argv, getBuffer, sizeof(getBuffer)) < 0);
239     MockSetWpaExpectCmdResponse("GET_NETWORK", "OK");
240     EXPECT_TRUE(mInterface->wpaCliCmdGetNetwork(mInterface, &argv, getBuffer, sizeof(getBuffer)) == 0);
241     EXPECT_TRUE(strcmp(getBuffer, "OK") == 0);
242 }
243 
244 HWTEST_F(WifiHalWpaStaTest, WpaCliCmdWpsPbcTest, TestSize.Level1)
245 {
246     EXPECT_TRUE(mInterface->wpaCliCmdWpsPbc(nullptr, nullptr) < 0);
247     EXPECT_TRUE(mInterface->wpaCliCmdWpsPbc(mInterface, nullptr) == 0);
248     WpaWpsPbcArgv argv;
249     ASSERT_TRUE(memset_s(&argv, sizeof(argv), 0, sizeof(argv)) == EOK);
250     MockEraseSupportedCmd("WPS_PBC");
251     EXPECT_TRUE(mInterface->wpaCliCmdWpsPbc(mInterface, &argv) < 0);
252     MockSetWpaExpectCmdResponse("WPS_PBC", "FAIL\n");
253     EXPECT_TRUE(mInterface->wpaCliCmdWpsPbc(mInterface, &argv) < 0);
254     MockSetWpaExpectCmdResponse("WPS_PBC", "FAIL-PBC-OVERLAP");
255     EXPECT_TRUE(mInterface->wpaCliCmdWpsPbc(mInterface, &argv) == 3);
256     MockWpaCallback(mGlobalInterface->wpaCtrl.pSend, "<3>WPS-OVERLAP-DETECTED PBC session overlap\n");
257     MockSetWpaExpectCmdResponse("WPS_PBC", "OK");
258     EXPECT_TRUE(mInterface->wpaCliCmdWpsPbc(mInterface, &argv) == 0);
259     MockWpaCallback(mGlobalInterface->wpaCtrl.pSend, "<3>WPS-TIMEOUT Requested operation timed out\n");
260     argv.anyFlag = 1;
261     argv.multiAp = 1;
262     EXPECT_TRUE(mInterface->wpaCliCmdWpsPbc(mInterface, &argv) == 0);
263     argv.anyFlag = 0;
264     StrSafeCopy(argv.bssid, sizeof(argv.bssid), "00:00:00:00:00:00");
265     EXPECT_TRUE(mInterface->wpaCliCmdWpsPbc(mInterface, &argv) == 0);
266 }
267 
268 HWTEST_F(WifiHalWpaStaTest, WpaCliCmdWpsPinTest, TestSize.Level1)
269 {
270     EXPECT_TRUE(mInterface->wpaCliCmdWpsPin(nullptr, nullptr, nullptr) < 0);
271     EXPECT_TRUE(mInterface->wpaCliCmdWpsPin(mInterface, nullptr, nullptr) < 0);
272     WpaWpsPinArgv argv;
273     EXPECT_TRUE(mInterface->wpaCliCmdWpsPin(mInterface, &argv, nullptr) < 0);
274     ASSERT_TRUE(memset_s(&argv, sizeof(argv), 0, sizeof(argv)) == EOK);
275     int pinCode = 0;
276     MockEraseSupportedCmd("WPS_PIN");
277     EXPECT_TRUE(mInterface->wpaCliCmdWpsPin(mInterface, &argv, &pinCode) < 0);
278     MockSetWpaExpectCmdResponse("WPS_PIN", "12345678");
279     EXPECT_TRUE(mInterface->wpaCliCmdWpsPin(mInterface, &argv, &pinCode) == 0);
280     EXPECT_TRUE(pinCode == 12345678);
281     StrSafeCopy(argv.bssid, sizeof(argv.bssid), "00:00:00:00:00:00");
282     StrSafeCopy(argv.pinCode, sizeof(argv.pinCode), "87654321");
283     MockSetWpaExpectCmdResponse("WPS_PIN", argv.pinCode);
284     EXPECT_TRUE(mInterface->wpaCliCmdWpsPin(mInterface, &argv, &pinCode) == 0);
285     EXPECT_TRUE(pinCode == 87654321);
286 }
287 
288 HWTEST_F(WifiHalWpaStaTest, WpaCliCmdWpsCancelTest, TestSize.Level1)
289 {
290     MockEraseSupportedCmd("WPS_CANCEL");
291     EXPECT_TRUE(mInterface->wpaCliCmdWpsCancel(nullptr) < 0);
292     EXPECT_TRUE(mInterface->wpaCliCmdWpsCancel(mInterface) < 0);
293     MockSetWpaExpectCmdResponse("WPS_CANCEL", "FAIL\n");
294     EXPECT_TRUE(mInterface->wpaCliCmdWpsCancel(mInterface) < 0);
295     MockSetWpaExpectCmdResponse("WPS_CANCEL", "OK");
296     EXPECT_TRUE(mInterface->wpaCliCmdWpsCancel(mInterface) == 0);
297 }
298 
299 HWTEST_F(WifiHalWpaStaTest, WpaCliCmdPowerSaveTest, TestSize.Level1)
300 {
301     MockEraseSupportedCmd("SET");
302     EXPECT_TRUE(mInterface->wpaCliCmdPowerSave(nullptr, 0) < 0);
303     EXPECT_TRUE(mInterface->wpaCliCmdPowerSave(mInterface, 0) < 0);
304     MockSetWpaExpectCmdResponse("SET", "FAIL\n");
305     EXPECT_TRUE(mInterface->wpaCliCmdPowerSave(mInterface, 0) < 0);
306     MockSetWpaExpectCmdResponse("SET", "OK");
307     EXPECT_TRUE(mInterface->wpaCliCmdPowerSave(mInterface, 0) == 0);
308     EXPECT_TRUE(mInterface->wpaCliCmdPowerSave(mInterface, 1) == 0);
309 }
310 
311 HWTEST_F(WifiHalWpaStaTest, WpaCliCmdSetCountryCodeTest, TestSize.Level1)
312 {
313     EXPECT_TRUE(mInterface->wpaCliCmdSetCountryCode(nullptr, nullptr) < 0);
314     EXPECT_TRUE(mInterface->wpaCliCmdSetCountryCode(mInterface, nullptr) < 0);
315     MockEraseSupportedCmd("DRIVER COUNTRY");
316     EXPECT_TRUE(mInterface->wpaCliCmdSetCountryCode(mInterface, "CN") == 0);
317     MockSetWpaExpectCmdResponse("DRIVER COUNTRY", "FAIL\n");
318     EXPECT_TRUE(mInterface->wpaCliCmdSetCountryCode(mInterface, "CN") == 0);
319     MockSetWpaExpectCmdResponse("DRIVER COUNTRY", "OK");
320     EXPECT_TRUE(mInterface->wpaCliCmdSetCountryCode(mInterface, "CN") == 0);
321 }
322 
323 HWTEST_F(WifiHalWpaStaTest, WpaCliCmdGetCountryCodeTest, TestSize.Level1)
324 {
325     EXPECT_TRUE(mInterface->wpaCliCmdGetCountryCode(nullptr, nullptr, 0) < 0);
326     EXPECT_TRUE(mInterface->wpaCliCmdGetCountryCode(mInterface, nullptr, 0) < 0);
327     char countryCode[3] = {0};
328     int codeSize = 3;
329     MockEraseSupportedCmd("GET");
330     EXPECT_TRUE(mInterface->wpaCliCmdGetCountryCode(mInterface, countryCode, codeSize) < 0);
331     MockSetWpaExpectCmdResponse("GET", "FAIL\n");
332     EXPECT_TRUE(mInterface->wpaCliCmdGetCountryCode(mInterface, countryCode, codeSize) < 0);
333     MockSetWpaExpectCmdResponse("GET", "OK");
334     EXPECT_TRUE(mInterface->wpaCliCmdGetCountryCode(mInterface, countryCode, codeSize) == 0);
335     EXPECT_TRUE(strcmp(countryCode, "OK") == 0);
336 }
337 
338 HWTEST_F(WifiHalWpaStaTest, WpaCliCmdSetAutoConnectTest, TestSize.Level1)
339 {
340     MockEraseSupportedCmd("STA_AUTOCONNECT");
341     EXPECT_TRUE(mInterface->wpaCliCmdSetAutoConnect(nullptr, 0) < 0);
342     EXPECT_TRUE(mInterface->wpaCliCmdSetAutoConnect(mInterface, 0) < 0);
343     MockSetWpaExpectCmdResponse("STA_AUTOCONNECT", "FAIL\n");
344     EXPECT_TRUE(mInterface->wpaCliCmdSetAutoConnect(mInterface, 0) < 0);
345     MockSetWpaExpectCmdResponse("STA_AUTOCONNECT", "OK");
346     EXPECT_TRUE(mInterface->wpaCliCmdSetAutoConnect(mInterface, 0) == 0);
347 }
348 
349 HWTEST_F(WifiHalWpaStaTest, WpaCliCmdWpaBlockListClearTest, TestSize.Level1)
350 {
351     EXPECT_TRUE(mInterface->wpaCliCmdWpaBlockListClear(nullptr) < 0);
352     EXPECT_TRUE(mInterface->wpaCliCmdWpaBlockListClear(mInterface) < 0);
353 }
354 
355 HWTEST_F(WifiHalWpaStaTest, WpaCliCmdListNetworksTest, TestSize.Level1)
356 {
357     EXPECT_TRUE(mInterface->wpaCliCmdListNetworks(nullptr, nullptr, nullptr) < 0);
358     EXPECT_TRUE(mInterface->wpaCliCmdListNetworks(mInterface, nullptr, nullptr) < 0);
359     EXPECT_TRUE(mInterface->wpaCliCmdListNetworks(mInterface, nullptr, 0) < 0);
360     WifiNetworkInfo a[256];
361     ASSERT_TRUE(memset_s(a, sizeof(a), 0, sizeof(a)) == EOK);
362     int size = 256;
363     MockEraseSupportedCmd("LIST_NETWORKS");
364     EXPECT_TRUE(mInterface->wpaCliCmdListNetworks(mInterface, a, &size) < 0);
365     char buf[] = "network id / ssid / bssid / flags\n"
366                  "1\tssid1\t00:xx:xx:xx:xx:00\t[DISABLED]\n"
367                  "2\tssid2\tany\t[DISABLED]\n"
368                  "3\tssid3\t00:00:00:00:00:00\t[CURRENT]\n"
369                  "4\tssid4\tany\t[DISABLED]\n";
370     MockSetWpaExpectCmdResponse("LIST_NETWORKS", buf);
371     EXPECT_TRUE(mInterface->wpaCliCmdListNetworks(mInterface, a, &size) == 0);
372     EXPECT_TRUE(size == 4);
373     size = 2;
374     EXPECT_TRUE(mInterface->wpaCliCmdListNetworks(mInterface, a, &size) == 0);
375     EXPECT_TRUE(size == 2);
376     EXPECT_TRUE(a[0].id == 1);
377     EXPECT_TRUE(strcmp(a[0].ssid, "ssid1") == 0);
378     EXPECT_TRUE(strcmp(a[0].bssid, "00:xx:xx:xx:xx:00") == 0);
379     EXPECT_TRUE(strcmp(a[0].flags, "[DISABLED]") == 0);
380     EXPECT_TRUE(a[1].id == 2);
381     EXPECT_TRUE(strcmp(a[1].ssid, "ssid2") == 0);
382     EXPECT_TRUE(strcmp(a[1].bssid, "any") == 0);
383     EXPECT_TRUE(strcmp(a[1].flags, "[DISABLED]") == 0);
384 }
385 
386 HWTEST_F(WifiHalWpaStaTest, WpaCliCmdGetSignalInfoTest, TestSize.Level1)
387 {
388     EXPECT_TRUE(mInterface->wpaCliCmdGetSignalInfo(nullptr, nullptr) < 0);
389     EXPECT_TRUE(mInterface->wpaCliCmdGetSignalInfo(mInterface, nullptr) < 0);
390     WpaSignalInfo info;
391     ASSERT_TRUE(memset_s(&info, sizeof(info), 0, sizeof(info)) == EOK);
392     EXPECT_TRUE(mInterface->wpaCliCmdGetSignalInfo(mInterface, &info) == 0);
393     MockEraseSupportedCmd("SIGNAL_POLL");
394     EXPECT_TRUE(mInterface->wpaCliCmdGetSignalInfo(mInterface, &info) < 0);
395     MockSetWpaExpectCmdResponse("SIGNAL_POLL", "FAIL\n");
396     EXPECT_TRUE(mInterface->wpaCliCmdGetSignalInfo(mInterface, &info) < 0);
397     char buf[] = "RSSI=-86\nLINKSPEED=1024\nNOISE=128\nFREQUENCY=5555\n";
398     MockSetWpaExpectCmdResponse("SIGNAL_POLL", buf);
399     EXPECT_TRUE(mInterface->wpaCliCmdGetSignalInfo(mInterface, &info) == 0);
400     EXPECT_TRUE(info.signal == -86);
401     EXPECT_TRUE(info.txrate == 1024);
402     EXPECT_TRUE(info.noise == 128);
403     EXPECT_TRUE(info.frequency == 5555);
404 }
405 
406 HWTEST_F(WifiHalWpaStaTest, WpaCliCmdScanInfoTest, TestSize.Level1)
407 {
408     ScanInfo pcmd;
409     int size = 10;
410     MockEraseSupportedCmd("SCAN_RESULTS");
411     ASSERT_TRUE(memset_s(&pcmd, sizeof(pcmd), 0, sizeof(pcmd)) == EOK);
412     EXPECT_TRUE(mInterface->wpaCliCmdScanInfo(nullptr, nullptr, nullptr) < 0);
413     EXPECT_TRUE(mInterface->wpaCliCmdScanInfo(mInterface, nullptr, nullptr) < 0);
414     EXPECT_TRUE(mInterface->wpaCliCmdScanInfo(mInterface, &pcmd, nullptr) < 0);
415     EXPECT_TRUE(mInterface->wpaCliCmdScanInfo(mInterface, &pcmd, 0) < 0);
416     MockSetWpaExpectCmdResponse("SCAN_RESULTS", "FAIL\n");
417     EXPECT_TRUE(mInterface->wpaCliCmdScanInfo(mInterface, &pcmd, &size) < 0);
418     MockSetWpaExpectCmdResponse("SCAN_RESULTS", "OK");
419     EXPECT_TRUE(mInterface->wpaCliCmdScanInfo(mInterface, &pcmd, &size) == 0);
420 }
421 
422 HWTEST_F(WifiHalWpaStaTest, WpaCliCmdWpaSetSuspendModeTest, TestSize.Level1)
423 {
424     MockEraseSupportedCmd("DRIVER SETSUSPENDMODE");
425     EXPECT_TRUE(mInterface->wpaCliCmdWpaSetSuspendMode(nullptr, true) < 0);
426     EXPECT_TRUE(mInterface->wpaCliCmdWpaSetSuspendMode(mInterface, true) == 0);
427     MockSetWpaExpectCmdResponse("DRIVER SETSUSPENDMODE", "FAIL\n");
428     EXPECT_TRUE(mInterface->wpaCliCmdWpaSetSuspendMode(mInterface, true) == 0);
429     MockSetWpaExpectCmdResponse("DRIVER SETSUSPENDMODE", "OK");
430     EXPECT_TRUE(mInterface->wpaCliCmdWpaSetSuspendMode(mInterface, true) == 0);
431 }
432 }  // namespace Wifi
433 }  // namespace OHOS
434 
435