1 /*
2  * Copyright (c) 2021-2023 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 <gtest/gtest.h>
16 #include <servmgr_hdi.h>
17 #include <osal_mem.h>
18 #include "v1_1/iwpa_interface.h"
19 #include "wpa_callback_impl.h"
20 #include "securec.h"
21 
22 #define IFNAME "wlan0"
23 #define CONFNAME "/data/service/el1/public/wifi/wpa_supplicant/wpa_supplicant.conf"
24 
25 #define HDF_LOG_TAG service_manager_test
26 using namespace testing::ext;
27 
28 namespace HdiTest {
29 const char *g_wlanServiceNameWpa = "wpa_interface_service";
30 
31 class HdfWpaHostCTest : public testing::Test {
32 public:
33     static void SetUpTestCase();
34     static void TearDownTestCase();
35     void SetUp();
36     void TearDown();
37 };
38 
39 static struct IWpaInterface *g_wpaObj = nullptr;
40 struct IWpaCallback *g_wpaCallbackObj = nullptr;
SetUpTestCase()41 void HdfWpaHostCTest::SetUpTestCase()
42 {
43     g_wpaObj = IWpaInterfaceGetInstance(g_wlanServiceNameWpa, false);
44     g_wpaCallbackObj = WpaCallbackServiceGet();
45     ASSERT_TRUE(g_wpaObj != nullptr);
46     ASSERT_TRUE(g_wpaCallbackObj != nullptr);
47 }
48 
TearDownTestCase()49 void HdfWpaHostCTest::TearDownTestCase()
50 {
51     IWpaInterfaceReleaseInstance(g_wlanServiceNameWpa, g_wpaObj, false);
52     WpaCallbackServiceRelease(g_wpaCallbackObj);
53 }
54 
SetUp()55 void HdfWpaHostCTest::SetUp()
56 {
57     int32_t rc = g_wpaObj->Start(g_wpaObj);
58     ASSERT_EQ(rc, HDF_SUCCESS);
59 }
60 
TearDown()61 void HdfWpaHostCTest::TearDown()
62 {
63     int32_t rc = g_wpaObj->Stop(g_wpaObj);
64     ASSERT_EQ(rc, HDF_SUCCESS);
65 }
66 
67 HWTEST_F(HdfWpaHostCTest, AddWpaIfaceTest_001, TestSize.Level1)
68 {
69     int32_t rc = g_wpaObj->AddWpaIface(g_wpaObj, IFNAME, CONFNAME);
70     ASSERT_EQ(rc, HDF_SUCCESS);
71     if (rc == HDF_SUCCESS) {
72         rc = g_wpaObj->RemoveWpaIface(g_wpaObj, IFNAME);
73         ASSERT_EQ(rc, HDF_SUCCESS);
74     }
75 }
76 
77 HWTEST_F(HdfWpaHostCTest, ScanTest_002, TestSize.Level1)
78 {
79     int32_t rc = g_wpaObj->AddWpaIface(g_wpaObj, IFNAME, CONFNAME);
80     ASSERT_EQ(rc, HDF_SUCCESS);
81     if (rc == HDF_SUCCESS) {
82         rc = g_wpaObj->Scan(g_wpaObj, IFNAME);
83         ASSERT_EQ(rc, HDF_SUCCESS);
84         rc = g_wpaObj->RemoveWpaIface(g_wpaObj, IFNAME);
85         ASSERT_EQ(rc, HDF_SUCCESS);
86     }
87 }
88 
89 HWTEST_F(HdfWpaHostCTest, ScanResultTest_003, TestSize.Level1)
90 {
91     unsigned char *resultBuf = (unsigned char *)calloc(4096 * 10, sizeof(unsigned char));
92     uint32_t resultBufLen = 4096 * 10;
93     int32_t rc = g_wpaObj->AddWpaIface(g_wpaObj, IFNAME, CONFNAME);
94     ASSERT_EQ(rc, HDF_SUCCESS);
95     if (rc == HDF_SUCCESS) {
96         rc = g_wpaObj->ScanResult(g_wpaObj, IFNAME, resultBuf, &resultBufLen);
97         ASSERT_EQ(rc, HDF_SUCCESS);
98         rc = g_wpaObj->RemoveWpaIface(g_wpaObj, IFNAME);
99         ASSERT_EQ(rc, HDF_SUCCESS);
100     }
101     free(resultBuf);
102 }
103 
104 HWTEST_F(HdfWpaHostCTest, AddNetworkTest_004, TestSize.Level1)
105 {
106     int networkId = 0;
107     int32_t rc = g_wpaObj->AddWpaIface(g_wpaObj, IFNAME, CONFNAME);
108     ASSERT_EQ(rc, HDF_SUCCESS);
109     if (rc == HDF_SUCCESS) {
110         rc = g_wpaObj->AddNetwork(g_wpaObj, IFNAME, &networkId);
111         printf("networkId = %d\n", networkId);
112         ASSERT_EQ(rc, HDF_SUCCESS);
113         rc = g_wpaObj->RemoveWpaIface(g_wpaObj, IFNAME);
114         ASSERT_EQ(rc, HDF_SUCCESS);
115     }
116 }
117 
118 HWTEST_F(HdfWpaHostCTest, RemoveNetworkTest_005, TestSize.Level1)
119 {
120     int networkId = 0;
121     int32_t rc = g_wpaObj->AddWpaIface(g_wpaObj, IFNAME, CONFNAME);
122     ASSERT_EQ(rc, HDF_SUCCESS);
123     if (rc == HDF_SUCCESS) {
124         rc = g_wpaObj->AddNetwork(g_wpaObj, IFNAME, &networkId);
125         printf("networkId = %d\n", networkId);
126         ASSERT_EQ(rc, HDF_SUCCESS);
127         rc = g_wpaObj->RemoveNetwork(g_wpaObj, IFNAME, networkId);
128         ASSERT_EQ(rc, HDF_SUCCESS);
129         rc = g_wpaObj->RemoveWpaIface(g_wpaObj, IFNAME);
130         ASSERT_EQ(rc, HDF_SUCCESS);
131     }
132 }
133 
134 HWTEST_F(HdfWpaHostCTest, DisableNetworkTest_006, TestSize.Level1)
135 {
136     int networkId = 0;
137     int32_t rc = g_wpaObj->AddWpaIface(g_wpaObj, IFNAME, CONFNAME);
138     ASSERT_EQ(rc, HDF_SUCCESS);
139     if (rc == HDF_SUCCESS) {
140         rc = g_wpaObj->AddNetwork(g_wpaObj, IFNAME, &networkId);
141         printf("networkId = %d\n", networkId);
142         ASSERT_EQ(rc, HDF_SUCCESS);
143         rc = g_wpaObj->DisableNetwork(g_wpaObj, IFNAME, networkId);
144         ASSERT_EQ(rc, HDF_SUCCESS);
145         rc = g_wpaObj->RemoveWpaIface(g_wpaObj, IFNAME);
146         ASSERT_EQ(rc, HDF_SUCCESS);
147     }
148 }
149 
150 HWTEST_F(HdfWpaHostCTest, SetNetworkTest_007, TestSize.Level1)
151 {
152     int networkId = 0;
153 
154     int32_t rc = g_wpaObj->AddWpaIface(g_wpaObj, IFNAME, CONFNAME);
155     ASSERT_EQ(rc, HDF_SUCCESS);
156     if (rc == HDF_SUCCESS) {
157         rc = g_wpaObj->AddNetwork(g_wpaObj, IFNAME, &networkId);
158         printf("networkId = %d\n", networkId);
159         ASSERT_EQ(rc, HDF_SUCCESS);
160         rc = g_wpaObj->SetNetwork(g_wpaObj, IFNAME, networkId, "ssid", "WIFI_5G");
161         ASSERT_EQ(rc, HDF_SUCCESS);
162         rc = g_wpaObj->SetNetwork(g_wpaObj, IFNAME, networkId, "key_mgmt", "WPA-PSK");
163         ASSERT_EQ(rc, HDF_SUCCESS);
164         rc = g_wpaObj->SetNetwork(g_wpaObj, IFNAME, networkId, "psk", "123456789");
165         ASSERT_EQ(rc, HDF_SUCCESS);
166         rc = g_wpaObj->RemoveWpaIface(g_wpaObj, IFNAME);
167         ASSERT_EQ(rc, HDF_SUCCESS);
168     }
169 }
170 
171 HWTEST_F(HdfWpaHostCTest, ListNetworksTest_008, TestSize.Level1)
172 {
173     int networkId = 0;
174     struct HdiWifiWpaNetworkInfo networkInfo;
175     (void)memset_s(
176         &networkInfo, sizeof(struct HdiWifiWpaNetworkInfo), 0, sizeof(struct HdiWifiWpaNetworkInfo));
177     const char *ifNameInvalid = "wlanTest";
178     uint32_t networkInfoLen = 0;
179     int32_t rc = g_wpaObj->AddWpaIface(g_wpaObj, IFNAME, CONFNAME);
180     ASSERT_EQ(rc, HDF_SUCCESS);
181     if (rc == HDF_SUCCESS) {
182         rc = g_wpaObj->AddNetwork(g_wpaObj, IFNAME, &networkId);
183         printf("networkId = %d\n", networkId);
184         ASSERT_EQ(rc, HDF_SUCCESS);
185         rc = g_wpaObj->ListNetworks(g_wpaObj, ifNameInvalid, (struct HdiWifiWpaNetworkInfo *)&networkInfo,
186 	    &networkInfoLen);
187         ASSERT_EQ(rc, HDF_SUCCESS);
188         rc = g_wpaObj->ListNetworks(g_wpaObj, IFNAME, (struct HdiWifiWpaNetworkInfo *)&networkInfo, &networkInfoLen);
189         ASSERT_EQ(rc, HDF_SUCCESS);
190         rc = g_wpaObj->RemoveWpaIface(g_wpaObj, IFNAME);
191         ASSERT_EQ(rc, HDF_SUCCESS);
192     }
193 }
194 
195 HWTEST_F(HdfWpaHostCTest, SelectNetworkTest_009, TestSize.Level1)
196 {
197     int networkId = 0;
198 
199     int32_t rc = g_wpaObj->AddWpaIface(g_wpaObj, IFNAME, CONFNAME);
200     ASSERT_EQ(rc, HDF_SUCCESS);
201     if (rc == HDF_SUCCESS) {
202         rc = g_wpaObj->AddNetwork(g_wpaObj, IFNAME, &networkId);
203         printf("networkId = %d\n", networkId);
204         ASSERT_EQ(rc, HDF_SUCCESS);
205         rc = g_wpaObj->SetNetwork(g_wpaObj, IFNAME, networkId, "ssid", "WIFI_5G");
206         ASSERT_EQ(rc, HDF_SUCCESS);
207         rc = g_wpaObj->SetNetwork(g_wpaObj, IFNAME, networkId, "key_mgmt", "WPA-PSK");
208         ASSERT_EQ(rc, HDF_SUCCESS);
209         rc = g_wpaObj->SetNetwork(g_wpaObj, IFNAME, networkId, "psk", "123456789");
210         ASSERT_EQ(rc, HDF_SUCCESS);
211         rc = g_wpaObj->SelectNetwork(g_wpaObj, IFNAME, networkId);
212         ASSERT_EQ(rc, HDF_SUCCESS);
213         rc = g_wpaObj->RemoveWpaIface(g_wpaObj, IFNAME);
214         ASSERT_EQ(rc, HDF_SUCCESS);
215     }
216 }
217 
218 HWTEST_F(HdfWpaHostCTest, EnableNetworkTest_010, TestSize.Level1)
219 {
220     int networkId = 0;
221     int32_t rc = g_wpaObj->AddWpaIface(g_wpaObj, IFNAME, CONFNAME);
222     ASSERT_EQ(rc, HDF_SUCCESS);
223     if (rc == HDF_SUCCESS) {
224         rc = g_wpaObj->AddNetwork(g_wpaObj, IFNAME, &networkId);
225         printf("networkId = %d\n", networkId);
226         ASSERT_EQ(rc, HDF_SUCCESS);
227         rc = g_wpaObj->DisableNetwork(g_wpaObj, IFNAME, networkId);
228         ASSERT_EQ(rc, HDF_SUCCESS);
229         rc = g_wpaObj->EnableNetwork(g_wpaObj, IFNAME, networkId);
230         ASSERT_EQ(rc, HDF_SUCCESS);
231         rc = g_wpaObj->RemoveWpaIface(g_wpaObj, IFNAME);
232         ASSERT_EQ(rc, HDF_SUCCESS);
233     }
234 }
235 
236 HWTEST_F(HdfWpaHostCTest, ReconnectTest_011, TestSize.Level1)
237 {
238     int networkId = 0;
239 
240     int32_t rc = g_wpaObj->AddWpaIface(g_wpaObj, IFNAME, CONFNAME);
241     ASSERT_EQ(rc, HDF_SUCCESS);
242     if (rc == HDF_SUCCESS) {
243         rc = g_wpaObj->AddNetwork(g_wpaObj, IFNAME, &networkId);
244         printf("networkId = %d\n", networkId);
245         ASSERT_EQ(rc, HDF_SUCCESS);
246         rc = g_wpaObj->SetNetwork(g_wpaObj, IFNAME, networkId, "ssid", "WIFI_5G");
247         ASSERT_EQ(rc, HDF_SUCCESS);
248         rc = g_wpaObj->SetNetwork(g_wpaObj, IFNAME, networkId, "key_mgmt", "WPA-PSK");
249         ASSERT_EQ(rc, HDF_SUCCESS);
250         rc = g_wpaObj->SetNetwork(g_wpaObj, IFNAME, networkId, "psk", "123456789");
251         ASSERT_EQ(rc, HDF_SUCCESS);
252         rc = g_wpaObj->SelectNetwork(g_wpaObj, IFNAME, networkId);
253         ASSERT_EQ(rc, HDF_SUCCESS);
254         rc = g_wpaObj->Reconnect(g_wpaObj, IFNAME);
255         ASSERT_EQ(rc, HDF_SUCCESS);
256         rc = g_wpaObj->RemoveWpaIface(g_wpaObj, IFNAME);
257         ASSERT_EQ(rc, HDF_SUCCESS);
258     }
259 }
260 
261 HWTEST_F(HdfWpaHostCTest, DisconnectTest_012, TestSize.Level1)
262 {
263     int networkId = 0;
264 
265     int32_t rc = g_wpaObj->AddWpaIface(g_wpaObj, IFNAME, CONFNAME);
266     ASSERT_EQ(rc, HDF_SUCCESS);
267     if (rc == HDF_SUCCESS) {
268         rc = g_wpaObj->AddNetwork(g_wpaObj, IFNAME, &networkId);
269         printf("networkId = %d\n", networkId);
270         ASSERT_EQ(rc, HDF_SUCCESS);
271         rc = g_wpaObj->SetNetwork(g_wpaObj, IFNAME, networkId, "ssid", "WIFI_5G");
272         ASSERT_EQ(rc, HDF_SUCCESS);
273         rc = g_wpaObj->SetNetwork(g_wpaObj, IFNAME, networkId, "key_mgmt", "WPA-PSK");
274         ASSERT_EQ(rc, HDF_SUCCESS);
275         rc = g_wpaObj->SetNetwork(g_wpaObj, IFNAME, networkId, "psk", "123456789");
276         ASSERT_EQ(rc, HDF_SUCCESS);
277         rc = g_wpaObj->SelectNetwork(g_wpaObj, IFNAME, networkId);
278         ASSERT_EQ(rc, HDF_SUCCESS);
279         rc = g_wpaObj->Disconnect(g_wpaObj, IFNAME);
280         ASSERT_EQ(rc, HDF_SUCCESS);
281         rc = g_wpaObj->RemoveWpaIface(g_wpaObj, IFNAME);
282         ASSERT_EQ(rc, HDF_SUCCESS);
283     }
284 }
285 
286 HWTEST_F(HdfWpaHostCTest, SaveConfigTest_013, TestSize.Level1)
287 {
288     int32_t rc = g_wpaObj->AddWpaIface(g_wpaObj, IFNAME, CONFNAME);
289     ASSERT_EQ(rc, HDF_SUCCESS);
290     if (rc == HDF_SUCCESS) {
291         rc = g_wpaObj->SaveConfig(g_wpaObj, IFNAME);
292         ASSERT_EQ(rc, HDF_SUCCESS);
293         rc = g_wpaObj->RemoveWpaIface(g_wpaObj, IFNAME);
294         ASSERT_EQ(rc, HDF_SUCCESS);
295     }
296 }
297 
298 HWTEST_F(HdfWpaHostCTest, SetPowerSaveTest_014, TestSize.Level1)
299 {
300     int32_t rc = g_wpaObj->AddWpaIface(g_wpaObj, IFNAME, CONFNAME);
301     ASSERT_EQ(rc, HDF_SUCCESS);
302     if (rc == HDF_SUCCESS) {
303         rc = g_wpaObj->SetPowerSave(g_wpaObj, IFNAME, 0);
304         ASSERT_EQ(rc, HDF_SUCCESS);
305         rc = g_wpaObj->SetPowerSave(g_wpaObj, IFNAME, 1);
306         ASSERT_EQ(rc, HDF_SUCCESS);
307         rc = g_wpaObj->RemoveWpaIface(g_wpaObj, IFNAME);
308         ASSERT_EQ(rc, HDF_SUCCESS);
309     }
310 }
311 
312 HWTEST_F(HdfWpaHostCTest, AutoConnectTest_015, TestSize.Level1)
313 {
314     int32_t rc = g_wpaObj->AddWpaIface(g_wpaObj, IFNAME, CONFNAME);
315     ASSERT_EQ(rc, HDF_SUCCESS);
316     if (rc == HDF_SUCCESS) {
317         rc = g_wpaObj->AutoConnect(g_wpaObj, IFNAME, 0);
318         ASSERT_EQ(rc, HDF_SUCCESS);
319         rc = g_wpaObj->AutoConnect(g_wpaObj, IFNAME, 1);
320         ASSERT_EQ(rc, HDF_SUCCESS);
321         rc = g_wpaObj->RemoveWpaIface(g_wpaObj, IFNAME);
322         ASSERT_EQ(rc, HDF_SUCCESS);
323     }
324 }
325 
326 HWTEST_F(HdfWpaHostCTest, WifiStatusTest_016, TestSize.Level1)
327 {
328     struct HdiWpaCmdStatus wifiStatus;
329     (void)memset_s(
330         &wifiStatus, sizeof(struct HdiWpaCmdStatus), 0, sizeof(struct HdiWpaCmdStatus));
331 
332     int32_t rc = g_wpaObj->AddWpaIface(g_wpaObj, IFNAME, CONFNAME);
333     ASSERT_EQ(rc, HDF_SUCCESS);
334     if (rc == HDF_SUCCESS) {
335         rc = g_wpaObj->WifiStatus(g_wpaObj, IFNAME, &wifiStatus);
336         ASSERT_EQ(rc, HDF_SUCCESS);
337         rc = g_wpaObj->RemoveWpaIface(g_wpaObj, IFNAME);
338         ASSERT_EQ(rc, HDF_SUCCESS);
339     }
340 }
341 
342 HWTEST_F(HdfWpaHostCTest, WpsPbcModeTest_017, TestSize.Level1)
343 {
344     struct HdiWifiWpsParam wpsParam;
345     (void)memset_s(&wpsParam, sizeof(struct HdiWifiWpsParam), 0, sizeof(struct HdiWifiWpsParam));
346     wpsParam.anyFlag = 1;
347     wpsParam.multiAp = 1;
348     wpsParam.bssidLen = 6;
349     wpsParam.bssid = (uint8_t *)OsalMemCalloc(sizeof(uint8_t) * (wpsParam.bssidLen));
350     wpsParam.bssid[0] = 0x12;
351     wpsParam.bssid[1] = 0x34;
352     wpsParam.bssid[2] = 0x56;
353     wpsParam.bssid[3] = 0x78;
354     wpsParam.bssid[4] = 0xab;
355     wpsParam.bssid[5] = 0xcd;
356 
357     int32_t rc = g_wpaObj->AddWpaIface(g_wpaObj, IFNAME, CONFNAME);
358     ASSERT_EQ(rc, HDF_SUCCESS);
359     if (rc == HDF_SUCCESS) {
360         rc = g_wpaObj->WpsPbcMode(g_wpaObj, IFNAME, &wpsParam);
361         ASSERT_EQ(rc, HDF_SUCCESS);
362         rc = g_wpaObj->WpsPbcMode(g_wpaObj, IFNAME, NULL);
363         ASSERT_EQ(rc, HDF_FAILURE);
364         rc = g_wpaObj->RemoveWpaIface(g_wpaObj, IFNAME);
365         ASSERT_EQ(rc, HDF_SUCCESS);
366     }
367     OsalMemFree(wpsParam.bssid);
368 }
369 
370 HWTEST_F(HdfWpaHostCTest, WpsPinModeTest_018, TestSize.Level1)
371 {
372     struct HdiWifiWpsParam wpsParam;
373     (void)memset_s(&wpsParam, sizeof(struct HdiWifiWpsParam), 0, sizeof(struct HdiWifiWpsParam));
374     wpsParam.anyFlag = 1;
375     wpsParam.multiAp = 1;
376     wpsParam.bssidLen = 6;
377     wpsParam.bssid = (uint8_t *)OsalMemCalloc(sizeof(uint8_t) * (wpsParam.bssidLen));
378     wpsParam.bssid[0] = 0x12;
379     wpsParam.bssid[1] = 0x34;
380     wpsParam.bssid[2] = 0x56;
381     wpsParam.bssid[3] = 0x78;
382     wpsParam.bssid[4] = 0xab;
383     wpsParam.bssid[5] = 0xcd;
384 
385     int pinCode = 0;
386     int32_t rc = g_wpaObj->AddWpaIface(g_wpaObj, IFNAME, CONFNAME);
387     ASSERT_EQ(rc, HDF_SUCCESS);
388     if (rc == HDF_SUCCESS) {
389         rc = g_wpaObj->WpsPinMode(g_wpaObj, IFNAME, &wpsParam, &pinCode);
390         ASSERT_EQ(rc, HDF_SUCCESS);
391         rc = g_wpaObj->WpsPinMode(g_wpaObj, IFNAME, NULL, &pinCode);
392         ASSERT_EQ(rc, HDF_FAILURE);
393         rc = g_wpaObj->RemoveWpaIface(g_wpaObj, IFNAME);
394         ASSERT_EQ(rc, HDF_SUCCESS);
395     }
396     OsalMemFree(wpsParam.bssid);
397 }
398 
399 HWTEST_F(HdfWpaHostCTest, WpsCancelTest_019, TestSize.Level1)
400 {
401     int32_t rc = g_wpaObj->AddWpaIface(g_wpaObj, IFNAME, CONFNAME);
402     ASSERT_EQ(rc, HDF_SUCCESS);
403     if (rc == HDF_SUCCESS) {
404         rc = g_wpaObj->WpsCancel(g_wpaObj, IFNAME);
405         ASSERT_EQ(rc, HDF_SUCCESS);
406         rc = g_wpaObj->RemoveWpaIface(g_wpaObj, IFNAME);
407         ASSERT_EQ(rc, HDF_SUCCESS);
408     }
409 }
410 
411 HWTEST_F(HdfWpaHostCTest, GetCountryCodeTest_020, TestSize.Level1)
412 {
413     char countryCode[3] = {0};
414     int32_t rc = g_wpaObj->AddWpaIface(g_wpaObj, IFNAME, CONFNAME);
415     ASSERT_EQ(rc, HDF_SUCCESS);
416     if (rc == HDF_SUCCESS) {
417         rc = g_wpaObj->GetCountryCode(g_wpaObj, IFNAME, countryCode, 3);
418         ASSERT_EQ(rc, HDF_SUCCESS);
419         rc = g_wpaObj->RemoveWpaIface(g_wpaObj, IFNAME);
420         ASSERT_EQ(rc, HDF_SUCCESS);
421     }
422 }
423 
424 HWTEST_F(HdfWpaHostCTest, GetNetworkTest_021, TestSize.Level1)
425 {
426     int networkId = 0;
427     char value[32] = {0};
428     int32_t rc = g_wpaObj->AddWpaIface(g_wpaObj, IFNAME, CONFNAME);
429     ASSERT_EQ(rc, HDF_SUCCESS);
430     if (rc == HDF_SUCCESS) {
431         rc = g_wpaObj->AddNetwork(g_wpaObj, IFNAME, &networkId);
432         printf("networkId = %d\n", networkId);
433         ASSERT_EQ(rc, HDF_SUCCESS);
434         rc = g_wpaObj->GetNetwork(g_wpaObj, IFNAME, networkId, "ssid", value, 32);
435         ASSERT_EQ(rc, HDF_SUCCESS);
436         rc = g_wpaObj->RemoveWpaIface(g_wpaObj, IFNAME);
437         ASSERT_EQ(rc, HDF_SUCCESS);
438     }
439 }
440 
441 HWTEST_F(HdfWpaHostCTest, BlocklistClearTest_022, TestSize.Level1)
442 {
443     int32_t rc = g_wpaObj->AddWpaIface(g_wpaObj, IFNAME, CONFNAME);
444     ASSERT_EQ(rc, HDF_SUCCESS);
445     if (rc == HDF_SUCCESS) {
446         rc = g_wpaObj->BlocklistClear(g_wpaObj, IFNAME);
447         ASSERT_EQ(rc, HDF_SUCCESS);
448         rc = g_wpaObj->RemoveWpaIface(g_wpaObj, IFNAME);
449         ASSERT_EQ(rc, HDF_SUCCESS);
450     }
451 }
452 
453 HWTEST_F(HdfWpaHostCTest, SetSuspendModeTest_023, TestSize.Level1)
454 {
455     int32_t rc = g_wpaObj->AddWpaIface(g_wpaObj, IFNAME, CONFNAME);
456     ASSERT_EQ(rc, HDF_SUCCESS);
457     if (rc == HDF_SUCCESS) {
458         rc = g_wpaObj->SetSuspendMode(g_wpaObj, IFNAME, 0);
459         ASSERT_EQ(rc, HDF_SUCCESS);
460         rc = g_wpaObj->SetSuspendMode(g_wpaObj, IFNAME, 1);
461         ASSERT_EQ(rc, HDF_SUCCESS);
462         rc = g_wpaObj->RemoveWpaIface(g_wpaObj, IFNAME);
463         ASSERT_EQ(rc, HDF_SUCCESS);
464     }
465 }
466 
467 HWTEST_F(HdfWpaHostCTest, RegisterEventCallbackTest_024, TestSize.Level1)
468 {
469     int32_t rc = g_wpaObj->RegisterEventCallback(g_wpaObj, g_wpaCallbackObj, IFNAME);
470     ASSERT_EQ(rc, HDF_SUCCESS);
471 }
472 
473 HWTEST_F(HdfWpaHostCTest, UnregisterEventCallbackTest_025, TestSize.Level1)
474 {
475     int32_t rc = g_wpaObj->UnregisterEventCallback(g_wpaObj, g_wpaCallbackObj, IFNAME);
476     ASSERT_EQ(rc, HDF_SUCCESS);
477 }
478 
479 HWTEST_F(HdfWpaHostCTest, GetConnectionCapabilitiesTest_026, TestSize.Level1)
480 {
481     struct ConnectionCapabilities connectionCap;
482     (void)memset_s(
483         &connectionCap, sizeof(struct ConnectionCapabilities), 0, sizeof(struct ConnectionCapabilities));
484     int32_t rc = g_wpaObj->AddWpaIface(g_wpaObj, IFNAME, CONFNAME);
485     ASSERT_EQ(rc, HDF_SUCCESS);
486     if (rc == HDF_SUCCESS) {
487         rc = g_wpaObj->GetConnectionCapabilities(g_wpaObj, IFNAME, &connectionCap);
488         ASSERT_EQ(rc, HDF_SUCCESS);
489         rc = g_wpaObj->RemoveWpaIface(g_wpaObj, IFNAME);
490         ASSERT_EQ(rc, HDF_SUCCESS);
491     }
492 }
493 
494 HWTEST_F(HdfWpaHostCTest, GetScanSsidTest_027, TestSize.Level1)
495 {
496     int enable = 0;
497 
498     int32_t rc = g_wpaObj->AddWpaIface(g_wpaObj, IFNAME, CONFNAME);
499     ASSERT_EQ(rc, HDF_SUCCESS);
500     if (rc == HDF_SUCCESS) {
501         rc = g_wpaObj->GetScanSsid(g_wpaObj, IFNAME, &enable);
502         ASSERT_EQ(rc, HDF_SUCCESS);
503         rc = g_wpaObj->RemoveWpaIface(g_wpaObj, IFNAME);
504         ASSERT_EQ(rc, HDF_SUCCESS);
505     }
506 }
507 
508 HWTEST_F(HdfWpaHostCTest, GetPskPassphraseTest_028, TestSize.Level1)
509 {
510     char psk[32] = {0};
511 
512     int32_t rc = g_wpaObj->AddWpaIface(g_wpaObj, IFNAME, CONFNAME);
513     ASSERT_EQ(rc, HDF_SUCCESS);
514     if (rc == HDF_SUCCESS) {
515         rc = g_wpaObj->GetPskPassphrase(g_wpaObj, IFNAME, psk, 32);
516         ASSERT_EQ(rc, HDF_SUCCESS);
517         rc = g_wpaObj->RemoveWpaIface(g_wpaObj, IFNAME);
518         ASSERT_EQ(rc, HDF_SUCCESS);
519     }
520 }
521 
522 HWTEST_F(HdfWpaHostCTest, GetPskTest_029, TestSize.Level1)
523 {
524     uint8_t psk[32] = {0};
525     uint32_t pskLen = 32;
526     int32_t rc = g_wpaObj->AddWpaIface(g_wpaObj, IFNAME, CONFNAME);
527     ASSERT_EQ(rc, HDF_SUCCESS);
528     if (rc == HDF_SUCCESS) {
529         rc = g_wpaObj->GetPsk(g_wpaObj, IFNAME, psk, &pskLen);
530         ASSERT_EQ(rc, HDF_SUCCESS);
531         rc = g_wpaObj->RemoveWpaIface(g_wpaObj, IFNAME);
532         ASSERT_EQ(rc, HDF_SUCCESS);
533     }
534 }
535 
536 HWTEST_F(HdfWpaHostCTest, GetWepKeyTest_030, TestSize.Level1)
537 {
538     uint8_t wepKey[16] = {0};
539     uint32_t wepKeyLen = 16;
540     int32_t rc = g_wpaObj->AddWpaIface(g_wpaObj, IFNAME, CONFNAME);
541     ASSERT_EQ(rc, HDF_SUCCESS);
542     if (rc == HDF_SUCCESS) {
543         rc = g_wpaObj->GetWepKey(g_wpaObj, IFNAME, 0, wepKey, &wepKeyLen);
544         ASSERT_EQ(rc, HDF_SUCCESS);
545         rc = g_wpaObj->GetWepKey(g_wpaObj, IFNAME, 1, wepKey, &wepKeyLen);
546         ASSERT_EQ(rc, HDF_SUCCESS);
547         rc = g_wpaObj->RemoveWpaIface(g_wpaObj, IFNAME);
548         ASSERT_EQ(rc, HDF_SUCCESS);
549     }
550 }
551 
552 HWTEST_F(HdfWpaHostCTest, GetWepTxKeyIdxTest_031, TestSize.Level1)
553 {
554     int32_t keyIdx = 0;
555 
556     int32_t rc = g_wpaObj->AddWpaIface(g_wpaObj, IFNAME, CONFNAME);
557     ASSERT_EQ(rc, HDF_SUCCESS);
558     if (rc == HDF_SUCCESS) {
559         rc = g_wpaObj->GetWepTxKeyIdx(g_wpaObj, IFNAME, &keyIdx);
560         ASSERT_EQ(rc, HDF_SUCCESS);
561         rc = g_wpaObj->RemoveWpaIface(g_wpaObj, IFNAME);
562         ASSERT_EQ(rc, HDF_SUCCESS);
563     }
564 }
565 
566 HWTEST_F(HdfWpaHostCTest, GetRequirePmfTest_032, TestSize.Level1)
567 {
568     int32_t enable = 0;
569 
570     int32_t rc = g_wpaObj->AddWpaIface(g_wpaObj, IFNAME, CONFNAME);
571     ASSERT_EQ(rc, HDF_SUCCESS);
572     if (rc == HDF_SUCCESS) {
573         rc = g_wpaObj->GetRequirePmf(g_wpaObj, IFNAME, &enable);
574         ASSERT_EQ(rc, HDF_SUCCESS);
575         rc = g_wpaObj->RemoveWpaIface(g_wpaObj, IFNAME);
576         ASSERT_EQ(rc, HDF_SUCCESS);
577     }
578 }
579 
580 HWTEST_F(HdfWpaHostCTest, SetCountryCodeTest_033, TestSize.Level1)
581 {
582     int32_t rc = g_wpaObj->AddWpaIface(g_wpaObj, IFNAME, CONFNAME);
583     ASSERT_EQ(rc, HDF_SUCCESS);
584     if (rc == HDF_SUCCESS) {
585         rc = g_wpaObj->SetCountryCode(g_wpaObj, IFNAME, "00");
586         ASSERT_EQ(rc, HDF_SUCCESS);
587         rc = g_wpaObj->SetCountryCode(g_wpaObj, IFNAME, "01");
588         ASSERT_EQ(rc, HDF_SUCCESS);
589         rc = g_wpaObj->RemoveWpaIface(g_wpaObj, IFNAME);
590         ASSERT_EQ(rc, HDF_SUCCESS);
591     }
592 }
593 
594 HWTEST_F(HdfWpaHostCTest, ReassociateTest_034, TestSize.Level1)
595 {
596     int networkId = 0;
597 
598     int32_t rc = g_wpaObj->AddWpaIface(g_wpaObj, IFNAME, CONFNAME);
599     ASSERT_EQ(rc, HDF_SUCCESS);
600     if (rc == HDF_SUCCESS) {
601         rc = g_wpaObj->AddNetwork(g_wpaObj, IFNAME, &networkId);
602         printf("networkId = %d\n", networkId);
603         ASSERT_EQ(rc, HDF_SUCCESS);
604         rc = g_wpaObj->SetNetwork(g_wpaObj, IFNAME, networkId, "ssid", "WIFI_5G");
605         ASSERT_EQ(rc, HDF_SUCCESS);
606         rc = g_wpaObj->SetNetwork(g_wpaObj, IFNAME, networkId, "key_mgmt", "WPA-PSK");
607         ASSERT_EQ(rc, HDF_SUCCESS);
608         rc = g_wpaObj->SetNetwork(g_wpaObj, IFNAME, networkId, "psk", "123456789");
609         ASSERT_EQ(rc, HDF_SUCCESS);
610         rc = g_wpaObj->SelectNetwork(g_wpaObj, IFNAME, networkId);
611         ASSERT_EQ(rc, HDF_SUCCESS);
612         rc = g_wpaObj->Reassociate(g_wpaObj, IFNAME);
613         ASSERT_EQ(rc, HDF_SUCCESS);
614         rc = g_wpaObj->RemoveWpaIface(g_wpaObj, IFNAME);
615         ASSERT_EQ(rc, HDF_SUCCESS);
616     }
617 }
618 
619 HWTEST_F(HdfWpaHostCTest, StaShellCmdTest_035, TestSize.Level1)
620 {
621     const char *cmd = "SET external_sim 1";
622     int32_t rc = g_wpaObj->AddWpaIface(g_wpaObj, IFNAME, CONFNAME);
623     ASSERT_EQ(rc, HDF_SUCCESS);
624     if (rc == HDF_SUCCESS) {
625         rc = g_wpaObj->StaShellCmd(g_wpaObj, IFNAME, cmd);
626         ASSERT_EQ(rc, HDF_SUCCESS);
627     }
628 }
629 };
630