1 /*
2 * Copyright (c) 2021-2022 Huawei Device Co., Ltd.
3 * Licensed under the Apache License, Version 2.0 (the "License");
4 * you may not use this file except in compliance with the License.
5 * You may obtain a copy of the License at
6 *
7 * http://www.apache.org/licenses/LICENSE-2.0
8 *
9 * Unless required by applicable law or agreed to in writing, software
10 * distributed under the License is distributed on an "AS IS" BASIS,
11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 * See the License for the specific language governing permissions and
13 * limitations under the License.
14 */
15
16 #include <gtest/gtest.h>
17 #include <osal_mem.h>
18 #include "hdf_base.h"
19 #include "hdf_sbuf.h"
20 #include "wifi_hal.h"
21 #include "wifi_hal_ap_feature.h"
22 #include "wifi_hal_base_feature.h"
23 #include "wifi_hal_sta_feature.h"
24 #include "securec.h"
25
26 using namespace testing::ext;
27
28 namespace HalTest {
29 struct IWiFi *g_wifi = nullptr;
30 const int32_t WLAN_TX_POWER = 160;
31 const uint32_t IFNAME_MIN_NUM = 0;
32 const uint32_t IFNAME_MAX_NUM = 32;
33 const uint32_t MAX_IF_NAME_LENGTH = 16;
34 const uint32_t TEST_PARAM_BUF_SIZE = 64;
35 const uint32_t SIZE = 4;
36 const int32_t TEST_CMD = 123;
37 const uint32_t TEST_BUF_SIZE = 64;
38 const uint32_t DEFAULT_COMBO_SIZE = 10;
39 const uint32_t RESET_TIME = 20;
40
41 class WifiHalTest : public testing::Test {
42 public:
43 static void SetUpTestCase();
44 static void TearDownTestCase();
45 void SetUp();
46 void TearDown();
47 };
48
SetUpTestCase()49 void WifiHalTest::SetUpTestCase()
50 {
51 int ret;
52
53 ret = WifiConstruct(&g_wifi);
54 ASSERT_EQ(HDF_SUCCESS, ret);
55 }
56
TearDownTestCase()57 void WifiHalTest::TearDownTestCase()
58 {
59 int ret;
60
61 ret = WifiDestruct(&g_wifi);
62 ASSERT_EQ(HDF_SUCCESS, ret);
63 }
64
SetUp()65 void WifiHalTest::SetUp()
66 {
67 int ret;
68
69 ret = g_wifi->start(nullptr);
70 ASSERT_EQ(HDF_ERR_INVALID_PARAM, ret);
71 ret = g_wifi->start(g_wifi);
72 ASSERT_EQ(HDF_SUCCESS, ret);
73 }
74
TearDown()75 void WifiHalTest::TearDown()
76 {
77 int ret;
78
79 ret = g_wifi->stop(nullptr);
80 ASSERT_EQ(HDF_ERR_INVALID_PARAM, ret);
81 ret = g_wifi->stop(g_wifi);
82 ASSERT_EQ(HDF_SUCCESS, ret);
83 }
84
ParseScanResult(WifiScanResult *scanResult)85 static void ParseScanResult(WifiScanResult *scanResult)
86 {
87 printf("ParseScanResult: flags=%d, caps=%d, freq=%d, beaconInt=%d,\n",
88 scanResult->flags, scanResult->caps, scanResult->freq, scanResult->beaconInt);
89 printf("ParseScanResult: qual=%d, beaconIeLen=%d, level=%d, age=%d, ieLen=%d,\n",
90 scanResult->qual, scanResult->beaconIeLen, scanResult->level, scanResult->age, scanResult->ieLen);
91 }
92
HalCallbackEvent(uint32_t event, void *respData, const char *ifName)93 static int32_t HalCallbackEvent(uint32_t event, void *respData, const char *ifName)
94 {
95 (void)event;
96 if (respData == nullptr) {
97 return HDF_FAILURE;
98 }
99 printf("HalCallbackEvent ifName = %s, event = %d\n", ifName, event);
100 switch (event) {
101 case WIFI_EVENT_SCAN_DONE:
102 printf("HalCallbackEvent WIFI_EVENT_SCAN_DONE Process\n");
103 break;
104 case WIFI_EVENT_SCAN_RESULT:
105 ParseScanResult((WifiScanResult *)respData);
106 break;
107 default:
108 break;
109 }
110 return HDF_SUCCESS;
111 }
112
113 /**
114 * @tc.name: WifiHalCreateAndDestroyFeature001
115 * @tc.desc: Wifi hal create and destroy feature function test_01
116 * @tc.type: FUNC
117 */
118
HWTEST_F(WifiHalTest, SUB_Driver_Wlan_WifiHdi_3700, Function | MediumTest | Level1)119 HWTEST_F(WifiHalTest, SUB_Driver_Wlan_WifiHdi_3700, Function | MediumTest | Level1)
120 {
121 int ret;
122 struct IWiFiAp *apFeature = nullptr;
123
124 ret = g_wifi->createFeature(PROTOCOL_80211_IFTYPE_AP, (struct IWiFiBaseFeature **)&apFeature);
125 EXPECT_EQ(HDF_SUCCESS, ret);
126 EXPECT_NE(nullptr, apFeature);
127
128 ret = g_wifi->destroyFeature(nullptr);
129 EXPECT_NE(HDF_SUCCESS, ret);
130 }
131
132 /**
133 * @tc.name: WifiHalCreateAndDestroyFeature002
134 * @tc.desc: Wifi hal create and destroy feature function test_02
135 * @tc.type: FUNC
136 */
137
HWTEST_F(WifiHalTest, SUB_Driver_Wlan_WifiHdi_3800, Function | MediumTest | Level1)138 HWTEST_F(WifiHalTest, SUB_Driver_Wlan_WifiHdi_3800, Function | MediumTest | Level1)
139 {
140 int ret;
141 struct IWiFiAp *apFeature = nullptr;
142
143 ret = g_wifi->createFeature(PROTOCOL_80211_IFTYPE_AP, (struct IWiFiBaseFeature **)&apFeature);
144 EXPECT_EQ(HDF_SUCCESS, ret);
145 EXPECT_NE(nullptr, apFeature);
146
147 ret = g_wifi->destroyFeature((struct IWiFiBaseFeature *)apFeature);
148 EXPECT_EQ(HDF_SUCCESS, ret);
149 }
150
151 /**
152 * @tc.name: WifiHalCreateAndDestroyFeature003
153 * @tc.desc: Wifi hal create and destroy feature function test_03
154 * @tc.type: FUNC
155 */
HWTEST_F(WifiHalTest, SUB_Driver_Wlan_WifiHdi_3900, Function | MediumTest | Level1)156 HWTEST_F(WifiHalTest, SUB_Driver_Wlan_WifiHdi_3900, Function | MediumTest | Level1)
157 {
158 int ret;
159 struct IWiFiSta *staFeature = nullptr;
160
161 ret = g_wifi->createFeature(PROTOCOL_80211_IFTYPE_STATION, (struct IWiFiBaseFeature **)&staFeature);
162 EXPECT_EQ(HDF_SUCCESS, ret);
163 EXPECT_NE(nullptr, staFeature);
164
165 ret = g_wifi->destroyFeature(nullptr);
166 EXPECT_NE(HDF_SUCCESS, ret);
167 }
168
169 /**
170 * @tc.name: WifiHalCreateAndDestroyFeature004
171 * @tc.desc: Wifi hal create and destroy feature function test_04
172 * @tc.type: FUNC
173 */
HWTEST_F(WifiHalTest, SUB_Driver_Wlan_WifiHdi_4000, Function | MediumTest | Level1)174 HWTEST_F(WifiHalTest, SUB_Driver_Wlan_WifiHdi_4000, Function | MediumTest | Level1)
175 {
176 int ret;
177 struct IWiFiSta *staFeature = nullptr;
178
179 ret = g_wifi->createFeature(PROTOCOL_80211_IFTYPE_STATION, (struct IWiFiBaseFeature **)&staFeature);
180 EXPECT_EQ(HDF_SUCCESS, ret);
181 EXPECT_NE(nullptr, staFeature);
182
183 ret = g_wifi->destroyFeature((struct IWiFiBaseFeature *)staFeature);
184 EXPECT_EQ(HDF_SUCCESS, ret);
185 }
186
187 /**
188 * @tc.name: WifiHalCreateFeature001
189 * @tc.desc: Wifi hal create feature function test_01
190 * @tc.type: FUNC
191 */
HWTEST_F(WifiHalTest, SUB_Driver_Wlan_WifiHdi_4100, Function | MediumTest | Level1)192 HWTEST_F(WifiHalTest, SUB_Driver_Wlan_WifiHdi_4100, Function | MediumTest | Level1)
193 {
194 int32_t ret;
195 ret = g_wifi->createFeature(PROTOCOL_80211_IFTYPE_STATION, nullptr);
196 EXPECT_EQ(ret, HDF_FAILURE);
197 }
198
199 /**
200 * @tc.name: WifiHalCreateFeature002
201 * @tc.desc: Wifi hal create feature function test_02
202 * @tc.type: FUNC
203 */
HWTEST_F(WifiHalTest, SUB_Driver_Wlan_WifiHdi_4200, Function | MediumTest | Level1)204 HWTEST_F(WifiHalTest, SUB_Driver_Wlan_WifiHdi_4200, Function | MediumTest | Level1)
205 {
206 int32_t ret;
207 ret = g_wifi->createFeature(PROTOCOL_80211_IFTYPE_AP, nullptr);
208 EXPECT_EQ(ret, HDF_FAILURE);
209 }
210
211 /**
212 * @tc.name: WifiHalCreateFeature003
213 * @tc.desc: Wifi hal create feature function test_03
214 * @tc.type: FUNC
215 */
HWTEST_F(WifiHalTest, SUB_Driver_Wlan_WifiHdi_4300, Function | MediumTest | Level1)216 HWTEST_F(WifiHalTest, SUB_Driver_Wlan_WifiHdi_4300, Function | MediumTest | Level1)
217 {
218 int32_t ret;
219 struct IWiFiSta *staFeature = nullptr;
220
221 ret = g_wifi->createFeature(PROTOCOL_80211_IFTYPE_NUM, (struct IWiFiBaseFeature **)&staFeature);
222 EXPECT_NE(ret, HDF_SUCCESS);
223 }
224
225 /**
226 * @tc.name: WifiHalCreateFeature004
227 * @tc.desc: Wifi hal create feature function test_04
228 * @tc.type: FUNC
229 */
HWTEST_F(WifiHalTest, SUB_Driver_Wlan_WifiHdi_4400, Function | MediumTest | Level1)230 HWTEST_F(WifiHalTest, SUB_Driver_Wlan_WifiHdi_4400, Function | MediumTest | Level1)
231 {
232 int32_t ret;
233 struct IWiFiSta *staFeature = nullptr;
234
235 ret = g_wifi->createFeature(-1, (struct IWiFiBaseFeature **)&staFeature);
236 EXPECT_NE(ret, HDF_SUCCESS);
237 }
238
239 /**
240 * @tc.name: WifiHalGetFeatureByIfName001
241 * @tc.desc: Wifi hal get feature by ifname function test_01
242 * @tc.type: FUNC
243 */
HWTEST_F(WifiHalTest, SUB_Driver_Wlan_WifiHdi_4450, Function | MediumTest | Level1)244 HWTEST_F(WifiHalTest, SUB_Driver_Wlan_WifiHdi_4450, Function | MediumTest | Level1)
245 {
246 int ret;
247 struct IWiFiAp *apFeature = nullptr;
248 struct IWiFiAp *apFeatureGet = nullptr;
249
250 ret = g_wifi->createFeature(PROTOCOL_80211_IFTYPE_AP, (struct IWiFiBaseFeature **)&apFeature);
251 EXPECT_EQ(HDF_SUCCESS, ret);
252 EXPECT_NE(nullptr, apFeature);
253 ret = g_wifi->getFeatureByIfName(nullptr, (struct IWiFiBaseFeature **)&apFeatureGet);
254 EXPECT_NE(ret, HDF_SUCCESS);
255
256 ret = g_wifi->destroyFeature((struct IWiFiBaseFeature *)apFeature);
257 EXPECT_EQ(HDF_SUCCESS, ret);
258 }
259
260 /**
261 * @tc.name: WifiHalGetFeatureByIfName002
262 * @tc.desc: Wifi hal get feature by ifname function test_02
263 * @tc.type: FUNC
264 */
HWTEST_F(WifiHalTest, SUB_Driver_Wlan_WifiHdi_4550, Function | MediumTest | Level1)265 HWTEST_F(WifiHalTest, SUB_Driver_Wlan_WifiHdi_4550, Function | MediumTest | Level1)
266 {
267 int ret;
268 struct IWiFiAp *apFeature = nullptr;
269 struct IWiFiAp *apFeatureGet = nullptr;
270 const char *ifName0 = "wlanTest";
271
272 ret = g_wifi->createFeature(PROTOCOL_80211_IFTYPE_AP, (struct IWiFiBaseFeature **)&apFeature);
273 EXPECT_EQ(HDF_SUCCESS, ret);
274 EXPECT_NE(nullptr, apFeature);
275 ret = g_wifi->getFeatureByIfName(ifName0, (struct IWiFiBaseFeature **)&apFeatureGet);
276 EXPECT_NE(HDF_SUCCESS, ret);
277
278 ret = g_wifi->destroyFeature((struct IWiFiBaseFeature *)apFeature);
279 EXPECT_EQ(HDF_SUCCESS, ret);
280 }
281
282 /**
283 * @tc.name: WifiHalGetFeatureByIfName003
284 * @tc.desc: Wifi hal get feature by ifname function test_03
285 * @tc.type: FUNC
286 */
HWTEST_F(WifiHalTest, SUB_Driver_Wlan_WifiHdi_4650, Function | MediumTest | Level1)287 HWTEST_F(WifiHalTest, SUB_Driver_Wlan_WifiHdi_4650, Function | MediumTest | Level1)
288 {
289 int ret;
290 struct IWiFiAp *apFeature = nullptr;
291 struct IWiFiAp *apFeatureGet = nullptr;
292
293 ret = g_wifi->createFeature(PROTOCOL_80211_IFTYPE_AP, (struct IWiFiBaseFeature **)&apFeature);
294 EXPECT_EQ(HDF_SUCCESS, ret);
295 EXPECT_NE(nullptr, apFeature);
296 ret = g_wifi->getFeatureByIfName(apFeature->baseFeature.ifName, (struct IWiFiBaseFeature **)&apFeatureGet);
297 EXPECT_EQ(HDF_SUCCESS, ret);
298 EXPECT_NE(nullptr, apFeatureGet);
299
300 ret = g_wifi->destroyFeature((struct IWiFiBaseFeature *)apFeature);
301 EXPECT_EQ(HDF_SUCCESS, ret);
302 }
303
304 /**
305 * @tc.name: WifiHalGetFeatureByIfName004
306 * @tc.desc: Wifi hal get feature by ifname function test_04
307 * @tc.type: FUNC
308 */
HWTEST_F(WifiHalTest, SUB_Driver_Wlan_WifiHdi_4750, Function | MediumTest | Level1)309 HWTEST_F(WifiHalTest, SUB_Driver_Wlan_WifiHdi_4750, Function | MediumTest | Level1)
310 {
311 int32_t ret;
312 struct IWiFiSta *staFeature = nullptr;
313
314 ret = g_wifi->createFeature(PROTOCOL_80211_IFTYPE_STATION, (struct IWiFiBaseFeature **)&staFeature);
315 EXPECT_EQ(ret, HDF_SUCCESS);
316 EXPECT_NE(staFeature, nullptr);
317 ret = g_wifi->getFeatureByIfName(nullptr, (struct IWiFiBaseFeature **)&staFeature);
318 EXPECT_NE(ret, HDF_SUCCESS);
319
320 ret = g_wifi->destroyFeature((struct IWiFiBaseFeature *)staFeature);
321 EXPECT_EQ(ret, HDF_SUCCESS);
322 }
323
324 /**
325 * @tc.name: WifiHalGetFeatureByIfName005
326 * @tc.desc: Wifi hal get feature by ifname function test_05
327 * @tc.type: FUNC
328 */
HWTEST_F(WifiHalTest, SUB_Driver_Wlan_WifiHdi_4850, Function | MediumTest | Level1)329 HWTEST_F(WifiHalTest, SUB_Driver_Wlan_WifiHdi_4850, Function | MediumTest | Level1)
330 {
331 int32_t ret;
332 struct IWiFiSta *staFeature = nullptr;
333 const char *ifName0 = "wlanTest";
334
335 ret = g_wifi->createFeature(PROTOCOL_80211_IFTYPE_STATION, (struct IWiFiBaseFeature **)&staFeature);
336 EXPECT_EQ(ret, HDF_SUCCESS);
337 EXPECT_NE(staFeature, nullptr);
338 ret = g_wifi->getFeatureByIfName(ifName0, (struct IWiFiBaseFeature **)&staFeature);
339 EXPECT_NE(ret, HDF_SUCCESS);
340
341 ret = g_wifi->destroyFeature((struct IWiFiBaseFeature *)staFeature);
342 EXPECT_EQ(ret, HDF_SUCCESS);
343 }
344
345 /**
346 * @tc.name: WifiHalGetFeatureByIfName006
347 * @tc.desc: Wifi hal get feature by ifname function test_06
348 * @tc.type: FUNC
349 */
HWTEST_F(WifiHalTest, SUB_Driver_Wlan_WifiHdi_4950, Function | MediumTest | Level1)350 HWTEST_F(WifiHalTest, SUB_Driver_Wlan_WifiHdi_4950, Function | MediumTest | Level1)
351 {
352 int32_t ret;
353 struct IWiFiSta *staFeature = nullptr;
354 struct IWiFiSta *staFeatureGet = nullptr;
355
356 ret = g_wifi->createFeature(PROTOCOL_80211_IFTYPE_STATION, (struct IWiFiBaseFeature **)&staFeature);
357 EXPECT_EQ(ret, HDF_SUCCESS);
358 EXPECT_NE(staFeature, nullptr);
359 ret = g_wifi->getFeatureByIfName(staFeature->baseFeature.ifName, (struct IWiFiBaseFeature **)&staFeatureGet);
360 EXPECT_EQ(ret, HDF_SUCCESS);
361 EXPECT_NE(staFeatureGet, nullptr);
362
363 ret = g_wifi->destroyFeature((struct IWiFiBaseFeature *)staFeature);
364 EXPECT_EQ(ret, HDF_SUCCESS);
365 }
366 /**
367 * @tc.name: WifiHalRegisterEventCallback001
368 * @tc.desc: Wifi hal register callback function test_01
369 * @tc.type: FUNC
370 */
HWTEST_F(WifiHalTest, SUB_Driver_Wlan_WifiHdi_7100, Function | MediumTest | Level1)371 HWTEST_F(WifiHalTest, SUB_Driver_Wlan_WifiHdi_7100, Function | MediumTest | Level1)
372 {
373 int ret;
374
375 ret = g_wifi->registerEventCallback(HalCallbackEvent, "wlan0");
376 EXPECT_EQ(HDF_SUCCESS, ret);
377 }
378
379 /**
380 * @tc.name: WifiHalRegisterEventCallback002
381 * @tc.desc: Wifi hal register event callback test_02
382 * @tc.type: FUNC
383 */
HWTEST_F(WifiHalTest, SUB_Driver_Wlan_WifiHdi_7200, Function | MediumTest | Level1)384 HWTEST_F(WifiHalTest, SUB_Driver_Wlan_WifiHdi_7200, Function | MediumTest | Level1)
385 {
386 int32_t ret;
387
388 ret = g_wifi->registerEventCallback(nullptr, "wlan0");
389 EXPECT_EQ(ret, HDF_ERR_INVALID_PARAM);
390
391 }
392
393 /**
394 * @tc.name: WifiHalRegisterEventCallback003
395 * @tc.desc: Wifi hal register event callback test_03
396 * @tc.type: FUNC
397 */
HWTEST_F(WifiHalTest, SUB_Driver_Wlan_WifiHdi_7300, Function | MediumTest | Level1)398 HWTEST_F(WifiHalTest, SUB_Driver_Wlan_WifiHdi_7300, Function | MediumTest | Level1)
399 {
400 int32_t ret;
401
402 ret = g_wifi->registerEventCallback(HalCallbackEvent, nullptr);
403 EXPECT_EQ(ret, HDF_ERR_INVALID_PARAM);
404 }
405
406 /**
407 * @tc.name: WifiHalUnRegisterEventCallback001
408 * @tc.desc: Wifi hal unregister callback function test_01
409 * @tc.type: FUNC
410 */
HWTEST_F(WifiHalTest, SUB_Driver_Wlan_WifiHdi_9300, Function | MediumTest | Level1)411 HWTEST_F(WifiHalTest, SUB_Driver_Wlan_WifiHdi_9300, Function | MediumTest | Level1)
412 {
413 int ret;
414
415 ret = g_wifi->unregisterEventCallback(HalCallbackEvent, "wlan0");
416 EXPECT_EQ(HDF_SUCCESS, ret);
417 }
418
419 /**
420 * @tc.name: WifiHalUnRegisterEventCallback002
421 * @tc.desc: Wifi hal unregister event callback test_02
422 * @tc.type: FUNC
423 */
HWTEST_F(WifiHalTest, SUB_Driver_Wlan_WifiHdi_9400, Function | MediumTest | Level1)424 HWTEST_F(WifiHalTest, SUB_Driver_Wlan_WifiHdi_9400, Function | MediumTest | Level1)
425 {
426 int32_t ret;
427
428 ret = g_wifi->unregisterEventCallback(nullptr, "wlan0");
429 EXPECT_EQ(ret, HDF_ERR_INVALID_PARAM);
430
431 }
432
433 /**
434 * @tc.name: WifiHalUnRegisterEventCallback003
435 * @tc.desc: Wifi hal unregister event callback test_03
436 * @tc.type: FUNC
437 */
HWTEST_F(WifiHalTest, SUB_Driver_Wlan_WifiHdi_9500, Function | MediumTest | Level1)438 HWTEST_F(WifiHalTest, SUB_Driver_Wlan_WifiHdi_9500, Function | MediumTest | Level1)
439 {
440 int32_t ret;
441
442 ret = g_wifi->unregisterEventCallback(HalCallbackEvent, nullptr);
443 EXPECT_EQ(ret, HDF_ERR_INVALID_PARAM);
444 }
445
446 /**
447 * @tc.name: WifiHalGetNetworkIfaceName001
448 * @tc.desc: Wifi hal get network iface name function test_01
449 * @tc.type: FUNC
450 */
HWTEST_F(WifiHalTest, SUB_Driver_Wlan_WifiHdi_6100, Function | MediumTest | Level1)451 HWTEST_F(WifiHalTest, SUB_Driver_Wlan_WifiHdi_6100, Function | MediumTest | Level1)
452 {
453 int ret;
454 struct IWiFiAp *apFeature = nullptr;
455
456 ret = g_wifi->createFeature(PROTOCOL_80211_IFTYPE_AP, (struct IWiFiBaseFeature **)&apFeature);
457 EXPECT_EQ(HDF_SUCCESS, ret);
458 EXPECT_NE(nullptr, apFeature);
459 const char *ifnameTest = apFeature->baseFeature.getNetworkIfaceName(nullptr);
460 EXPECT_EQ(ifnameTest, nullptr);
461 ret = g_wifi->destroyFeature((struct IWiFiBaseFeature *)apFeature);
462 EXPECT_EQ(HDF_SUCCESS, ret);
463 }
464
465 /**
466 * @tc.name: WifiHalGetNetworkIfaceName002
467 * @tc.desc: Wifi hal get network iface name function test_02
468 * @tc.type: FUNC
469 */
HWTEST_F(WifiHalTest, SUB_Driver_Wlan_WifiHdi_6200, Function | MediumTest | Level1)470 HWTEST_F(WifiHalTest, SUB_Driver_Wlan_WifiHdi_6200, Function | MediumTest | Level1)
471 {
472 int ret;
473 struct IWiFiAp *apFeature = nullptr;
474
475 ret = g_wifi->createFeature(PROTOCOL_80211_IFTYPE_AP, (struct IWiFiBaseFeature **)&apFeature);
476 EXPECT_EQ(HDF_SUCCESS, ret);
477 EXPECT_NE(nullptr, apFeature);
478 const char *ifName = apFeature->baseFeature.getNetworkIfaceName((const struct IWiFiBaseFeature *)apFeature);
479 EXPECT_NE(nullptr, ifName);
480
481 ret = g_wifi->destroyFeature((struct IWiFiBaseFeature *)apFeature);
482 EXPECT_EQ(HDF_SUCCESS, ret);
483 }
484
485 /**
486 * @tc.name: WifiHalGetNetworkIfaceName003
487 * @tc.desc: Wifi hal get network iface name function test_03
488 * @tc.type: FUNC
489 */
HWTEST_F(WifiHalTest, SUB_Driver_Wlan_WifiHdi_6300, Function | MediumTest | Level1)490 HWTEST_F(WifiHalTest, SUB_Driver_Wlan_WifiHdi_6300, Function | MediumTest | Level1)
491 {
492 int32_t ret;
493 struct IWiFiSta *staFeature = nullptr;
494
495 ret = g_wifi->createFeature(PROTOCOL_80211_IFTYPE_STATION, (struct IWiFiBaseFeature **)&staFeature);
496 EXPECT_EQ(ret, HDF_SUCCESS);
497 EXPECT_NE(staFeature, nullptr);
498 const char *ifnameTest = staFeature->baseFeature.getNetworkIfaceName(nullptr);
499 EXPECT_EQ(ifnameTest, nullptr);
500 ret = g_wifi->destroyFeature((struct IWiFiBaseFeature *)staFeature);
501 EXPECT_EQ(ret, HDF_SUCCESS);
502 }
503
504 /**
505 * @tc.name: WifiHalGetNetworkIfaceName004
506 * @tc.desc: Wifi hal get network iface name function test_04
507 * @tc.type: FUNC
508 */
HWTEST_F(WifiHalTest, SUB_Driver_Wlan_WifiHdi_6400, Function | MediumTest | Level1)509 HWTEST_F(WifiHalTest, SUB_Driver_Wlan_WifiHdi_6400, Function | MediumTest | Level1)
510 {
511 int32_t ret;
512 struct IWiFiSta *staFeature = nullptr;
513
514 ret = g_wifi->createFeature(PROTOCOL_80211_IFTYPE_STATION, (struct IWiFiBaseFeature **)&staFeature);
515 EXPECT_EQ(ret, HDF_SUCCESS);
516 EXPECT_NE(staFeature, nullptr);
517
518 const char *ifName = staFeature->baseFeature.getNetworkIfaceName((const struct IWiFiBaseFeature *)staFeature);
519 EXPECT_NE(ifName, nullptr);
520 if (strncmp(ifName, "wlan", 4) == 0 || strncmp(ifName, "nan", 3) == 0 || strncmp(ifName, "p2p", 3) == 0) {
521 ret = 0;
522 } else {
523 ret = -1;
524 }
525 EXPECT_EQ(ret, 0);
526
527 ret = g_wifi->destroyFeature((struct IWiFiBaseFeature *)staFeature);
528 EXPECT_EQ(ret, HDF_SUCCESS);
529 }
530
531 /**
532 * @tc.name: WifiHalGetFeatureType001
533 * @tc.desc: Wifi hal get feature type function test_01
534 * @tc.type: FUNC
535 */
HWTEST_F(WifiHalTest, SUB_Driver_Wlan_WifiHdi_5700, Function | MediumTest | Level1)536 HWTEST_F(WifiHalTest, SUB_Driver_Wlan_WifiHdi_5700, Function | MediumTest | Level1)
537 {
538 int ret;
539 struct IWiFiAp *apFeature = nullptr;
540 int32_t type;
541 ret = g_wifi->createFeature(PROTOCOL_80211_IFTYPE_AP, (struct IWiFiBaseFeature **)&apFeature);
542 EXPECT_EQ(HDF_SUCCESS, ret);
543 EXPECT_NE(nullptr, apFeature);
544 type = apFeature->baseFeature.getFeatureType(nullptr);
545 EXPECT_EQ(type, HDF_FAILURE);
546
547 ret = g_wifi->destroyFeature((struct IWiFiBaseFeature *)apFeature);
548 EXPECT_EQ(HDF_SUCCESS, ret);
549 }
550
551 /**
552 * @tc.name: WifiHalGetFeatureType002
553 * @tc.desc: Wifi hal get feature type function test_02
554 * @tc.type: FUNC
555 */
HWTEST_F(WifiHalTest, SUB_Driver_Wlan_WifiHdi_5800, Function | MediumTest | Level1)556 HWTEST_F(WifiHalTest, SUB_Driver_Wlan_WifiHdi_5800, Function | MediumTest | Level1)
557 {
558 int ret;
559 struct IWiFiAp *apFeature = nullptr;
560 int32_t type;
561 ret = g_wifi->createFeature(PROTOCOL_80211_IFTYPE_AP, (struct IWiFiBaseFeature **)&apFeature);
562 EXPECT_EQ(HDF_SUCCESS, ret);
563 EXPECT_NE(nullptr, apFeature);
564 type = apFeature->baseFeature.getFeatureType((struct IWiFiBaseFeature *)apFeature);
565 EXPECT_EQ(PROTOCOL_80211_IFTYPE_AP, type);
566
567 ret = g_wifi->destroyFeature((struct IWiFiBaseFeature *)apFeature);
568 EXPECT_EQ(HDF_SUCCESS, ret);
569 }
570
571 /**
572 * @tc.name: WifiHalGetFeatureType003
573 * @tc.desc: Wifi hal get feature type function test_03
574 * @tc.type: FUNC
575 */
HWTEST_F(WifiHalTest, SUB_Driver_Wlan_WifiHdi_5900, Function | MediumTest | Level1)576 HWTEST_F(WifiHalTest, SUB_Driver_Wlan_WifiHdi_5900, Function | MediumTest | Level1)
577 {
578 int32_t ret;
579 struct IWiFiSta *staFeature = nullptr;
580 int32_t type;
581
582 ret = g_wifi->createFeature(PROTOCOL_80211_IFTYPE_STATION, (struct IWiFiBaseFeature **)&staFeature);
583 EXPECT_EQ(ret, HDF_SUCCESS);
584 EXPECT_NE(staFeature, nullptr);
585 type = staFeature->baseFeature.getFeatureType(nullptr);
586 EXPECT_EQ(type, HDF_FAILURE);
587
588 ret = g_wifi->destroyFeature((struct IWiFiBaseFeature *)staFeature);
589 EXPECT_EQ(ret, HDF_SUCCESS);
590 }
591
592 /**
593 * @tc.name: WifiHalGetFeatureType004
594 * @tc.desc: Wifi hal get feature type function test_04
595 * @tc.type: FUNC
596 */
HWTEST_F(WifiHalTest, SUB_Driver_Wlan_WifiHdi_6000, Function | MediumTest | Level1)597 HWTEST_F(WifiHalTest, SUB_Driver_Wlan_WifiHdi_6000, Function | MediumTest | Level1)
598 {
599 int32_t ret;
600 struct IWiFiSta *staFeature = nullptr;
601 int32_t type;
602
603 ret = g_wifi->createFeature(PROTOCOL_80211_IFTYPE_STATION, (struct IWiFiBaseFeature **)&staFeature);
604 EXPECT_EQ(ret, HDF_SUCCESS);
605 EXPECT_NE(staFeature, nullptr);
606 type = staFeature->baseFeature.getFeatureType((struct IWiFiBaseFeature *)staFeature);
607 EXPECT_EQ(type, PROTOCOL_80211_IFTYPE_STATION);
608
609 ret = g_wifi->destroyFeature((struct IWiFiBaseFeature *)staFeature);
610 EXPECT_EQ(ret, HDF_SUCCESS);
611 }
612
613 /**
614 * @tc.name: WifiHalSetMacAddress001
615 * @tc.desc: Wifi hal set Mac address function test_01
616 * @tc.type: FUNC
617 */
HWTEST_F(WifiHalTest, SUB_Driver_Wlan_SetDeviceMACaddress_0500, Function | MediumTest | Level1)618 HWTEST_F(WifiHalTest, SUB_Driver_Wlan_SetDeviceMACaddress_0500, Function | MediumTest | Level1)
619 {
620 int ret;
621 struct IWiFiAp *apFeature = nullptr;
622 unsigned char mac[ETH_ADDR_LEN] = {0x12, 0x34, 0x56, 0x78, 0xab, 0xcd};
623
624 ret = g_wifi->createFeature(PROTOCOL_80211_IFTYPE_AP, (struct IWiFiBaseFeature **)&apFeature);
625 EXPECT_EQ(HDF_SUCCESS, ret);
626 EXPECT_NE(nullptr, apFeature);
627 ret = apFeature->baseFeature.setMacAddress(nullptr, mac, ETH_ADDR_LEN);
628 EXPECT_EQ(ret, HDF_ERR_INVALID_PARAM);
629
630 ret = g_wifi->destroyFeature((struct IWiFiBaseFeature *)apFeature);
631 EXPECT_EQ(HDF_SUCCESS, ret);
632 }
633
634 /**
635 * @tc.name: WifiHalSetMacAddress002
636 * @tc.desc: Wifi hal set Mac address function test_02
637 * @tc.type: FUNC
638 */
HWTEST_F(WifiHalTest, SUB_Driver_Wlan_SetDeviceMACaddress_0600, Function | MediumTest | Level1)639 HWTEST_F(WifiHalTest, SUB_Driver_Wlan_SetDeviceMACaddress_0600, Function | MediumTest | Level1)
640 {
641 int ret;
642 struct IWiFiAp *apFeature = nullptr;
643 ret = g_wifi->createFeature(PROTOCOL_80211_IFTYPE_AP, (struct IWiFiBaseFeature **)&apFeature);
644 EXPECT_EQ(HDF_SUCCESS, ret);
645 EXPECT_NE(nullptr, apFeature);
646 ret = apFeature->baseFeature.setMacAddress((struct IWiFiBaseFeature *)apFeature, nullptr, ETH_ADDR_LEN);
647 EXPECT_EQ(ret, HDF_ERR_INVALID_PARAM);
648
649 ret = g_wifi->destroyFeature((struct IWiFiBaseFeature *)apFeature);
650 EXPECT_EQ(HDF_SUCCESS, ret);
651 }
652
653 /**
654 * @tc.name: WifiHalSetMacAddress003
655 * @tc.desc: Wifi hal set Mac address function test_03
656 * @tc.type: FUNC
657 */
HWTEST_F(WifiHalTest, SUB_Driver_Wlan_SetDeviceMACaddress_0700, Function | MediumTest | Level1)658 HWTEST_F(WifiHalTest, SUB_Driver_Wlan_SetDeviceMACaddress_0700, Function | MediumTest | Level1)
659 {
660 int ret;
661 struct IWiFiAp *apFeature = nullptr;
662 unsigned char mac[ETH_ADDR_LEN] = {0x12, 0x34, 0x56, 0x78, 0xab, 0xcd};
663
664 ret = g_wifi->createFeature(PROTOCOL_80211_IFTYPE_AP, (struct IWiFiBaseFeature **)&apFeature);
665 EXPECT_EQ(HDF_SUCCESS, ret);
666 EXPECT_NE(nullptr, apFeature);
667 ret = apFeature->baseFeature.setMacAddress((struct IWiFiBaseFeature *)apFeature, mac, 0);
668 EXPECT_EQ(ret, HDF_ERR_INVALID_PARAM);
669
670 ret = g_wifi->destroyFeature((struct IWiFiBaseFeature *)apFeature);
671 EXPECT_EQ(HDF_SUCCESS, ret);
672 }
673
674 /**
675 * @tc.name: WifiHalSetMacAddress004
676 * @tc.desc: Wifi hal set Mac address function test_04
677 * @tc.type: FUNC
678 */
HWTEST_F(WifiHalTest, SUB_Driver_Wlan_SetDeviceMACaddress_0800, Function | MediumTest | Level1)679 HWTEST_F(WifiHalTest, SUB_Driver_Wlan_SetDeviceMACaddress_0800, Function | MediumTest | Level1)
680 {
681 int ret;
682 struct IWiFiAp *apFeature = nullptr;
683 unsigned char errorMac[ETH_ADDR_LEN] = {0x11, 0x34, 0x56, 0x78, 0xab, 0xcd};
684
685 ret = g_wifi->createFeature(PROTOCOL_80211_IFTYPE_AP, (struct IWiFiBaseFeature **)&apFeature);
686 EXPECT_EQ(HDF_SUCCESS, ret);
687 EXPECT_NE(nullptr, apFeature);
688 ret = apFeature->baseFeature.setMacAddress((struct IWiFiBaseFeature *)apFeature, errorMac, ETH_ADDR_LEN);
689 EXPECT_NE(ret, HDF_SUCCESS);
690
691 ret = g_wifi->destroyFeature((struct IWiFiBaseFeature *)apFeature);
692 EXPECT_EQ(HDF_SUCCESS, ret);
693 }
694
695 /**
696 * @tc.name: WifiHalSetMacAddress005
697 * @tc.desc: Wifi hal set Mac address function test_05
698 * @tc.type: FUNC
699 */
HWTEST_F(WifiHalTest, SUB_Driver_Wlan_SetDeviceMACaddress_0900, Function | MediumTest | Level1)700 HWTEST_F(WifiHalTest, SUB_Driver_Wlan_SetDeviceMACaddress_0900, Function | MediumTest | Level1)
701 {
702 int ret;
703 struct IWiFiAp *apFeature = nullptr;
704 unsigned char mac[ETH_ADDR_LEN] = {0x12, 0x34, 0x56, 0x78, 0xab, 0xcd};
705
706 ret = g_wifi->createFeature(PROTOCOL_80211_IFTYPE_AP, (struct IWiFiBaseFeature **)&apFeature);
707 EXPECT_EQ(HDF_SUCCESS, ret);
708 EXPECT_NE(nullptr, apFeature);
709 ret = apFeature->baseFeature.setMacAddress((struct IWiFiBaseFeature *)apFeature, mac, ETH_ADDR_LEN);
710 printf("%s: ret = %d\n", __func__, ret);
711 bool flag = (ret == HDF_SUCCESS || ret == HDF_ERR_NOT_SUPPORT || ret == HDF_ERR_DEVICE_BUSY);
712 ASSERT_TRUE(flag);
713
714 ret = g_wifi->destroyFeature((struct IWiFiBaseFeature *)apFeature);
715 EXPECT_EQ(HDF_SUCCESS, ret);
716 }
717
718 /**
719 * @tc.name: WifiHalSetMacAddress006
720 * @tc.desc: Wifi hal set Mac address function test_06
721 * @tc.type: FUNC
722 */
HWTEST_F(WifiHalTest, SUB_Driver_Wlan_SetDeviceMACaddress_1000, Function | MediumTest | Level1)723 HWTEST_F(WifiHalTest, SUB_Driver_Wlan_SetDeviceMACaddress_1000, Function | MediumTest | Level1)
724 {
725 int ret;
726 struct IWiFiSta *staFeature = nullptr;
727 unsigned char mac[ETH_ADDR_LEN] = {0x12, 0x34, 0x56, 0x78, 0xab, 0xcd};
728
729 ret = g_wifi->createFeature(PROTOCOL_80211_IFTYPE_STATION, (struct IWiFiBaseFeature **)&staFeature);
730 EXPECT_EQ(HDF_SUCCESS, ret);
731 EXPECT_NE(nullptr, staFeature);
732 ret = staFeature->baseFeature.setMacAddress(nullptr, mac, ETH_ADDR_LEN);
733 EXPECT_EQ(ret, HDF_ERR_INVALID_PARAM);
734
735 ret = g_wifi->destroyFeature((struct IWiFiBaseFeature *)staFeature);
736 EXPECT_EQ(HDF_SUCCESS, ret);
737 }
738
739 /**
740 * @tc.name: WifiHalSetMacAddress007
741 * @tc.desc: Wifi hal set Mac address function test_07
742 * @tc.type: FUNC
743 */
HWTEST_F(WifiHalTest, SUB_Driver_Wlan_SetDeviceMACaddress_1100, Function | MediumTest | Level1)744 HWTEST_F(WifiHalTest, SUB_Driver_Wlan_SetDeviceMACaddress_1100, Function | MediumTest | Level1)
745 {
746 int ret;
747 struct IWiFiSta *staFeature = nullptr;
748
749 ret = g_wifi->createFeature(PROTOCOL_80211_IFTYPE_STATION, (struct IWiFiBaseFeature **)&staFeature);
750 EXPECT_EQ(HDF_SUCCESS, ret);
751 EXPECT_NE(nullptr, staFeature);
752 ret = staFeature->baseFeature.setMacAddress((struct IWiFiBaseFeature *)staFeature, nullptr, ETH_ADDR_LEN);
753 EXPECT_EQ(ret, HDF_ERR_INVALID_PARAM);
754
755 ret = g_wifi->destroyFeature((struct IWiFiBaseFeature *)staFeature);
756 EXPECT_EQ(HDF_SUCCESS, ret);
757 }
758
759 /**
760 * @tc.name: WifiHalSetMacAddress008
761 * @tc.desc: Wifi hal set Mac address function test_08
762 * @tc.type: FUNC
763 */
HWTEST_F(WifiHalTest, SUB_Driver_Wlan_SetDeviceMACaddress_1200, Function | MediumTest | Level1)764 HWTEST_F(WifiHalTest, SUB_Driver_Wlan_SetDeviceMACaddress_1200, Function | MediumTest | Level1)
765 {
766 int ret;
767 struct IWiFiSta *staFeature = nullptr;
768 unsigned char mac[ETH_ADDR_LEN] = {0x12, 0x34, 0x56, 0x78, 0xab, 0xcd};
769
770 ret = g_wifi->createFeature(PROTOCOL_80211_IFTYPE_STATION, (struct IWiFiBaseFeature **)&staFeature);
771 EXPECT_EQ(HDF_SUCCESS, ret);
772 EXPECT_NE(nullptr, staFeature);
773 ret = staFeature->baseFeature.setMacAddress((struct IWiFiBaseFeature *)staFeature, mac, 0);
774 EXPECT_EQ(ret, HDF_ERR_INVALID_PARAM);
775
776 ret = g_wifi->destroyFeature((struct IWiFiBaseFeature *)staFeature);
777 EXPECT_EQ(HDF_SUCCESS, ret);
778 }
779
780 /**
781 * @tc.name: WifiHalSetMacAddress009
782 * @tc.desc: Wifi hal set Mac address function test_09
783 * @tc.type: FUNC
784 */
HWTEST_F(WifiHalTest, SUB_Driver_Wlan_SetDeviceMACaddress_1300, Function | MediumTest | Level1)785 HWTEST_F(WifiHalTest, SUB_Driver_Wlan_SetDeviceMACaddress_1300, Function | MediumTest | Level1)
786 {
787 int ret;
788 struct IWiFiSta *staFeature = nullptr;
789 unsigned char errorMac[ETH_ADDR_LEN] = {0x11, 0x34, 0x56, 0x78, 0xab, 0xcd};
790
791 ret = g_wifi->createFeature(PROTOCOL_80211_IFTYPE_STATION, (struct IWiFiBaseFeature **)&staFeature);
792 EXPECT_EQ(HDF_SUCCESS, ret);
793 EXPECT_NE(nullptr, staFeature);
794 ret = staFeature->baseFeature.setMacAddress((struct IWiFiBaseFeature *)staFeature, errorMac, ETH_ADDR_LEN);
795 EXPECT_NE(ret, HDF_SUCCESS);
796
797 ret = g_wifi->destroyFeature((struct IWiFiBaseFeature *)staFeature);
798 EXPECT_EQ(HDF_SUCCESS, ret);
799 }
800
801 /**
802 * @tc.name: WifiHalSetMacAddress010
803 * @tc.desc: Wifi hal set Mac address function test_10
804 * @tc.type: FUNC
805 */
HWTEST_F(WifiHalTest, SUB_Driver_Wlan_SetDeviceMACaddress_1400, Function | MediumTest | Level1)806 HWTEST_F(WifiHalTest, SUB_Driver_Wlan_SetDeviceMACaddress_1400, Function | MediumTest | Level1)
807 {
808 int ret;
809 struct IWiFiSta *staFeature = nullptr;
810 unsigned char mac[ETH_ADDR_LEN] = {0x12, 0x34, 0x56, 0x78, 0xab, 0xcd};
811
812 ret = g_wifi->createFeature(PROTOCOL_80211_IFTYPE_STATION, (struct IWiFiBaseFeature **)&staFeature);
813 EXPECT_EQ(HDF_SUCCESS, ret);
814 EXPECT_NE(nullptr, staFeature);
815 ret = staFeature->baseFeature.setMacAddress((struct IWiFiBaseFeature *)staFeature, mac, ETH_ADDR_LEN);
816 printf("%s: ret = %d\n", __func__, ret);
817 bool flag = (ret == HDF_SUCCESS || ret == HDF_ERR_NOT_SUPPORT || ret == HDF_ERR_DEVICE_BUSY);
818 ASSERT_TRUE(flag);
819
820 ret = g_wifi->destroyFeature((struct IWiFiBaseFeature *)staFeature);
821 EXPECT_EQ(HDF_SUCCESS, ret);
822 }
823
824 /**
825 * @tc.name: WifiHalSetTxPower001
826 * @tc.desc: Wifi hal set transmit power function test_01
827 * @tc.type: FUNC
828 */
HWTEST_F(WifiHalTest, SUB_Driver_Wlan_WifiHdi_8700, Function | MediumTest | Level1)829 HWTEST_F(WifiHalTest, SUB_Driver_Wlan_WifiHdi_8700, Function | MediumTest | Level1)
830 {
831 int ret;
832 struct IWiFiAp *apFeature = nullptr;
833
834 ret = g_wifi->createFeature(PROTOCOL_80211_IFTYPE_AP, (struct IWiFiBaseFeature **)&apFeature);
835 EXPECT_EQ(HDF_SUCCESS, ret);
836 EXPECT_NE(nullptr, apFeature);
837 ret = apFeature->baseFeature.setTxPower(nullptr, WLAN_TX_POWER);
838 EXPECT_NE(ret, HDF_SUCCESS);
839
840 ret = g_wifi->destroyFeature((struct IWiFiBaseFeature *)apFeature);
841 EXPECT_EQ(HDF_SUCCESS, ret);
842 }
843
844 /**
845 * @tc.name: WifiHalSetTxPower002
846 * @tc.desc: Wifi hal set transmit power function test_02
847 * @tc.type: FUNC
848 */
HWTEST_F(WifiHalTest, SUB_Driver_Wlan_WifiHdi_8800, Function | MediumTest | Level1)849 HWTEST_F(WifiHalTest, SUB_Driver_Wlan_WifiHdi_8800, Function | MediumTest | Level1)
850 {
851 int ret;
852 struct IWiFiAp *apFeature = nullptr;
853
854 ret = g_wifi->createFeature(PROTOCOL_80211_IFTYPE_AP, (struct IWiFiBaseFeature **)&apFeature);
855 EXPECT_EQ(HDF_SUCCESS, ret);
856 EXPECT_NE(nullptr, apFeature);
857 ret = apFeature->baseFeature.setTxPower((struct IWiFiBaseFeature *)apFeature, 0);
858 EXPECT_NE(HDF_SUCCESS, ret);
859
860 ret = g_wifi->destroyFeature((struct IWiFiBaseFeature *)apFeature);
861 EXPECT_EQ(HDF_SUCCESS, ret);
862 }
863
864 /**
865 * @tc.name: WifiHalSetTxPower003
866 * @tc.desc: Wifi hal set transmit power function test_03
867 * @tc.type: FUNC
868 */
HWTEST_F(WifiHalTest, SUB_Driver_Wlan_WifiHdi_8900, Function | MediumTest | Level1)869 HWTEST_F(WifiHalTest, SUB_Driver_Wlan_WifiHdi_8900, Function | MediumTest | Level1)
870 {
871 int ret;
872 struct IWiFiAp *apFeature = nullptr;
873
874 ret = g_wifi->createFeature(PROTOCOL_80211_IFTYPE_AP, (struct IWiFiBaseFeature **)&apFeature);
875 EXPECT_EQ(HDF_SUCCESS, ret);
876 EXPECT_NE(nullptr, apFeature);
877 ret = apFeature->baseFeature.setTxPower((struct IWiFiBaseFeature *)apFeature, WLAN_TX_POWER);
878 EXPECT_EQ(HDF_SUCCESS, ret);
879
880 ret = g_wifi->destroyFeature((struct IWiFiBaseFeature *)apFeature);
881 EXPECT_EQ(HDF_SUCCESS, ret);
882 }
883
884 /**
885 * @tc.name: WifiHalSetTxPower004
886 * @tc.desc: Wifi hal set transmit power function test_04
887 * @tc.type: FUNC
888 */
HWTEST_F(WifiHalTest, SUB_Driver_Wlan_WifiHdi_9000, Function | MediumTest | Level1)889 HWTEST_F(WifiHalTest, SUB_Driver_Wlan_WifiHdi_9000, Function | MediumTest | Level1)
890 {
891 int32_t ret;
892 struct IWiFiSta *staFeature = nullptr;
893
894 ret = g_wifi->createFeature(PROTOCOL_80211_IFTYPE_STATION, (struct IWiFiBaseFeature **)&staFeature);
895 EXPECT_EQ(ret, HDF_SUCCESS);
896 EXPECT_NE(staFeature, nullptr);
897 ret = staFeature->baseFeature.setTxPower(nullptr, WLAN_TX_POWER);
898 EXPECT_NE(ret, HDF_SUCCESS);
899
900 ret = g_wifi->destroyFeature((struct IWiFiBaseFeature *)staFeature);
901 EXPECT_EQ(ret, HDF_SUCCESS);
902 }
903
904 /**
905 * @tc.name: WifiHalSetTxPower005
906 * @tc.desc: Wifi hal set transmit power function test_05
907 * @tc.type: FUNC
908 */
HWTEST_F(WifiHalTest, SUB_Driver_Wlan_WifiHdi_9100, Function | MediumTest | Level1)909 HWTEST_F(WifiHalTest, SUB_Driver_Wlan_WifiHdi_9100, Function | MediumTest | Level1)
910 {
911 int32_t ret;
912 struct IWiFiSta *staFeature = nullptr;
913
914 ret = g_wifi->createFeature(PROTOCOL_80211_IFTYPE_STATION, (struct IWiFiBaseFeature **)&staFeature);
915 EXPECT_EQ(ret, HDF_SUCCESS);
916 EXPECT_NE(staFeature, nullptr);
917 ret = staFeature->baseFeature.setTxPower((struct IWiFiBaseFeature *)staFeature, -1);
918 EXPECT_NE(ret, HDF_SUCCESS);
919
920 ret = g_wifi->destroyFeature((struct IWiFiBaseFeature *)staFeature);
921 EXPECT_EQ(ret, HDF_SUCCESS);
922 }
923
924 /**
925 * @tc.name: WifiHalSetTxPower006
926 * @tc.desc: Wifi hal set transmit power function test_06
927 * @tc.type: FUNC
928 */
HWTEST_F(WifiHalTest, SUB_Driver_Wlan_WifiHdi_9200, Function | MediumTest | Level1)929 HWTEST_F(WifiHalTest, SUB_Driver_Wlan_WifiHdi_9200, Function | MediumTest | Level1)
930 {
931 int32_t ret;
932 struct IWiFiSta *staFeature = nullptr;
933
934 ret = g_wifi->createFeature(PROTOCOL_80211_IFTYPE_STATION, (struct IWiFiBaseFeature **)&staFeature);
935 EXPECT_EQ(ret, HDF_SUCCESS);
936 EXPECT_NE(staFeature, nullptr);
937 ret = staFeature->baseFeature.setTxPower((struct IWiFiBaseFeature *)staFeature, WLAN_TX_POWER);
938 EXPECT_EQ(ret, HDF_SUCCESS);
939
940 ret = g_wifi->destroyFeature((struct IWiFiBaseFeature *)staFeature);
941 EXPECT_EQ(ret, HDF_SUCCESS);
942 }
943
944 /**
945 * @tc.name: WifiHalSetCountryCode001
946 * @tc.desc: Wifi hal set country code function test_01
947 * @tc.type: FUNC
948 */
HWTEST_F(WifiHalTest, SUB_Driver_Wlan_WifiHdi_8200, Function | MediumTest | Level1)949 HWTEST_F(WifiHalTest, SUB_Driver_Wlan_WifiHdi_8200, Function | MediumTest | Level1)
950 {
951 int ret;
952 struct IWiFiAp *apFeature = nullptr;
953
954 ret = g_wifi->createFeature(PROTOCOL_80211_IFTYPE_AP, (struct IWiFiBaseFeature **)&apFeature);
955 EXPECT_EQ(HDF_SUCCESS, ret);
956 EXPECT_NE(nullptr, apFeature);
957 ret = apFeature->setCountryCode(apFeature, nullptr, 0);
958 EXPECT_NE(ret, HDF_SUCCESS);
959
960 ret = g_wifi->destroyFeature((struct IWiFiBaseFeature *)apFeature);
961 EXPECT_EQ(HDF_SUCCESS, ret);
962 }
963
964 /**
965 * @tc.name: WifiHalSetCountryCode002
966 * @tc.desc: Wifi hal set country code function test_02
967 * @tc.type: FUNC
968 */
HWTEST_F(WifiHalTest, SUB_Driver_Wlan_WifiHdi_8300, Function | MediumTest | Level1)969 HWTEST_F(WifiHalTest, SUB_Driver_Wlan_WifiHdi_8300, Function | MediumTest | Level1)
970 {
971 int ret;
972 struct IWiFiAp *apFeature = nullptr;
973
974 ret = g_wifi->createFeature(PROTOCOL_80211_IFTYPE_AP, (struct IWiFiBaseFeature **)&apFeature);
975 EXPECT_EQ(HDF_SUCCESS, ret);
976 EXPECT_NE(nullptr, apFeature);
977 ret = apFeature->setCountryCode(nullptr, "CN", 2);
978 EXPECT_NE(ret, HDF_SUCCESS);
979
980 ret = g_wifi->destroyFeature((struct IWiFiBaseFeature *)apFeature);
981 EXPECT_EQ(HDF_SUCCESS, ret);
982 }
983
984 /**
985 * @tc.name: WifiHalSetCountryCode003
986 * @tc.desc: Wifi hal set country code function test_03
987 * @tc.type: FUNC
988 */
HWTEST_F(WifiHalTest, SUB_Driver_Wlan_WifiHdi_8400, Function | MediumTest | Level1)989 HWTEST_F(WifiHalTest, SUB_Driver_Wlan_WifiHdi_8400, Function | MediumTest | Level1)
990 {
991 int ret;
992 struct IWiFiAp *apFeature = nullptr;
993
994 ret = g_wifi->createFeature(PROTOCOL_80211_IFTYPE_AP, (struct IWiFiBaseFeature **)&apFeature);
995 EXPECT_EQ(HDF_SUCCESS, ret);
996 EXPECT_NE(nullptr, apFeature);
997 ret = apFeature->setCountryCode(apFeature, "CN", 3);
998 EXPECT_NE(ret, HDF_SUCCESS);
999
1000 ret = g_wifi->destroyFeature((struct IWiFiBaseFeature *)apFeature);
1001 EXPECT_EQ(HDF_SUCCESS, ret);
1002 }
1003
1004 /**
1005 * @tc.name: WifiHalSetCountryCode004
1006 * @tc.desc: Wifi hal set country code function test_04
1007 * @tc.type: FUNC
1008 */
HWTEST_F(WifiHalTest, SUB_Driver_Wlan_WifiHdi_8500, Function | MediumTest | Level1)1009 HWTEST_F(WifiHalTest, SUB_Driver_Wlan_WifiHdi_8500, Function | MediumTest | Level1)
1010 {
1011 int ret;
1012 struct IWiFiAp *apFeature = nullptr;
1013
1014 ret = g_wifi->createFeature(PROTOCOL_80211_IFTYPE_AP, (struct IWiFiBaseFeature **)&apFeature);
1015 EXPECT_EQ(HDF_SUCCESS, ret);
1016 EXPECT_NE(nullptr, apFeature);
1017 ret = apFeature->setCountryCode(apFeature, "99", 2);
1018 bool flag = (ret == HDF_SUCCESS || ret == HDF_ERR_NOT_SUPPORT);
1019 ASSERT_TRUE(flag);
1020
1021 ret = g_wifi->destroyFeature((struct IWiFiBaseFeature *)apFeature);
1022 EXPECT_EQ(HDF_SUCCESS, ret);
1023 }
1024
1025 /**
1026 * @tc.name: WifiHalSetCountryCode005
1027 * @tc.desc: Wifi hal set country code function test_05
1028 * @tc.type: FUNC
1029 */
HWTEST_F(WifiHalTest, SUB_Driver_Wlan_WifiHdi_8600, Function | MediumTest | Level1)1030 HWTEST_F(WifiHalTest, SUB_Driver_Wlan_WifiHdi_8600, Function | MediumTest | Level1)
1031 {
1032 int ret;
1033 struct IWiFiAp *apFeature = nullptr;
1034
1035 ret = g_wifi->createFeature(PROTOCOL_80211_IFTYPE_AP, (struct IWiFiBaseFeature **)&apFeature);
1036 EXPECT_EQ(HDF_SUCCESS, ret);
1037 EXPECT_NE(nullptr, apFeature);
1038 ret = apFeature->setCountryCode(apFeature, "CN", 2);
1039 EXPECT_EQ(HDF_SUCCESS, ret);
1040
1041 ret = g_wifi->destroyFeature((struct IWiFiBaseFeature *)apFeature);
1042 EXPECT_EQ(HDF_SUCCESS, ret);
1043 }
1044
1045 /**
1046 * @tc.name: WifiHalGetIfNamesByChipId001
1047 * @tc.desc: Obtain all ifNames and the number of the current chip_01
1048 * @tc.type: FUNC
1049 */
HWTEST_F(WifiHalTest, SUB_Driver_Wlan_WifiHdi_1600, Function | MediumTest | Level1)1050 HWTEST_F(WifiHalTest, SUB_Driver_Wlan_WifiHdi_1600, Function | MediumTest | Level1)
1051 {
1052 int ret;
1053 struct IWiFiSta *staFeature = nullptr;
1054 char *ifNames = nullptr;
1055 unsigned int num = 0;
1056 unsigned char chipId = 0;
1057 uint8_t i;
1058
1059 ret = g_wifi->createFeature(PROTOCOL_80211_IFTYPE_STATION, (struct IWiFiBaseFeature **)&staFeature);
1060 EXPECT_EQ(HDF_SUCCESS, ret);
1061 EXPECT_NE(nullptr, staFeature);
1062 ret = staFeature->baseFeature.getChipId((struct IWiFiBaseFeature *)staFeature, &chipId);
1063 ASSERT_TRUE(chipId < MAX_WLAN_DEVICE);
1064 EXPECT_EQ(HDF_SUCCESS, ret);
1065 ret = staFeature->baseFeature.getIfNamesByChipId(chipId, nullptr, nullptr);
1066 EXPECT_NE(HDF_SUCCESS, ret);
1067 ASSERT_TRUE(num <= IFNAME_MAX_NUM && num >= IFNAME_MIN_NUM);
1068 for (i = 0; i < num; i++) {
1069 EXPECT_EQ(0, strncmp("wlan", ifNames + i * MAX_IF_NAME_LENGTH, SIZE));
1070 }
1071 free(ifNames);
1072
1073 ret = g_wifi->destroyFeature((struct IWiFiBaseFeature *)staFeature);
1074 EXPECT_EQ(HDF_SUCCESS, ret);
1075 }
1076
1077
1078 /**
1079 * @tc.name: WifiHalGetIfNamesByChipId002
1080 * @tc.desc: Obtain all ifNames and the number of the current chip_02
1081 * @tc.type: FUNC
1082 */
1083 HWTEST_F(WifiHalTest, SUB_Driver_Wlan_WifiHdi_1700, Function | MediumTest | Level1)
1084 {
1085 int ret;
1086 struct IWiFiSta *staFeature = nullptr;
1087 char *ifNames = nullptr;
1088 unsigned int num = 0;
1089 unsigned char chipId = 0;
1090 uint8_t i;
1091
1092 ret = g_wifi->createFeature(PROTOCOL_80211_IFTYPE_STATION, (struct IWiFiBaseFeature **)&staFeature);
1093 EXPECT_EQ(HDF_SUCCESS, ret);
1094 EXPECT_NE(nullptr, staFeature);
1095 ret = staFeature->baseFeature.getChipId((struct IWiFiBaseFeature *)staFeature, &chipId);
1096 ASSERT_TRUE(chipId < MAX_WLAN_DEVICE);
1097 EXPECT_EQ(HDF_SUCCESS, ret);
1098 ret = staFeature->baseFeature.getIfNamesByChipId(100, &ifNames, &num);
1099 EXPECT_NE(ret, HDF_SUCCESS);
1100 ASSERT_TRUE(num <= IFNAME_MAX_NUM && num >= IFNAME_MIN_NUM);
1101 for (i = 0; i < num; i++) {
1102 EXPECT_EQ(0, strncmp("wlan", ifNames + i * MAX_IF_NAME_LENGTH, SIZE));
1103 }
1104 free(ifNames);
1105
1106 ret = g_wifi->destroyFeature((struct IWiFiBaseFeature *)staFeature);
1107 EXPECT_EQ(HDF_SUCCESS, ret);
1108 }
1109
1110 /**
1111 * @tc.name: WifiHalGetIfNamesByChipId003
1112 * @tc.desc: Obtain all ifNames and the number of the current chip_03
1113 * @tc.type: FUNC
1114 */
1115 HWTEST_F(WifiHalTest, SUB_Driver_Wlan_WifiHdi_1800, Function | MediumTest | Level1)
1116 {
1117 int ret;
1118 struct IWiFiSta *staFeature = nullptr;
1119 char *ifNames = nullptr;
1120 unsigned int num = 0;
1121 unsigned char chipId = 0;
1122 uint8_t i;
1123
1124 ret = g_wifi->createFeature(PROTOCOL_80211_IFTYPE_STATION, (struct IWiFiBaseFeature **)&staFeature);
1125 EXPECT_EQ(HDF_SUCCESS, ret);
1126 EXPECT_NE(nullptr, staFeature);
1127 ret = staFeature->baseFeature.getChipId((struct IWiFiBaseFeature *)staFeature, &chipId);
1128 ASSERT_TRUE(chipId < MAX_WLAN_DEVICE);
1129 EXPECT_EQ(HDF_SUCCESS, ret);
1130 ret = staFeature->baseFeature.getIfNamesByChipId(chipId, &ifNames, &num);
1131 EXPECT_NE(nullptr, ifNames);
1132 EXPECT_EQ(HDF_SUCCESS, ret);
1133 ASSERT_TRUE(num <= IFNAME_MAX_NUM && num >= IFNAME_MIN_NUM);
1134 for (i = 0; i < num; i++) {
1135 EXPECT_EQ(0, strncmp("wlan", ifNames + i * MAX_IF_NAME_LENGTH, SIZE));
1136 }
1137 free(ifNames);
1138
1139 ret = g_wifi->destroyFeature((struct IWiFiBaseFeature *)staFeature);
1140 EXPECT_EQ(HDF_SUCCESS, ret);
1141 }
1142
1143 /**
1144 * @tc.name: WifiHalGetIfNamesByChipId004
1145 * @tc.desc: Obtain all ifNames and the number of the current chip_04
1146 * @tc.type: FUNC
1147 */
1148 HWTEST_F(WifiHalTest, SUB_Driver_Wlan_WifiHdi_1900, Function | MediumTest | Level1)
1149 {
1150 int32_t ret;
1151 struct IWiFiAp *apFeature = nullptr;
1152 char *ifNames = nullptr;
1153 unsigned int num = 0;
1154 unsigned char chipId = 0;
1155 uint8_t i;
1156
1157 ret = g_wifi->createFeature(PROTOCOL_80211_IFTYPE_AP, (struct IWiFiBaseFeature **)&apFeature);
1158 EXPECT_EQ(ret, HDF_SUCCESS);
1159 EXPECT_NE(apFeature, nullptr);
1160 ret = apFeature->baseFeature.getChipId((struct IWiFiBaseFeature *)apFeature, &chipId);
1161 ASSERT_TRUE(chipId < MAX_WLAN_DEVICE);
1162 EXPECT_EQ(ret, HDF_SUCCESS);
1163 ret = apFeature->baseFeature.getIfNamesByChipId(chipId, nullptr, nullptr);
1164 EXPECT_NE(ret, HDF_SUCCESS);
1165
1166 bool flag = (num <= IFNAME_MAX_NUM && num >= IFNAME_MIN_NUM);
1167 ASSERT_TRUE(flag);
1168 for (i = 0; i < num; i++) {
1169 EXPECT_EQ(0, strncmp("wlan", ifNames + i * MAX_IF_NAME_LENGTH, SIZE));
1170 }
1171 free(ifNames);
1172
1173 ret = g_wifi->destroyFeature((struct IWiFiBaseFeature *)apFeature);
1174 EXPECT_EQ(ret, HDF_SUCCESS);
1175 }
1176
1177 /**
1178 * @tc.name: WifiHalGetIfNamesByChipId005
1179 * @tc.desc: Obtain all ifNames and the number of the current chip_05
1180 * @tc.type: FUNC
1181 */
1182 HWTEST_F(WifiHalTest, SUB_Driver_Wlan_WifiHdi_2000, Function | MediumTest | Level1)
1183 {
1184 int32_t ret;
1185 struct IWiFiAp *apFeature = nullptr;
1186 char *ifNames = nullptr;
1187 unsigned int num = 0;
1188 unsigned char chipId = 0;
1189 uint8_t i;
1190
1191 ret = g_wifi->createFeature(PROTOCOL_80211_IFTYPE_AP, (struct IWiFiBaseFeature **)&apFeature);
1192 EXPECT_EQ(ret, HDF_SUCCESS);
1193 EXPECT_NE(apFeature, nullptr);
1194 ret = apFeature->baseFeature.getChipId((struct IWiFiBaseFeature *)apFeature, &chipId);
1195 ASSERT_TRUE(chipId < MAX_WLAN_DEVICE);
1196 EXPECT_EQ(ret, HDF_SUCCESS);
1197 ret = apFeature->baseFeature.getIfNamesByChipId(100, &ifNames, &num);
1198 EXPECT_NE(ret, HDF_SUCCESS);
1199
1200 bool flag = (num <= IFNAME_MAX_NUM && num >= IFNAME_MIN_NUM);
1201 ASSERT_TRUE(flag);
1202 for (i = 0; i < num; i++) {
1203 EXPECT_EQ(0, strncmp("wlan", ifNames + i * MAX_IF_NAME_LENGTH, SIZE));
1204 }
1205 free(ifNames);
1206
1207 ret = g_wifi->destroyFeature((struct IWiFiBaseFeature *)apFeature);
1208 EXPECT_EQ(ret, HDF_SUCCESS);
1209 }
1210
1211 /**
1212 * @tc.name: WifiHalGetIfNamesByChipId006
1213 * @tc.desc: Obtain all ifNames and the number of the current chip_06
1214 * @tc.type: FUNC
1215 */
1216 HWTEST_F(WifiHalTest, SUB_Driver_Wlan_WifiHdi_2100, Function | MediumTest | Level1)
1217 {
1218 int32_t ret;
1219 struct IWiFiAp *apFeature = nullptr;
1220 char *ifNames = nullptr;
1221 unsigned int num = 0;
1222 unsigned char chipId = 0;
1223 uint8_t i;
1224
1225 ret = g_wifi->createFeature(PROTOCOL_80211_IFTYPE_AP, (struct IWiFiBaseFeature **)&apFeature);
1226 EXPECT_EQ(ret, HDF_SUCCESS);
1227 EXPECT_NE(apFeature, nullptr);
1228 ret = apFeature->baseFeature.getChipId((struct IWiFiBaseFeature *)apFeature, &chipId);
1229 ASSERT_TRUE(chipId < MAX_WLAN_DEVICE);
1230 EXPECT_EQ(ret, HDF_SUCCESS);
1231
1232 ret = apFeature->baseFeature.getIfNamesByChipId(chipId, &ifNames, &num);
1233 EXPECT_NE(ifNames, nullptr);
1234 EXPECT_EQ(ret, HDF_SUCCESS);
1235 bool flag = (num <= IFNAME_MAX_NUM && num >= IFNAME_MIN_NUM);
1236 ASSERT_TRUE(flag);
1237 for (i = 0; i < num; i++) {
1238 EXPECT_EQ(0, strncmp("wlan", ifNames + i * MAX_IF_NAME_LENGTH, SIZE));
1239 }
1240 free(ifNames);
1241
1242 ret = g_wifi->destroyFeature((struct IWiFiBaseFeature *)apFeature);
1243 EXPECT_EQ(ret, HDF_SUCCESS);
1244 }
1245
1246 /**
1247 * @tc.name: WifiHalGetSupportFeature001
1248 * @tc.desc: Get supported features_01
1249 * @tc.type: FUNC
1250 */
1251 HWTEST_F(WifiHalTest, SUB_Driver_Wlan_WifiHdi_1300, Function | MediumTest | Level1)
1252 {
1253 int32_t ret;
1254 ret = g_wifi->getSupportFeature(nullptr, PROTOCOL_80211_IFTYPE_NUM + 1);
1255 EXPECT_EQ(ret, HDF_ERR_INVALID_PARAM);
1256 }
1257
1258 /**
1259 * @tc.name: WifiHalGetSupportFeature002
1260 * @tc.desc: Get supported features_02
1261 * @tc.type: FUNC
1262 */
1263 HWTEST_F(WifiHalTest, SUB_Driver_Wlan_WifiHdi_1400, Function | MediumTest | Level1)
1264 {
1265 int32_t ret;
1266 uint8_t supType[PROTOCOL_80211_IFTYPE_NUM + 1] = {0};
1267 ret = g_wifi->getSupportFeature(supType, PROTOCOL_80211_IFTYPE_NUM);
1268 EXPECT_EQ(ret, HDF_ERR_INVALID_PARAM);
1269 }
1270
1271 /**
1272 * @tc.name: WifiHalGetSupportFeature003
1273 * @tc.desc: Get supported features_03
1274 * @tc.type: FUNC
1275 */
1276 HWTEST_F(WifiHalTest, SUB_Driver_Wlan_WifiHdi_1500, Function | MediumTest | Level1)
1277 {
1278 int32_t ret;
1279 uint8_t supType[PROTOCOL_80211_IFTYPE_NUM + 1] = {0};
1280
1281 ret = g_wifi->getSupportFeature(supType, PROTOCOL_80211_IFTYPE_NUM + 1);
1282 EXPECT_EQ(ret, RET_CODE_SUCCESS);
1283 }
1284
1285 /**
1286 * @tc.name: HalGetChipId001
1287 * @tc.desc: wifi hal get chip ID function test_01
1288 * @tc.type: FUNC
1289 */
1290 HWTEST_F(WifiHalTest, SUB_Driver_Wlan_WifiHdi_5100, Function | MediumTest | Level1)
1291 {
1292 int32_t ret;
1293 struct IWiFiAp *apFeature = nullptr;
1294 unsigned char chipId = 0;
1295
1296 ret = g_wifi->createFeature(PROTOCOL_80211_IFTYPE_AP, (struct IWiFiBaseFeature **)&apFeature);
1297 EXPECT_EQ(ret, HDF_SUCCESS);
1298 EXPECT_NE(apFeature, nullptr);
1299 ret = apFeature->baseFeature.getChipId(nullptr, &chipId);
1300 EXPECT_NE(ret, HDF_SUCCESS);
1301
1302 ret = g_wifi->destroyFeature((struct IWiFiBaseFeature *)apFeature);
1303 EXPECT_EQ(ret, HDF_SUCCESS);
1304 }
1305
1306 /**
1307 * @tc.name: HalGetChipId002
1308 * @tc.desc: wifi hal get chip ID function test_02
1309 * @tc.type: FUNC
1310 */
1311 HWTEST_F(WifiHalTest, SUB_Driver_Wlan_WifiHdi_5200, Function | MediumTest | Level1)
1312 {
1313 int32_t ret;
1314 struct IWiFiAp *apFeature = nullptr;
1315
1316 ret = g_wifi->createFeature(PROTOCOL_80211_IFTYPE_AP, (struct IWiFiBaseFeature **)&apFeature);
1317 EXPECT_EQ(ret, HDF_SUCCESS);
1318 EXPECT_NE(apFeature, nullptr);
1319 ret = apFeature->baseFeature.getChipId((struct IWiFiBaseFeature *)apFeature, nullptr);
1320 EXPECT_NE(ret, HDF_SUCCESS);
1321
1322 ret = g_wifi->destroyFeature((struct IWiFiBaseFeature *)apFeature);
1323 EXPECT_EQ(ret, HDF_SUCCESS);
1324 }
1325
1326 /**
1327 * @tc.name: HalGetChipId003
1328 * @tc.desc: wifi hal get chip ID function test_03
1329 * @tc.type: FUNC
1330 */
1331 HWTEST_F(WifiHalTest, SUB_Driver_Wlan_WifiHdi_5300, Function | MediumTest | Level1)
1332 {
1333 int32_t ret;
1334 struct IWiFiAp *apFeature = nullptr;
1335 unsigned char chipId = 0;
1336
1337 ret = g_wifi->createFeature(PROTOCOL_80211_IFTYPE_AP, (struct IWiFiBaseFeature **)&apFeature);
1338 EXPECT_EQ(ret, HDF_SUCCESS);
1339 EXPECT_NE(apFeature, nullptr);
1340 ret = apFeature->baseFeature.getChipId((struct IWiFiBaseFeature *)apFeature, &chipId);
1341 ASSERT_TRUE(chipId < MAX_WLAN_DEVICE);
1342 EXPECT_EQ(ret, HDF_SUCCESS);
1343
1344 ret = g_wifi->destroyFeature((struct IWiFiBaseFeature *)apFeature);
1345 EXPECT_EQ(ret, HDF_SUCCESS);
1346 }
1347
1348 /**
1349 * @tc.name: HalGetChipId004
1350 * @tc.desc: wifi hal get chip ID function test_04
1351 * @tc.type: FUNC
1352 */
1353 HWTEST_F(WifiHalTest, SUB_Driver_Wlan_WifiHdi_5400, Function | MediumTest | Level1)
1354 {
1355 int32_t ret;
1356 struct IWiFiSta *staFeature = nullptr;
1357 unsigned char chipId = 0;
1358
1359 ret = g_wifi->createFeature(PROTOCOL_80211_IFTYPE_STATION, (struct IWiFiBaseFeature **)&staFeature);
1360 EXPECT_EQ(ret, HDF_SUCCESS);
1361 EXPECT_NE(staFeature, nullptr);
1362 ret = staFeature->baseFeature.getChipId(nullptr, &chipId);
1363 EXPECT_NE(ret, HDF_SUCCESS);
1364
1365 ret = g_wifi->destroyFeature((struct IWiFiBaseFeature *)staFeature);
1366 EXPECT_EQ(ret, HDF_SUCCESS);
1367 }
1368
1369 /**
1370 * @tc.name: HalGetChipId005
1371 * @tc.desc: wifi hal get chip ID function test_05
1372 * @tc.type: FUNC
1373 */
1374 HWTEST_F(WifiHalTest, SUB_Driver_Wlan_WifiHdi_5500, Function | MediumTest | Level1)
1375 {
1376 int32_t ret;
1377 struct IWiFiSta *staFeature = nullptr;
1378
1379 ret = g_wifi->createFeature(PROTOCOL_80211_IFTYPE_STATION, (struct IWiFiBaseFeature **)&staFeature);
1380 EXPECT_EQ(ret, HDF_SUCCESS);
1381 EXPECT_NE(staFeature, nullptr);
1382 ret = staFeature->baseFeature.getChipId((struct IWiFiBaseFeature *)staFeature, nullptr);
1383 EXPECT_NE(ret, HDF_SUCCESS);
1384
1385 ret = g_wifi->destroyFeature((struct IWiFiBaseFeature *)staFeature);
1386 EXPECT_EQ(ret, HDF_SUCCESS);
1387 }
1388
1389 /**
1390 * @tc.name: HalGetChipId006
1391 * @tc.desc: wifi hal get chip ID function test_06
1392 * @tc.type: FUNC
1393 */
1394 HWTEST_F(WifiHalTest, SUB_Driver_Wlan_WifiHdi_5600, Function | MediumTest | Level1)
1395 {
1396 int32_t ret;
1397 struct IWiFiSta *staFeature = nullptr;
1398 unsigned char chipId = 0;
1399
1400 ret = g_wifi->createFeature(PROTOCOL_80211_IFTYPE_STATION, (struct IWiFiBaseFeature **)&staFeature);
1401 EXPECT_EQ(ret, HDF_SUCCESS);
1402 EXPECT_NE(staFeature, nullptr);
1403 ret = staFeature->baseFeature.getChipId((struct IWiFiBaseFeature *)staFeature, &chipId);
1404 ASSERT_TRUE(chipId < MAX_WLAN_DEVICE);
1405 EXPECT_EQ(ret, HDF_SUCCESS);
1406
1407 ret = g_wifi->destroyFeature((struct IWiFiBaseFeature *)staFeature);
1408 EXPECT_EQ(ret, HDF_SUCCESS);
1409 }
1410
1411 /**
1412 * @tc.name: WifiHalGetDeviceMacAddress001
1413 * @tc.desc: Get device Mac address for ap mode_01
1414 * @tc.type: FUNC
1415 */
1416 HWTEST_F(WifiHalTest, SUB_Driver_Wlan_GetDeviceMACaddress_0100, Function | MediumTest | Level1)
1417 {
1418 int32_t ret;
1419 struct IWiFiAp *apFeature = nullptr;
1420
1421 ret = g_wifi->createFeature(PROTOCOL_80211_IFTYPE_AP, (struct IWiFiBaseFeature **)&apFeature);
1422 EXPECT_EQ(ret, HDF_SUCCESS);
1423 EXPECT_NE(apFeature, nullptr);
1424
1425 unsigned char readMac[ETH_ADDR_LEN] = {0};
1426 ret = apFeature->baseFeature.getDeviceMacAddress(nullptr, readMac, ETH_ADDR_LEN);
1427 EXPECT_EQ(ret, HDF_ERR_INVALID_PARAM);
1428
1429 ret = g_wifi->destroyFeature((struct IWiFiBaseFeature *)apFeature);
1430 EXPECT_EQ(ret, HDF_SUCCESS);
1431 }
1432
1433 /**
1434 * @tc.name: WifiHalGetDeviceMacAddress002
1435 * @tc.desc: Get device Mac address for ap mode_02
1436 * @tc.type: FUNC
1437 */
1438 HWTEST_F(WifiHalTest, SUB_Driver_Wlan_GetDeviceMACaddress_0200, Function | MediumTest | Level1)
1439 {
1440 int32_t ret;
1441 struct IWiFiAp *apFeature = nullptr;
1442
1443 ret = g_wifi->createFeature(PROTOCOL_80211_IFTYPE_AP, (struct IWiFiBaseFeature **)&apFeature);
1444 EXPECT_EQ(ret, HDF_SUCCESS);
1445 EXPECT_NE(apFeature, nullptr);
1446
1447 ret = apFeature->baseFeature.getDeviceMacAddress((struct IWiFiBaseFeature *)apFeature, nullptr, 0);
1448 EXPECT_EQ(ret, HDF_ERR_INVALID_PARAM);
1449
1450 ret = g_wifi->destroyFeature((struct IWiFiBaseFeature *)apFeature);
1451 EXPECT_EQ(ret, HDF_SUCCESS);
1452 }
1453
1454 /**
1455 * @tc.name: WifiHalGetDeviceMacAddress003
1456 * @tc.desc: Get device Mac address for ap mode_03
1457 * @tc.type: FUNC
1458 */
1459 HWTEST_F(WifiHalTest, SUB_Driver_Wlan_GetDeviceMACaddress_0300, Function | MediumTest | Level1)
1460 {
1461 int32_t ret;
1462 struct IWiFiAp *apFeature = nullptr;
1463
1464 ret = g_wifi->createFeature(PROTOCOL_80211_IFTYPE_AP, (struct IWiFiBaseFeature **)&apFeature);
1465 EXPECT_EQ(ret, HDF_SUCCESS);
1466 EXPECT_NE(apFeature, nullptr);
1467
1468 unsigned char readMac[ETH_ADDR_LEN] = {0};
1469 ret = apFeature->baseFeature.getDeviceMacAddress((struct IWiFiBaseFeature *)apFeature, readMac, 0);
1470 EXPECT_EQ(ret, HDF_ERR_INVALID_PARAM);
1471
1472 ret = g_wifi->destroyFeature((struct IWiFiBaseFeature *)apFeature);
1473 EXPECT_EQ(ret, HDF_SUCCESS);
1474 }
1475
1476 /**
1477 * @tc.name: WifiHalGetDeviceMacAddress004
1478 * @tc.desc: Get device Mac address for ap mode_04
1479 * @tc.type: FUNC
1480 */
1481 HWTEST_F(WifiHalTest, SUB_Driver_Wlan_GetDeviceMACaddress_0400, Function | MediumTest | Level1)
1482 {
1483 int32_t ret;
1484 struct IWiFiAp *apFeature = nullptr;
1485
1486 ret = g_wifi->createFeature(PROTOCOL_80211_IFTYPE_AP, (struct IWiFiBaseFeature **)&apFeature);
1487 EXPECT_EQ(ret, HDF_SUCCESS);
1488 EXPECT_NE(apFeature, nullptr);
1489
1490 unsigned char readMac[ETH_ADDR_LEN] = {0};
1491 ret = apFeature->baseFeature.getDeviceMacAddress((struct IWiFiBaseFeature *)apFeature, readMac, ETH_ADDR_LEN);
1492 EXPECT_EQ(ret, HDF_SUCCESS);
1493
1494 ret = g_wifi->destroyFeature((struct IWiFiBaseFeature *)apFeature);
1495 EXPECT_EQ(ret, HDF_SUCCESS);
1496 }
1497
1498 /**
1499 * @tc.name: WifiHalGetDeviceMacAddress005
1500 * @tc.desc: Get device Mac address for sta mode_05
1501 * @tc.type: FUNC
1502 */
1503 HWTEST_F(WifiHalTest, SUB_Driver_Wlan_GetDeviceMACaddress_0500, Function | MediumTest | Level1)
1504 {
1505 int32_t ret;
1506 struct IWiFiSta *staFeature = nullptr;
1507
1508 ret = g_wifi->createFeature(PROTOCOL_80211_IFTYPE_STATION, (struct IWiFiBaseFeature **)&staFeature);
1509 EXPECT_EQ(ret, HDF_SUCCESS);
1510 EXPECT_NE(staFeature, nullptr);
1511
1512 unsigned char readMac[ETH_ADDR_LEN] = {0};
1513 ret = staFeature->baseFeature.getDeviceMacAddress(nullptr, readMac, ETH_ADDR_LEN);
1514 EXPECT_EQ(ret, HDF_ERR_INVALID_PARAM);
1515
1516 ret = g_wifi->destroyFeature((struct IWiFiBaseFeature *)staFeature);
1517 EXPECT_EQ(ret, HDF_SUCCESS);
1518 }
1519
1520 /**
1521 * @tc.name: WifiHalGetDeviceMacAddress006
1522 * @tc.desc: Get device Mac address for sta mode_06
1523 * @tc.type: FUNC
1524 */
1525 HWTEST_F(WifiHalTest, SUB_Driver_Wlan_GetDeviceMACaddress_0600, Function | MediumTest | Level1)
1526 {
1527 int32_t ret;
1528 struct IWiFiSta *staFeature = nullptr;
1529
1530 ret = g_wifi->createFeature(PROTOCOL_80211_IFTYPE_STATION, (struct IWiFiBaseFeature **)&staFeature);
1531 EXPECT_EQ(ret, HDF_SUCCESS);
1532 EXPECT_NE(staFeature, nullptr);
1533
1534 ret = staFeature->baseFeature.getDeviceMacAddress((struct IWiFiBaseFeature *)staFeature, nullptr, 0);
1535 EXPECT_EQ(ret, HDF_ERR_INVALID_PARAM);
1536
1537 ret = g_wifi->destroyFeature((struct IWiFiBaseFeature *)staFeature);
1538 EXPECT_EQ(ret, HDF_SUCCESS);
1539 }
1540
1541 /**
1542 * @tc.name: WifiHalGetDeviceMacAddress007
1543 * @tc.desc: Get device Mac address for sta mode_07
1544 * @tc.type: FUNC
1545 */
1546 HWTEST_F(WifiHalTest, SUB_Driver_Wlan_GetDeviceMACaddress_0700, Function | MediumTest | Level1)
1547 {
1548 int32_t ret;
1549 struct IWiFiSta *staFeature = nullptr;
1550
1551 ret = g_wifi->createFeature(PROTOCOL_80211_IFTYPE_STATION, (struct IWiFiBaseFeature **)&staFeature);
1552 EXPECT_EQ(ret, HDF_SUCCESS);
1553 EXPECT_NE(staFeature, nullptr);
1554
1555 unsigned char readMac[ETH_ADDR_LEN] = {0};
1556 ret = staFeature->baseFeature.getDeviceMacAddress((struct IWiFiBaseFeature *)staFeature, readMac, 0);
1557 EXPECT_EQ(ret, HDF_ERR_INVALID_PARAM);
1558
1559 ret = g_wifi->destroyFeature((struct IWiFiBaseFeature *)staFeature);
1560 EXPECT_EQ(ret, HDF_SUCCESS);
1561 }
1562
1563 /**
1564 * @tc.name: WifiHalGetDeviceMacAddress008
1565 * @tc.desc: Get device Mac address for sta mode_08
1566 * @tc.type: FUNC
1567 */
1568 HWTEST_F(WifiHalTest, SUB_Driver_Wlan_GetDeviceMACaddress_0800, Function | MediumTest | Level1)
1569 {
1570 int32_t ret;
1571 struct IWiFiSta *staFeature = nullptr;
1572
1573 ret = g_wifi->createFeature(PROTOCOL_80211_IFTYPE_STATION, (struct IWiFiBaseFeature **)&staFeature);
1574 EXPECT_EQ(ret, HDF_SUCCESS);
1575 EXPECT_NE(staFeature, nullptr);
1576
1577 unsigned char readMac[ETH_ADDR_LEN] = {0};
1578 ret = staFeature->baseFeature.getDeviceMacAddress((struct IWiFiBaseFeature *)staFeature, readMac, ETH_ADDR_LEN);
1579 EXPECT_EQ(ret, HDF_SUCCESS);
1580
1581 ret = g_wifi->destroyFeature((struct IWiFiBaseFeature *)staFeature);
1582 EXPECT_EQ(ret, HDF_SUCCESS);
1583 }
1584
1585 /**
1586 * @tc.name: WifiHaGetValidFreqsWithBand001
1587 * @tc.desc: Get available frequencies_01
1588 * @tc.type: FUNC
1589 */
1590 HWTEST_F(WifiHalTest, SUB_Driver_Wlan_WifiHdi_0600, Function | MediumTest | Level1)
1591 {
1592 int32_t ret;
1593 struct IWiFiSta *staFeature = nullptr;
1594 int32_t band = IEEE80211_BAND_2GHZ;
1595 int32_t freqs[MAX_CHANNEL_NUM] = {0};
1596 uint32_t size = MAX_CHANNEL_NUM;
1597 uint32_t num = 0;
1598
1599 ret = g_wifi->createFeature(PROTOCOL_80211_IFTYPE_STATION, (struct IWiFiBaseFeature **)&staFeature);
1600 EXPECT_EQ(ret, HDF_SUCCESS);
1601 EXPECT_NE(staFeature, nullptr);
1602 ret = staFeature->baseFeature.getValidFreqsWithBand(nullptr, band, freqs, size, &num);
1603 EXPECT_EQ(ret, HDF_ERR_INVALID_PARAM);
1604
1605 ret = g_wifi->destroyFeature((struct IWiFiBaseFeature *)staFeature);
1606 EXPECT_EQ(ret, HDF_SUCCESS);
1607 }
1608
1609 /**
1610 * @tc.name: WifiHaGetValidFreqsWithBand002
1611 * @tc.desc: Get available frequencies_02
1612 * @tc.type: FUNC
1613 */
1614 HWTEST_F(WifiHalTest, SUB_Driver_Wlan_WifiHdi_0700, Function | MediumTest | Level1)
1615 {
1616 int32_t ret;
1617 struct IWiFiSta *staFeature = nullptr;
1618 int32_t band = IEEE80211_BAND_2GHZ;
1619 int32_t freqs[MAX_CHANNEL_NUM] = {0};
1620 uint32_t size = MAX_CHANNEL_NUM;
1621 uint32_t num = 0;
1622
1623 ret = g_wifi->createFeature(PROTOCOL_80211_IFTYPE_STATION, (struct IWiFiBaseFeature **)&staFeature);
1624 EXPECT_EQ(ret, HDF_SUCCESS);
1625 EXPECT_NE(staFeature, nullptr);
1626 ret = staFeature->baseFeature.getValidFreqsWithBand(nullptr, band, freqs, size, &num);
1627 EXPECT_EQ(ret, HDF_ERR_INVALID_PARAM);
1628 ret = staFeature->baseFeature.getValidFreqsWithBand((struct IWiFiBaseFeature *)staFeature,
1629 band, nullptr, size, &num);
1630 EXPECT_EQ(ret, HDF_ERR_INVALID_PARAM);
1631
1632 ret = g_wifi->destroyFeature((struct IWiFiBaseFeature *)staFeature);
1633 EXPECT_EQ(ret, HDF_SUCCESS);
1634 }
1635
1636 /**
1637 * @tc.name: WifiHaGetValidFreqsWithBand003
1638 * @tc.desc: Get available frequencies_03
1639 * @tc.type: FUNC
1640 */
1641 HWTEST_F(WifiHalTest, SUB_Driver_Wlan_WifiHdi_0800, Function | MediumTest | Level1)
1642 {
1643 int32_t ret;
1644 struct IWiFiSta *staFeature = nullptr;
1645 int32_t band = IEEE80211_BAND_2GHZ;
1646 int32_t freqs[MAX_CHANNEL_NUM] = {0};
1647 uint32_t num = 0;
1648
1649 ret = g_wifi->createFeature(PROTOCOL_80211_IFTYPE_STATION, (struct IWiFiBaseFeature **)&staFeature);
1650 EXPECT_EQ(ret, HDF_SUCCESS);
1651 EXPECT_NE(staFeature, nullptr);
1652 ret = staFeature->baseFeature.getValidFreqsWithBand((struct IWiFiBaseFeature *)staFeature, band, freqs, 10, &num);
1653 EXPECT_EQ(ret, HDF_ERR_INVALID_PARAM);
1654
1655 ret = g_wifi->destroyFeature((struct IWiFiBaseFeature *)staFeature);
1656 EXPECT_EQ(ret, HDF_SUCCESS);
1657 }
1658
1659 /**
1660 * @tc.name: WifiHaGetValidFreqsWithBand004
1661 * @tc.desc: Get available frequencies_04
1662 * @tc.type: FUNC
1663 */
1664 HWTEST_F(WifiHalTest, SUB_Driver_Wlan_WifiHdi_0900, Function | MediumTest | Level1)
1665 {
1666 int32_t ret;
1667 struct IWiFiSta *staFeature = nullptr;
1668 int32_t band = IEEE80211_BAND_2GHZ;
1669 int32_t freqs[MAX_CHANNEL_NUM] = {0};
1670 uint32_t size = MAX_CHANNEL_NUM;
1671
1672 ret = g_wifi->createFeature(PROTOCOL_80211_IFTYPE_STATION, (struct IWiFiBaseFeature **)&staFeature);
1673 EXPECT_EQ(ret, HDF_SUCCESS);
1674 EXPECT_NE(staFeature, nullptr);
1675 ret = staFeature->baseFeature.getValidFreqsWithBand((struct IWiFiBaseFeature *)staFeature,
1676 band, freqs, size, nullptr);
1677 EXPECT_EQ(ret, HDF_ERR_INVALID_PARAM);
1678
1679 ret = g_wifi->destroyFeature((struct IWiFiBaseFeature *)staFeature);
1680 EXPECT_EQ(ret, HDF_SUCCESS);
1681 }
1682
1683 /**
1684 * @tc.name: WifiHaGetValidFreqsWithBand005
1685 * @tc.desc: Get available frequencies_05
1686 * @tc.type: FUNC
1687 */
1688 HWTEST_F(WifiHalTest, SUB_Driver_Wlan_WifiHdi_1000, Function | MediumTest | Level1)
1689 {
1690 int32_t ret;
1691 struct IWiFiSta *staFeature = nullptr;
1692 int32_t bandNotSupport = IEEE80211_NUM_BANDS;
1693 int32_t freqs[MAX_CHANNEL_NUM] = {0};
1694 uint32_t size = MAX_CHANNEL_NUM;
1695 uint32_t num = 0;
1696
1697 ret = g_wifi->createFeature(PROTOCOL_80211_IFTYPE_STATION, (struct IWiFiBaseFeature **)&staFeature);
1698 EXPECT_EQ(ret, HDF_SUCCESS);
1699 EXPECT_NE(staFeature, nullptr);
1700 ret = staFeature->baseFeature.getValidFreqsWithBand((struct IWiFiBaseFeature *)staFeature,
1701 bandNotSupport, freqs, size, &num);
1702 EXPECT_NE(ret, HDF_SUCCESS);
1703
1704 ret = g_wifi->destroyFeature((struct IWiFiBaseFeature *)staFeature);
1705 EXPECT_EQ(ret, HDF_SUCCESS);
1706 }
1707
1708 /**
1709 * @tc.name: WifiHaGetValidFreqsWithBand006
1710 * @tc.desc: Get available frequencies_06
1711 * @tc.type: FUNC
1712 */
1713 HWTEST_F(WifiHalTest, SUB_Driver_Wlan_WifiHdi_1100, Function | MediumTest | Level1)
1714 {
1715 int32_t ret;
1716 struct IWiFiSta *staFeature = nullptr;
1717 int32_t band = IEEE80211_BAND_2GHZ;
1718 int32_t freqs[MAX_CHANNEL_NUM] = {0};
1719 uint32_t size = MAX_CHANNEL_NUM;
1720 uint32_t num = 0;
1721
1722 ret = g_wifi->createFeature(PROTOCOL_80211_IFTYPE_STATION, (struct IWiFiBaseFeature **)&staFeature);
1723 EXPECT_EQ(ret, HDF_SUCCESS);
1724 EXPECT_NE(staFeature, nullptr);
1725 ret = staFeature->baseFeature.getValidFreqsWithBand((struct IWiFiBaseFeature *)staFeature,
1726 band, freqs, size, &num);
1727 EXPECT_EQ(ret, HDF_SUCCESS);
1728
1729 ret = g_wifi->destroyFeature((struct IWiFiBaseFeature *)staFeature);
1730 EXPECT_EQ(ret, HDF_SUCCESS);
1731 }
1732
1733 /**
1734 * @tc.name: GetValidFreqsWithBand007
1735 * @tc.desc: Wifi hal get valid frequency with specific band test_07
1736 * @tc.type: FUNC
1737 */
1738 HWTEST_F(WifiHalTest, SUB_Driver_Wlan_WifiHdi_6500, Function | MediumTest | Level1)
1739 {
1740 int32_t ret;
1741 struct IWiFiAp *apFeature = nullptr;
1742 int32_t band = IEEE80211_BAND_2GHZ;
1743 int32_t freqs[MAX_CHANNEL_NUM] = {0};
1744 uint32_t size = MAX_CHANNEL_NUM;
1745 uint32_t num = 0;
1746
1747 ret = g_wifi->createFeature(PROTOCOL_80211_IFTYPE_AP, (struct IWiFiBaseFeature **)&apFeature);
1748 EXPECT_EQ(ret, HDF_SUCCESS);
1749 EXPECT_NE(apFeature, nullptr);
1750 ret = apFeature->baseFeature.getValidFreqsWithBand(nullptr, band, freqs, size, &num);
1751 EXPECT_EQ(ret, HDF_ERR_INVALID_PARAM);
1752
1753 ret = g_wifi->destroyFeature((struct IWiFiBaseFeature *)apFeature);
1754 EXPECT_EQ(ret, HDF_SUCCESS);
1755 }
1756
1757 /**
1758 * @tc.name: GetValidFreqsWithBand008
1759 * @tc.desc: Wifi hal get valid frequency with specific band test_08
1760 * @tc.type: FUNC
1761 */
1762 HWTEST_F(WifiHalTest, SUB_Driver_Wlan_WifiHdi_6600, Function | MediumTest | Level1)
1763 {
1764 int32_t ret;
1765 struct IWiFiAp *apFeature = nullptr;
1766 int32_t band = IEEE80211_BAND_2GHZ;
1767 uint32_t size = MAX_CHANNEL_NUM;
1768 uint32_t num = 0;
1769
1770 ret = g_wifi->createFeature(PROTOCOL_80211_IFTYPE_AP, (struct IWiFiBaseFeature **)&apFeature);
1771 EXPECT_EQ(ret, HDF_SUCCESS);
1772 EXPECT_NE(apFeature, nullptr);
1773 ret = apFeature->baseFeature.getValidFreqsWithBand((struct IWiFiBaseFeature *)apFeature, band, nullptr, size, &num);
1774 EXPECT_EQ(ret, HDF_ERR_INVALID_PARAM);
1775
1776 ret = g_wifi->destroyFeature((struct IWiFiBaseFeature *)apFeature);
1777 EXPECT_EQ(ret, HDF_SUCCESS);
1778 }
1779
1780 /**
1781 * @tc.name: GetValidFreqsWithBand009
1782 * @tc.desc: Wifi hal get valid frequency with specific band test_09
1783 * @tc.type: FUNC
1784 */
1785 HWTEST_F(WifiHalTest, SUB_Driver_Wlan_WifiHdi_6700, Function | MediumTest | Level1)
1786 {
1787 int32_t ret;
1788 struct IWiFiAp *apFeature = nullptr;
1789 int32_t band = IEEE80211_BAND_2GHZ;
1790 int32_t freqs[MAX_CHANNEL_NUM] = {0};
1791 uint32_t num = 0;
1792
1793 ret = g_wifi->createFeature(PROTOCOL_80211_IFTYPE_AP, (struct IWiFiBaseFeature **)&apFeature);
1794 EXPECT_EQ(ret, HDF_SUCCESS);
1795 EXPECT_NE(apFeature, nullptr);
1796 ret = apFeature->baseFeature.getValidFreqsWithBand((struct IWiFiBaseFeature *)apFeature, band, freqs, 10, &num);
1797 EXPECT_EQ(ret, HDF_ERR_INVALID_PARAM);
1798 ret = g_wifi->destroyFeature((struct IWiFiBaseFeature *)apFeature);
1799 EXPECT_EQ(ret, HDF_SUCCESS);
1800 }
1801
1802 /**
1803 * @tc.name: GetValidFreqsWithBand010
1804 * @tc.desc: Wifi hal get valid frequency with specific band test_10
1805 * @tc.type: FUNC
1806 */
1807 HWTEST_F(WifiHalTest, SUB_Driver_Wlan_WifiHdi_6800, Function | MediumTest | Level1)
1808 {
1809 int32_t ret;
1810 struct IWiFiAp *apFeature = nullptr;
1811 int32_t band = IEEE80211_BAND_2GHZ;
1812 int32_t freqs[MAX_CHANNEL_NUM] = {0};
1813 uint32_t size = MAX_CHANNEL_NUM;
1814
1815 ret = g_wifi->createFeature(PROTOCOL_80211_IFTYPE_AP, (struct IWiFiBaseFeature **)&apFeature);
1816 EXPECT_EQ(ret, HDF_SUCCESS);
1817 EXPECT_NE(apFeature, nullptr);
1818 ret = apFeature->baseFeature.getValidFreqsWithBand((struct IWiFiBaseFeature *)apFeature,
1819 band, freqs, size, nullptr);
1820 EXPECT_EQ(ret, HDF_ERR_INVALID_PARAM);
1821
1822 ret = g_wifi->destroyFeature((struct IWiFiBaseFeature *)apFeature);
1823 EXPECT_EQ(ret, HDF_SUCCESS);
1824 }
1825
1826 /**
1827 * @tc.name: GetValidFreqsWithBand011
1828 * @tc.desc: Wifi hal get valid frequency with specific band test_11
1829 * @tc.type: FUNC
1830 */
1831 HWTEST_F(WifiHalTest, SUB_Driver_Wlan_WifiHdi_6900, Function | MediumTest | Level1)
1832 {
1833 int32_t ret;
1834 struct IWiFiAp *apFeature = nullptr;
1835 int32_t bandNotSupport = IEEE80211_NUM_BANDS;
1836 int32_t freqs[MAX_CHANNEL_NUM] = {0};
1837 uint32_t size = MAX_CHANNEL_NUM;
1838 uint32_t num = 0;
1839
1840 ret = g_wifi->createFeature(PROTOCOL_80211_IFTYPE_AP, (struct IWiFiBaseFeature **)&apFeature);
1841 EXPECT_EQ(ret, HDF_SUCCESS);
1842 EXPECT_NE(apFeature, nullptr);
1843 ret = apFeature->baseFeature.getValidFreqsWithBand((struct IWiFiBaseFeature *)apFeature,
1844 bandNotSupport, freqs, size, &num);
1845 EXPECT_NE(ret, HDF_SUCCESS);
1846
1847 ret = g_wifi->destroyFeature((struct IWiFiBaseFeature *)apFeature);
1848 EXPECT_EQ(ret, HDF_SUCCESS);
1849 }
1850
1851 /**
1852 * @tc.name: GetValidFreqsWithBand012
1853 * @tc.desc: Wifi hal get valid frequency with specific band test_12
1854 * @tc.type: FUNC
1855 */
1856 HWTEST_F(WifiHalTest, SUB_Driver_Wlan_WifiHdi_7000, Function | MediumTest | Level1)
1857 {
1858 int32_t ret;
1859 struct IWiFiAp *apFeature = nullptr;
1860 int32_t band = IEEE80211_BAND_2GHZ;
1861 int32_t freqs[MAX_CHANNEL_NUM] = {0};
1862 uint32_t size = MAX_CHANNEL_NUM;
1863 uint32_t num = 0;
1864
1865 ret = g_wifi->createFeature(PROTOCOL_80211_IFTYPE_AP, (struct IWiFiBaseFeature **)&apFeature);
1866 EXPECT_EQ(ret, HDF_SUCCESS);
1867 EXPECT_NE(apFeature, nullptr);
1868 ret = apFeature->baseFeature.getValidFreqsWithBand((struct IWiFiBaseFeature *)apFeature, band, freqs, size, &num);
1869 EXPECT_EQ(ret, HDF_SUCCESS);
1870
1871 ret = g_wifi->destroyFeature((struct IWiFiBaseFeature *)apFeature);
1872 EXPECT_EQ(ret, HDF_SUCCESS);
1873 }
1874
1875 /**
1876 * @tc.name: WifiHalGetAssociatedStas001
1877 * @tc.desc: Get asscociated STA info_01
1878 * @tc.type: FUNC
1879 */
1880 HWTEST_F(WifiHalTest, SUB_Driver_Wlan_WifiHdi_0100, Function | MediumTest | Level1)
1881 {
1882 int32_t ret;
1883 struct IWiFiAp *apFeature = nullptr;
1884 struct StaInfo staInfo[MAX_ASSOC_STA_NUM];
1885 (void)memset_s(staInfo, sizeof(StaInfo) * MAX_ASSOC_STA_NUM, 0, sizeof(StaInfo) * MAX_ASSOC_STA_NUM);
1886 uint32_t num = 0;
1887
1888 ret = g_wifi->createFeature(PROTOCOL_80211_IFTYPE_AP, (struct IWiFiBaseFeature **)&apFeature);
1889 EXPECT_EQ(ret, HDF_SUCCESS);
1890 EXPECT_NE(apFeature, nullptr);
1891 ret = apFeature->getAssociatedStas(nullptr, staInfo, MAX_ASSOC_STA_NUM, &num);
1892 EXPECT_NE(ret, HDF_SUCCESS);
1893
1894 ret = g_wifi->destroyFeature((struct IWiFiBaseFeature *)apFeature);
1895 EXPECT_EQ(ret, HDF_SUCCESS);
1896 }
1897
1898 /**
1899 * @tc.name: WifiHalGetAssociatedStas002
1900 * @tc.desc: Get asscociated STA info_02
1901 * @tc.type: FUNC
1902 */
1903 HWTEST_F(WifiHalTest, SUB_Driver_Wlan_WifiHdi_0200, Function | MediumTest | Level1)
1904 {
1905 int32_t ret;
1906 struct IWiFiAp *apFeature = nullptr;
1907 struct StaInfo staInfo[MAX_ASSOC_STA_NUM];
1908 (void)memset_s(staInfo, sizeof(StaInfo) * MAX_ASSOC_STA_NUM, 0, sizeof(StaInfo) * MAX_ASSOC_STA_NUM);
1909 uint32_t num = 0;
1910
1911 ret = g_wifi->createFeature(PROTOCOL_80211_IFTYPE_AP, (struct IWiFiBaseFeature **)&apFeature);
1912 EXPECT_EQ(ret, HDF_SUCCESS);
1913 EXPECT_NE(apFeature, nullptr);
1914 ret = apFeature->getAssociatedStas(apFeature, nullptr, MAX_ASSOC_STA_NUM, &num);
1915 EXPECT_NE(ret, HDF_SUCCESS);
1916
1917 ret = g_wifi->destroyFeature((struct IWiFiBaseFeature *)apFeature);
1918 EXPECT_EQ(ret, HDF_SUCCESS);
1919 }
1920
1921 /**
1922 * @tc.name: WifiHalGetAssociatedStas003
1923 * @tc.desc: Get asscociated STA info_03
1924 * @tc.type: FUNC
1925 */
1926 HWTEST_F(WifiHalTest, SUB_Driver_Wlan_WifiHdi_0300, Function | MediumTest | Level1)
1927 {
1928 int32_t ret;
1929 struct IWiFiAp *apFeature = nullptr;
1930 struct StaInfo staInfo[MAX_ASSOC_STA_NUM];
1931 (void)memset_s(staInfo, sizeof(StaInfo) * MAX_ASSOC_STA_NUM, 0, sizeof(StaInfo) * MAX_ASSOC_STA_NUM);
1932 uint32_t num = 0;
1933
1934 ret = g_wifi->createFeature(PROTOCOL_80211_IFTYPE_AP, (struct IWiFiBaseFeature **)&apFeature);
1935 EXPECT_EQ(ret, HDF_SUCCESS);
1936 EXPECT_NE(apFeature, nullptr);
1937 ret = apFeature->getAssociatedStas(apFeature, staInfo, 0, &num);
1938 EXPECT_NE(ret, HDF_SUCCESS);
1939
1940
1941 ret = g_wifi->destroyFeature((struct IWiFiBaseFeature *)apFeature);
1942 EXPECT_EQ(ret, HDF_SUCCESS);
1943 }
1944
1945 /**
1946 * @tc.name: WifiHalGetAssociatedStas004
1947 * @tc.desc: Get asscociated STA info_04
1948 * @tc.type: FUNC
1949 */
1950 HWTEST_F(WifiHalTest, SUB_Driver_Wlan_WifiHdi_0400, Function | MediumTest | Level1)
1951 {
1952 int32_t ret;
1953 struct IWiFiAp *apFeature = nullptr;
1954 struct StaInfo staInfo[MAX_ASSOC_STA_NUM];
1955 (void)memset_s(staInfo, sizeof(StaInfo) * MAX_ASSOC_STA_NUM, 0, sizeof(StaInfo) * MAX_ASSOC_STA_NUM);
1956
1957 ret = g_wifi->createFeature(PROTOCOL_80211_IFTYPE_AP, (struct IWiFiBaseFeature **)&apFeature);
1958 EXPECT_EQ(ret, HDF_SUCCESS);
1959 EXPECT_NE(apFeature, nullptr);
1960 ret = apFeature->getAssociatedStas(apFeature, staInfo, MAX_ASSOC_STA_NUM, nullptr);
1961 EXPECT_NE(ret, HDF_SUCCESS);
1962
1963
1964 ret = g_wifi->destroyFeature((struct IWiFiBaseFeature *)apFeature);
1965 EXPECT_EQ(ret, HDF_SUCCESS);
1966 }
1967
1968 /**
1969 * @tc.name: WifiHalGetAssociatedStas005
1970 * @tc.desc: Get asscociated STA info_05
1971 * @tc.type: FUNC
1972 */
1973 HWTEST_F(WifiHalTest, SUB_Driver_Wlan_WifiHdi_0500, Function | MediumTest | Level1)
1974 {
1975 int32_t ret;
1976 struct IWiFiAp *apFeature = nullptr;
1977 struct StaInfo staInfo[MAX_ASSOC_STA_NUM];
1978 (void)memset_s(staInfo, sizeof(StaInfo) * MAX_ASSOC_STA_NUM, 0, sizeof(StaInfo) * MAX_ASSOC_STA_NUM);
1979 uint32_t num = 0;
1980
1981 ret = g_wifi->createFeature(PROTOCOL_80211_IFTYPE_AP, (struct IWiFiBaseFeature **)&apFeature);
1982 EXPECT_EQ(ret, HDF_SUCCESS);
1983 EXPECT_NE(apFeature, nullptr);
1984 ret = apFeature->getAssociatedStas(apFeature, staInfo, MAX_ASSOC_STA_NUM, &num);
1985 EXPECT_EQ(ret, HDF_SUCCESS);
1986
1987 ret = g_wifi->destroyFeature((struct IWiFiBaseFeature *)apFeature);
1988 EXPECT_EQ(ret, HDF_SUCCESS);
1989 }
1990
1991 /**
1992 * @tc.name: WifiHalSetScanningMacAddress001
1993 * @tc.desc: Set Mac address scanning_01
1994 * @tc.type: FUNC
1995 */
1996 HWTEST_F(WifiHalTest, SUB_Driver_Wlan_SetDeviceMACaddress_0100, Function | MediumTest | Level1)
1997 {
1998 int32_t ret;
1999 struct IWiFiSta *staFeature = nullptr;
2000 unsigned char scanMac[WIFI_MAC_ADDR_LENGTH] = {0x12, 0x34, 0x56, 0x78, 0xab, 0xcd};
2001
2002 ret = g_wifi->createFeature(PROTOCOL_80211_IFTYPE_STATION, (struct IWiFiBaseFeature **)&staFeature);
2003 EXPECT_EQ(ret, HDF_SUCCESS);
2004 EXPECT_NE(staFeature, nullptr);
2005 ret = staFeature->setScanningMacAddress(nullptr, scanMac, WIFI_MAC_ADDR_LENGTH);
2006 EXPECT_NE(ret, HDF_SUCCESS);
2007
2008 ret = g_wifi->destroyFeature((struct IWiFiBaseFeature *)staFeature);
2009 EXPECT_EQ(ret, HDF_SUCCESS);
2010 }
2011
2012 /**
2013 * @tc.name: WifiHalSetScanningMacAddress002
2014 * @tc.desc: Set Mac address scanning_02
2015 * @tc.type: FUNC
2016 */
2017 HWTEST_F(WifiHalTest, SUB_Driver_Wlan_SetDeviceMACaddress_0200, Function | MediumTest | Level1)
2018 {
2019 int32_t ret;
2020 struct IWiFiSta *staFeature = nullptr;
2021
2022 ret = g_wifi->createFeature(PROTOCOL_80211_IFTYPE_STATION, (struct IWiFiBaseFeature **)&staFeature);
2023 EXPECT_EQ(ret, HDF_SUCCESS);
2024 EXPECT_NE(staFeature, nullptr);
2025 ret = staFeature->setScanningMacAddress(staFeature, nullptr, WIFI_MAC_ADDR_LENGTH);
2026 EXPECT_NE(ret, HDF_SUCCESS);
2027
2028 ret = g_wifi->destroyFeature((struct IWiFiBaseFeature *)staFeature);
2029 EXPECT_EQ(ret, HDF_SUCCESS);
2030 }
2031
2032 /**
2033 * @tc.name: WifiHalSetScanningMacAddress003
2034 * @tc.desc: Set Mac address scanning_03
2035 * @tc.type: FUNC
2036 */
2037 HWTEST_F(WifiHalTest, SUB_Driver_Wlan_SetDeviceMACaddress_0300, Function | MediumTest | Level1)
2038 {
2039 int32_t ret;
2040 struct IWiFiSta *staFeature = nullptr;
2041 unsigned char scanMac[WIFI_MAC_ADDR_LENGTH] = {0x12, 0x34, 0x56, 0x78, 0xab, 0xcd};
2042
2043 ret = g_wifi->createFeature(PROTOCOL_80211_IFTYPE_STATION, (struct IWiFiBaseFeature **)&staFeature);
2044 EXPECT_EQ(ret, HDF_SUCCESS);
2045 EXPECT_NE(staFeature, nullptr);
2046 ret = staFeature->setScanningMacAddress(staFeature, scanMac, 0);
2047 EXPECT_NE(ret, HDF_SUCCESS);
2048
2049 ret = g_wifi->destroyFeature((struct IWiFiBaseFeature *)staFeature);
2050 EXPECT_EQ(ret, HDF_SUCCESS);
2051 }
2052
2053 /**
2054 * @tc.name: WifiHalSetScanningMacAddress004
2055 * @tc.desc: Set Mac address scanning_04
2056 * @tc.type: FUNC
2057 */
2058 HWTEST_F(WifiHalTest, SUB_Driver_Wlan_SetDeviceMACaddress_0400, Function | MediumTest | Level1)
2059 {
2060 int32_t ret;
2061 struct IWiFiSta *staFeature = nullptr;
2062 unsigned char scanMac[WIFI_MAC_ADDR_LENGTH] = {0x12, 0x34, 0x56, 0x78, 0xab, 0xcd};
2063
2064 ret = g_wifi->createFeature(PROTOCOL_80211_IFTYPE_STATION, (struct IWiFiBaseFeature **)&staFeature);
2065 EXPECT_EQ(ret, HDF_SUCCESS);
2066 EXPECT_NE(staFeature, nullptr);
2067 ret = staFeature->setScanningMacAddress(staFeature, scanMac, WIFI_MAC_ADDR_LENGTH);
2068 bool flag = (ret == HDF_SUCCESS || ret == HDF_ERR_NOT_SUPPORT);
2069 ASSERT_TRUE(flag);
2070
2071 ret = g_wifi->destroyFeature((struct IWiFiBaseFeature *)staFeature);
2072 EXPECT_EQ(ret, HDF_SUCCESS);
2073 }
2074
2075 /**
2076 * @tc.name: WifiHalGetNetDevInfo001
2077 * @tc.desc: Wifi hdi get netdev info function test_01
2078 * @tc.type: FUNC
2079 */
2080 HWTEST_F(WifiHalTest, SUB_Driver_Wlan_WifiHdi_9600, Function | MediumTest | Level1)
2081 {
2082 int ret;
2083 struct IWiFiAp *apFeature = nullptr;
2084
2085 ret = g_wifi->createFeature(PROTOCOL_80211_IFTYPE_AP, (struct IWiFiBaseFeature **)&apFeature);
2086 EXPECT_EQ(HDF_SUCCESS, ret);
2087 EXPECT_NE(nullptr, apFeature);
2088 ret = g_wifi->getNetDevInfo(nullptr);
2089 EXPECT_NE(HDF_SUCCESS, ret);
2090 ret = g_wifi->destroyFeature((struct IWiFiBaseFeature *)apFeature);
2091 EXPECT_EQ(HDF_SUCCESS, ret);
2092 }
2093
2094 /**
2095 * @tc.name: WifiHalGetNetDevInfo002
2096 * @tc.desc: Wifi hdi get netdev info function test_02
2097 * @tc.type: FUNC
2098 */
2099 HWTEST_F(WifiHalTest, SUB_Driver_Wlan_WifiHdi_9700, Function | MediumTest | Level1)
2100 {
2101 int ret;
2102 struct IWiFiAp *apFeature = nullptr;
2103 struct NetDeviceInfoResult netDeviceInfoResult;
2104
2105 ret = g_wifi->createFeature(PROTOCOL_80211_IFTYPE_AP, (struct IWiFiBaseFeature **)&apFeature);
2106 EXPECT_EQ(HDF_SUCCESS, ret);
2107 EXPECT_NE(nullptr, apFeature);
2108 ret = g_wifi->getNetDevInfo(&netDeviceInfoResult);
2109 EXPECT_EQ(HDF_SUCCESS, ret);
2110 ret = g_wifi->destroyFeature((struct IWiFiBaseFeature *)apFeature);
2111 EXPECT_EQ(HDF_SUCCESS, ret);
2112 }
2113
2114 /**
2115 * @tc.name: WifiHalStartScan001
2116 * @tc.desc: start scan is successfully_01
2117 * @tc.type: FUNC
2118 */
2119 HWTEST_F(WifiHalTest, SUB_Driver_Wlan_WifiHdi_2400, Function | MediumTest | Level3)
2120 {
2121 int ret;
2122 struct IWiFiSta *staFeature = nullptr;
2123 const char *ifName = "wlan0";
2124 WifiScan scan = {0};
2125
2126 ret = g_wifi->registerEventCallback(HalCallbackEvent, ifName);
2127 EXPECT_EQ(HDF_SUCCESS, ret);
2128 ret = g_wifi->createFeature(PROTOCOL_80211_IFTYPE_STATION, (struct IWiFiBaseFeature **)&staFeature);
2129 EXPECT_EQ(HDF_SUCCESS, ret);
2130 EXPECT_NE(nullptr, staFeature);
2131 ret = staFeature->startScan(nullptr, &scan);
2132 EXPECT_NE(ret, HDF_SUCCESS);
2133 sleep(10);
2134 }
2135
2136 /**
2137 * @tc.name: WifiHalStartScan002
2138 * @tc.desc: start scan is successfully_02
2139 * @tc.type: FUNC
2140 */
2141 HWTEST_F(WifiHalTest, SUB_Driver_Wlan_WifiHdi_2500, Function | MediumTest | Level3)
2142 {
2143 int ret;
2144 struct IWiFiSta *staFeature = nullptr;
2145 const char *ifName = "wlan0";
2146
2147 ret = g_wifi->registerEventCallback(HalCallbackEvent, ifName);
2148 EXPECT_EQ(HDF_SUCCESS, ret);
2149 ret = g_wifi->createFeature(PROTOCOL_80211_IFTYPE_STATION, (struct IWiFiBaseFeature **)&staFeature);
2150 EXPECT_EQ(HDF_SUCCESS, ret);
2151 EXPECT_NE(nullptr, staFeature);
2152 ret = staFeature->startScan(ifName, nullptr);
2153 EXPECT_NE(ret, HDF_SUCCESS);
2154 sleep(10);
2155 }
2156
2157 /**
2158 * @tc.name: WifiHalStartScan003
2159 * @tc.desc: start scan is successfully_03
2160 * @tc.type: FUNC
2161 */
2162 HWTEST_F(WifiHalTest, SUB_Driver_Wlan_WifiHdi_2600, Function | MediumTest | Level3)
2163 {
2164 int ret;
2165 struct IWiFiSta *staFeature = nullptr;
2166 const char *ifName = "wlan0";
2167 WifiScan scan = {0};
2168
2169 ret = g_wifi->registerEventCallback(HalCallbackEvent, ifName);
2170 EXPECT_EQ(HDF_SUCCESS, ret);
2171 ret = g_wifi->createFeature(PROTOCOL_80211_IFTYPE_STATION, (struct IWiFiBaseFeature **)&staFeature);
2172 EXPECT_EQ(HDF_SUCCESS, ret);
2173 EXPECT_NE(nullptr, staFeature);
2174 ret = staFeature->startScan(ifName, &scan);
2175 EXPECT_EQ(HDF_SUCCESS, ret);
2176 sleep(10);
2177 }
2178
2179 /**
2180 * @tc.name: GetPowerModeTest_001
2181 * @tc.desc: Wifi hdi get power mode function test_01
2182 * @tc.type: FUNC
2183 */
2184 HWTEST_F(WifiHalTest, SUB_Driver_Wlan_SgetPowerMode_0100, Function | MediumTest | Level1)
2185 {
2186 int32_t ret;
2187 struct IWiFiAp *apFeature = nullptr;
2188 uint8_t mode;
2189
2190 ret = g_wifi->createFeature(PROTOCOL_80211_IFTYPE_AP, (struct IWiFiBaseFeature **)&apFeature);
2191 EXPECT_EQ(ret, HDF_SUCCESS);
2192 EXPECT_NE(apFeature, nullptr);
2193 printf("GetPowerMode001: ifname is %s\n", apFeature->baseFeature.ifName);
2194 ret = g_wifi->getPowerMode(nullptr, &mode);
2195 EXPECT_NE(ret, HDF_SUCCESS);
2196 ret = g_wifi->destroyFeature((struct IWiFiBaseFeature *)apFeature);
2197 EXPECT_EQ(ret, HDF_SUCCESS);
2198 }
2199
2200 /**
2201 * @tc.name: GetPowerModeTest_002
2202 * @tc.desc: Wifi hdi get power mode function test_02
2203 * @tc.type: FUNC
2204 */
2205 HWTEST_F(WifiHalTest, SUB_Driver_Wlan_SgetPowerMode_0200, Function | MediumTest | Level1)
2206 {
2207 int32_t ret;
2208 struct IWiFiAp *apFeature = nullptr;
2209 const char *ifName = "eth0";
2210
2211 ret = g_wifi->createFeature(PROTOCOL_80211_IFTYPE_AP, (struct IWiFiBaseFeature **)&apFeature);
2212 EXPECT_EQ(ret, HDF_SUCCESS);
2213 EXPECT_NE(apFeature, nullptr);
2214 printf("GetPowerMode001: ifname is %s\n", apFeature->baseFeature.ifName);
2215 ret = g_wifi->getPowerMode(ifName, nullptr);
2216 EXPECT_NE(ret, HDF_SUCCESS);
2217 ret = g_wifi->destroyFeature((struct IWiFiBaseFeature *)apFeature);
2218 EXPECT_EQ(ret, HDF_SUCCESS);
2219 }
2220
2221 /**
2222 * @tc.name: GetPowerModeTest_003
2223 * @tc.desc: Wifi hdi get power mode function test_03
2224 * @tc.type: FUNC
2225 */
2226 HWTEST_F(WifiHalTest, SUB_Driver_Wlan_SgetPowerMode_0300, Function | MediumTest | Level1)
2227 {
2228 int32_t ret;
2229 struct IWiFiAp *apFeature = nullptr;
2230 const char *ifName = "eth0";
2231 uint8_t mode;
2232
2233 ret = g_wifi->createFeature(PROTOCOL_80211_IFTYPE_AP, (struct IWiFiBaseFeature **)&apFeature);
2234 EXPECT_EQ(ret, HDF_SUCCESS);
2235 EXPECT_NE(apFeature, nullptr);
2236 printf("GetPowerMode001: ifname is %s\n", apFeature->baseFeature.ifName);
2237 ret = g_wifi->getPowerMode(ifName, &mode);
2238 EXPECT_NE(ret, HDF_SUCCESS);
2239 ret = g_wifi->destroyFeature((struct IWiFiBaseFeature *)apFeature);
2240 EXPECT_EQ(ret, HDF_SUCCESS);
2241 }
2242
2243 /**
2244 * @tc.name: GetPowerModeTest_004
2245 * @tc.desc: Wifi hdi get power mode function test_04
2246 * @tc.type: FUNC
2247 */
2248 HWTEST_F(WifiHalTest, SUB_Driver_Wlan_SgetPowerMode_0400, Function | MediumTest | Level1)
2249 {
2250 int32_t ret;
2251 struct IWiFiAp *apFeature = nullptr;
2252
2253 ret = g_wifi->createFeature(PROTOCOL_80211_IFTYPE_AP, (struct IWiFiBaseFeature **)&apFeature);
2254 EXPECT_EQ(ret, HDF_SUCCESS);
2255 EXPECT_NE(apFeature, nullptr);
2256 printf("GetPowerMode001: ifname is %s\n", apFeature->baseFeature.ifName);
2257 ret = g_wifi->getPowerMode(apFeature->baseFeature.ifName, nullptr);
2258 EXPECT_NE(ret, HDF_SUCCESS);
2259 ret = g_wifi->destroyFeature((struct IWiFiBaseFeature *)apFeature);
2260 EXPECT_EQ(ret, HDF_SUCCESS);
2261 }
2262
2263 /**
2264 * @tc.name: GetPowerModeTest_005
2265 * @tc.desc: Wifi hdi get power mode function test_05
2266 * @tc.type: FUNC
2267 */
2268 HWTEST_F(WifiHalTest, SUB_Driver_Wlan_SgetPowerMode_0500, Function | MediumTest | Level1)
2269 {
2270 int32_t ret;
2271 struct IWiFiAp *apFeature = nullptr;
2272 uint8_t mode;
2273
2274 ret = g_wifi->createFeature(PROTOCOL_80211_IFTYPE_AP, (struct IWiFiBaseFeature **)&apFeature);
2275 EXPECT_EQ(ret, HDF_SUCCESS);
2276 EXPECT_NE(apFeature, nullptr);
2277 printf("GetPowerMode001: ifname is %s\n", apFeature->baseFeature.ifName);
2278 ret = g_wifi->getPowerMode(apFeature->baseFeature.ifName, &mode);
2279 printf("%s: ret = %d\n", __func__, ret);
2280 bool flag = (ret == HDF_SUCCESS || ret == HDF_ERR_NOT_SUPPORT);
2281 ASSERT_TRUE(flag);
2282 ret = g_wifi->destroyFeature((struct IWiFiBaseFeature *)apFeature);
2283 EXPECT_EQ(ret, HDF_SUCCESS);
2284 }
2285
2286 /**
2287 * @tc.name: GetPowerModeTest_006
2288 * @tc.desc: Wifi hdi get power mode function test_06
2289 * @tc.type: FUNC
2290 */
2291 HWTEST_F(WifiHalTest, SUB_Driver_Wlan_SgetPowerMode_0600, Function | MediumTest | Level1)
2292 {
2293 int32_t ret;
2294 struct IWiFiSta *staFeature = nullptr;
2295 uint8_t mode;
2296
2297 ret = g_wifi->createFeature(PROTOCOL_80211_IFTYPE_STATION, (struct IWiFiBaseFeature **)&staFeature);
2298 EXPECT_EQ(ret, HDF_SUCCESS);
2299 EXPECT_NE(staFeature, nullptr);
2300 printf("GetPowerMode002: ifname is %s\n", staFeature->baseFeature.ifName);
2301 ret = g_wifi->getPowerMode(nullptr, &mode);
2302 EXPECT_NE(ret, HDF_SUCCESS);
2303 ret = g_wifi->destroyFeature((struct IWiFiBaseFeature *)staFeature);
2304 EXPECT_EQ(ret, HDF_SUCCESS);
2305 }
2306
2307 /**
2308 * @tc.name: GetPowerModeTest_007
2309 * @tc.desc: Wifi hdi get power mode function test_07
2310 * @tc.type: FUNC
2311 */
2312 HWTEST_F(WifiHalTest, SUB_Driver_Wlan_SgetPowerMode_0700, Function | MediumTest | Level1)
2313 {
2314 int32_t ret;
2315 struct IWiFiSta *staFeature = nullptr;
2316 const char *ifName = "eth0";
2317
2318 ret = g_wifi->createFeature(PROTOCOL_80211_IFTYPE_STATION, (struct IWiFiBaseFeature **)&staFeature);
2319 EXPECT_EQ(ret, HDF_SUCCESS);
2320 EXPECT_NE(staFeature, nullptr);
2321 printf("GetPowerMode002: ifname is %s\n", staFeature->baseFeature.ifName);
2322 ret = g_wifi->getPowerMode(ifName, nullptr);
2323 EXPECT_NE(ret, HDF_SUCCESS);
2324 ret = g_wifi->destroyFeature((struct IWiFiBaseFeature *)staFeature);
2325 EXPECT_EQ(ret, HDF_SUCCESS);
2326 }
2327
2328 /**
2329 * @tc.name: GetPowerModeTest_008
2330 * @tc.desc: Wifi hdi get power mode function test_08
2331 * @tc.type: FUNC
2332 */
2333 HWTEST_F(WifiHalTest, SUB_Driver_Wlan_SgetPowerMode_0800, Function | MediumTest | Level1)
2334 {
2335 int32_t ret;
2336 struct IWiFiSta *staFeature = nullptr;
2337 const char *ifName = "eth0";
2338 uint8_t mode;
2339
2340 ret = g_wifi->createFeature(PROTOCOL_80211_IFTYPE_STATION, (struct IWiFiBaseFeature **)&staFeature);
2341 EXPECT_EQ(ret, HDF_SUCCESS);
2342 EXPECT_NE(staFeature, nullptr);
2343 printf("GetPowerMode002: ifname is %s\n", staFeature->baseFeature.ifName);
2344 ret = g_wifi->getPowerMode(ifName, &mode);
2345 EXPECT_NE(ret, HDF_SUCCESS);
2346 ret = g_wifi->destroyFeature((struct IWiFiBaseFeature *)staFeature);
2347 EXPECT_EQ(ret, HDF_SUCCESS);
2348 }
2349
2350 /**
2351 * @tc.name: GetPowerModeTest_009
2352 * @tc.desc: Wifi hdi get power mode function test_09
2353 * @tc.type: FUNC
2354 */
2355 HWTEST_F(WifiHalTest, SUB_Driver_Wlan_SgetPowerMode_0900, Function | MediumTest | Level1)
2356 {
2357 int32_t ret;
2358 struct IWiFiSta *staFeature = nullptr;
2359
2360 ret = g_wifi->createFeature(PROTOCOL_80211_IFTYPE_STATION, (struct IWiFiBaseFeature **)&staFeature);
2361 EXPECT_EQ(ret, HDF_SUCCESS);
2362 EXPECT_NE(staFeature, nullptr);
2363 printf("GetPowerMode002: ifname is %s\n", staFeature->baseFeature.ifName);
2364 ret = g_wifi->getPowerMode(staFeature->baseFeature.ifName, nullptr);
2365 EXPECT_NE(ret, HDF_SUCCESS);
2366 ret = g_wifi->destroyFeature((struct IWiFiBaseFeature *)staFeature);
2367 EXPECT_EQ(ret, HDF_SUCCESS);
2368 }
2369
2370 /**
2371 * @tc.name: GetPowerModeTest_010
2372 * @tc.desc: Wifi hdi get power mode function test_10
2373 * @tc.type: FUNC
2374 */
2375 HWTEST_F(WifiHalTest, SUB_Driver_Wlan_SgetPowerMode_1000, Function | MediumTest | Level1)
2376 {
2377 int32_t ret;
2378 struct IWiFiSta *staFeature = nullptr;
2379 uint8_t mode;
2380
2381 ret = g_wifi->createFeature(PROTOCOL_80211_IFTYPE_STATION, (struct IWiFiBaseFeature **)&staFeature);
2382 EXPECT_EQ(ret, HDF_SUCCESS);
2383 EXPECT_NE(staFeature, nullptr);
2384 printf("GetPowerMode002: ifname is %s\n", staFeature->baseFeature.ifName);
2385 ret = g_wifi->getPowerMode(staFeature->baseFeature.ifName, &mode);
2386 printf("%s: ret = %d\n", __func__, ret);
2387 bool flag = (ret == HDF_SUCCESS || ret == HDF_ERR_NOT_SUPPORT);
2388 ASSERT_TRUE(flag);
2389 ret = g_wifi->destroyFeature((struct IWiFiBaseFeature *)staFeature);
2390 EXPECT_EQ(ret, HDF_SUCCESS);
2391 }
2392
2393 /**
2394 * @tc.name: SetPowerModeTest_001
2395 * @tc.desc: Wifi hdi set power mode function test_01
2396 * @tc.type: FUNC
2397 */
2398 HWTEST_F(WifiHalTest, SUB_Driver_Wlan_SgetPowerMode_1100, Function | MediumTest | Level1)
2399 {
2400 int32_t ret;
2401 struct IWiFiAp *apFeature = nullptr;
2402 const char *ifName = "eth0";
2403
2404 ret = g_wifi->createFeature(PROTOCOL_80211_IFTYPE_AP, (struct IWiFiBaseFeature **)&apFeature);
2405 EXPECT_EQ(ret, HDF_SUCCESS);
2406 EXPECT_NE(apFeature, nullptr);
2407 printf("SetPowerMode001: ifname is %s\n", apFeature->baseFeature.ifName);
2408 ret = g_wifi->setPowerMode(nullptr, WIFI_POWER_MODE_NUM);
2409 EXPECT_NE(ret, HDF_SUCCESS);
2410 ret = g_wifi->setPowerMode(ifName, WIFI_POWER_MODE_NUM);
2411 EXPECT_NE(ret, HDF_SUCCESS);
2412 ret = g_wifi->setPowerMode(apFeature->baseFeature.ifName, WIFI_POWER_MODE_NUM);
2413 EXPECT_NE(ret, HDF_SUCCESS);
2414 ret = g_wifi->destroyFeature((struct IWiFiBaseFeature *)apFeature);
2415 EXPECT_EQ(ret, HDF_SUCCESS);
2416 }
2417
2418 /**
2419 * @tc.name: SetPowerModeTest_002
2420 * @tc.desc: Wifi hdi set power mode function test_02
2421 * @tc.type: FUNC
2422 */
2423 HWTEST_F(WifiHalTest, SUB_Driver_Wlan_SgetPowerMode_1200, Function | MediumTest | Level1)
2424 {
2425 int32_t ret;
2426 struct IWiFiAp *apFeature = nullptr;
2427 const char *ifName = "eth0";
2428
2429 ret = g_wifi->createFeature(PROTOCOL_80211_IFTYPE_AP, (struct IWiFiBaseFeature **)&apFeature);
2430 EXPECT_EQ(ret, HDF_SUCCESS);
2431 EXPECT_NE(apFeature, nullptr);
2432 printf("SetPowerMode002: ifname is %s\n", apFeature->baseFeature.ifName);
2433 ret = g_wifi->setPowerMode(nullptr, WIFI_POWER_MODE_SLEEPING);
2434 EXPECT_NE(ret, HDF_SUCCESS);
2435 ret = g_wifi->setPowerMode(ifName, WIFI_POWER_MODE_SLEEPING);
2436 EXPECT_NE(ret, HDF_SUCCESS);
2437 ret = g_wifi->setPowerMode(apFeature->baseFeature.ifName, WIFI_POWER_MODE_SLEEPING);
2438 bool flag = (ret == HDF_SUCCESS || ret == HDF_ERR_NOT_SUPPORT);
2439 ASSERT_TRUE(flag);
2440 ret = g_wifi->destroyFeature((struct IWiFiBaseFeature *)apFeature);
2441 EXPECT_EQ(ret, HDF_SUCCESS);
2442 }
2443
2444 /**
2445 * @tc.name: SetPowerModeTest_003
2446 * @tc.desc: Wifi hdi set power mode function test_03
2447 * @tc.type: FUNC
2448 */
2449 HWTEST_F(WifiHalTest, SUB_Driver_Wlan_SgetPowerMode_1300, Function | MediumTest | Level1)
2450 {
2451 int32_t ret;
2452 struct IWiFiAp *apFeature = nullptr;
2453 const char *ifName = "eth0";
2454
2455 ret = g_wifi->createFeature(PROTOCOL_80211_IFTYPE_AP, (struct IWiFiBaseFeature **)&apFeature);
2456 EXPECT_EQ(ret, HDF_SUCCESS);
2457 EXPECT_NE(apFeature, nullptr);
2458 printf("SetPowerMode003: ifname is %s\n", apFeature->baseFeature.ifName);
2459 ret = g_wifi->setPowerMode(nullptr, WIFI_POWER_MODE_GENERAL);
2460 EXPECT_NE(ret, HDF_SUCCESS);
2461 ret = g_wifi->setPowerMode(ifName, WIFI_POWER_MODE_GENERAL);
2462 EXPECT_NE(ret, HDF_SUCCESS);
2463 ret = g_wifi->setPowerMode(apFeature->baseFeature.ifName, WIFI_POWER_MODE_GENERAL);
2464 bool flag = (ret == HDF_SUCCESS || ret == HDF_ERR_NOT_SUPPORT);
2465 ASSERT_TRUE(flag);
2466 ret = g_wifi->destroyFeature((struct IWiFiBaseFeature *)apFeature);
2467 EXPECT_EQ(ret, HDF_SUCCESS);
2468 }
2469
2470 /**
2471 * @tc.name: SetPowerModeTest_004
2472 * @tc.desc: Wifi hdi set power mode function test_04
2473 * @tc.type: FUNC
2474 */
2475 HWTEST_F(WifiHalTest, SUB_Driver_Wlan_SgetPowerMode_1400, Function | MediumTest | Level1)
2476 {
2477 int32_t ret;
2478 struct IWiFiAp *apFeature = nullptr;
2479 const char *ifName = "eth0";
2480
2481 ret = g_wifi->createFeature(PROTOCOL_80211_IFTYPE_AP, (struct IWiFiBaseFeature **)&apFeature);
2482 EXPECT_EQ(ret, HDF_SUCCESS);
2483 EXPECT_NE(apFeature, nullptr);
2484 printf("SetPowerMode004: ifname is %s\n", apFeature->baseFeature.ifName);
2485 ret = g_wifi->setPowerMode(nullptr, WIFI_POWER_MODE_THROUGH_WALL);
2486 EXPECT_NE(ret, HDF_SUCCESS);
2487 ret = g_wifi->setPowerMode(ifName, WIFI_POWER_MODE_THROUGH_WALL);
2488 EXPECT_NE(ret, HDF_SUCCESS);
2489 ret = g_wifi->setPowerMode(apFeature->baseFeature.ifName, WIFI_POWER_MODE_THROUGH_WALL);
2490 bool flag = (ret == HDF_SUCCESS || ret == HDF_ERR_NOT_SUPPORT);
2491 ASSERT_TRUE(flag);
2492 ret = g_wifi->destroyFeature((struct IWiFiBaseFeature *)apFeature);
2493 EXPECT_EQ(ret, HDF_SUCCESS);
2494 }
2495
2496 /**
2497 * @tc.name: SetPowerModeTest_005
2498 * @tc.desc: Wifi hdi set power mode function test_05
2499 * @tc.type: FUNC
2500 */
2501 HWTEST_F(WifiHalTest, SUB_Driver_Wlan_SgetPowerMode_1500, Function | MediumTest | Level1)
2502 {
2503 int32_t ret;
2504 struct IWiFiSta *staFeature = nullptr;
2505 const char *ifName = "eth0";
2506
2507 ret = g_wifi->createFeature(PROTOCOL_80211_IFTYPE_STATION, (struct IWiFiBaseFeature **)&staFeature);
2508 EXPECT_EQ(ret, HDF_SUCCESS);
2509 EXPECT_NE(staFeature, nullptr);
2510 printf("SetPowerMode005: ifname is %s\n", staFeature->baseFeature.ifName);
2511 ret = g_wifi->setPowerMode(nullptr, WIFI_POWER_MODE_NUM);
2512 EXPECT_NE(ret, HDF_SUCCESS);
2513 ret = g_wifi->setPowerMode(ifName, WIFI_POWER_MODE_NUM);
2514 EXPECT_NE(ret, HDF_SUCCESS);
2515 ret = g_wifi->setPowerMode(staFeature->baseFeature.ifName, WIFI_POWER_MODE_NUM);
2516 EXPECT_NE(ret, HDF_SUCCESS);
2517 ret = g_wifi->destroyFeature((struct IWiFiBaseFeature *)staFeature);
2518 EXPECT_EQ(ret, HDF_SUCCESS);
2519 }
2520
2521 /**
2522 * @tc.name: SetPowerModeTest_006
2523 * @tc.desc: Wifi hdi set power mode function test_06
2524 * @tc.type: FUNC
2525 */
2526 HWTEST_F(WifiHalTest, SUB_Driver_Wlan_SgetPowerMode_1600, Function | MediumTest | Level1)
2527 {
2528 int32_t ret;
2529 struct IWiFiSta *staFeature = nullptr;
2530 const char *ifName = "eth0";
2531
2532 ret = g_wifi->createFeature(PROTOCOL_80211_IFTYPE_STATION, (struct IWiFiBaseFeature **)&staFeature);
2533 EXPECT_EQ(ret, HDF_SUCCESS);
2534 EXPECT_NE(staFeature, nullptr);
2535 printf("SetPowerMode005: ifname is %s\n", staFeature->baseFeature.ifName);
2536 ret = g_wifi->setPowerMode(nullptr, WIFI_POWER_MODE_SLEEPING);
2537 EXPECT_NE(ret, HDF_SUCCESS);
2538 ret = g_wifi->setPowerMode(ifName, WIFI_POWER_MODE_SLEEPING);
2539 EXPECT_NE(ret, HDF_SUCCESS);
2540 ret = g_wifi->setPowerMode(staFeature->baseFeature.ifName, WIFI_POWER_MODE_SLEEPING);
2541 bool flag = (ret == HDF_SUCCESS || ret == HDF_ERR_NOT_SUPPORT);
2542 ASSERT_TRUE(flag);
2543 ret = g_wifi->destroyFeature((struct IWiFiBaseFeature *)staFeature);
2544 EXPECT_EQ(ret, HDF_SUCCESS);
2545 }
2546
2547 /**
2548 * @tc.name: SetPowerModeTest_007
2549 * @tc.desc: Wifi hdi set power mode function test_07
2550 * @tc.type: FUNC
2551 */
2552 HWTEST_F(WifiHalTest, SUB_Driver_Wlan_SgetPowerMode_1700, Function | MediumTest | Level1)
2553 {
2554 int32_t ret;
2555 struct IWiFiSta *staFeature = nullptr;
2556 const char *ifName = "eth0";
2557
2558 ret = g_wifi->createFeature(PROTOCOL_80211_IFTYPE_STATION, (struct IWiFiBaseFeature **)&staFeature);
2559 EXPECT_EQ(ret, HDF_SUCCESS);
2560 EXPECT_NE(staFeature, nullptr);
2561 printf("SetPowerMode005: ifname is %s\n", staFeature->baseFeature.ifName);
2562 ret = g_wifi->setPowerMode(nullptr, WIFI_POWER_MODE_GENERAL);
2563 EXPECT_NE(ret, HDF_SUCCESS);
2564 ret = g_wifi->setPowerMode(ifName, WIFI_POWER_MODE_GENERAL);
2565 EXPECT_NE(ret, HDF_SUCCESS);
2566 ret = g_wifi->setPowerMode(staFeature->baseFeature.ifName, WIFI_POWER_MODE_GENERAL);
2567 bool flag = (ret == HDF_SUCCESS || ret == HDF_ERR_NOT_SUPPORT);
2568 ASSERT_TRUE(flag);
2569 ret = g_wifi->destroyFeature((struct IWiFiBaseFeature *)staFeature);
2570 EXPECT_EQ(ret, HDF_SUCCESS);
2571 }
2572
2573 /**
2574 * @tc.name: SetPowerModeTest_008
2575 * @tc.desc: Wifi hdi set power mode function test_08
2576 * @tc.type: FUNC
2577 */
2578 HWTEST_F(WifiHalTest, SUB_Driver_Wlan_SgetPowerMode_1800, Function | MediumTest | Level1)
2579 {
2580 int32_t ret;
2581 struct IWiFiSta *staFeature = nullptr;
2582 const char *ifName = "eth0";
2583
2584 ret = g_wifi->createFeature(PROTOCOL_80211_IFTYPE_STATION, (struct IWiFiBaseFeature **)&staFeature);
2585 EXPECT_EQ(ret, HDF_SUCCESS);
2586 EXPECT_NE(staFeature, nullptr);
2587 printf("SetPowerMode005: ifname is %s\n", staFeature->baseFeature.ifName);
2588 ret = g_wifi->setPowerMode(nullptr, WIFI_POWER_MODE_THROUGH_WALL);
2589 EXPECT_NE(ret, HDF_SUCCESS);
2590 ret = g_wifi->setPowerMode(ifName, WIFI_POWER_MODE_THROUGH_WALL);
2591 EXPECT_NE(ret, HDF_SUCCESS);
2592 ret = g_wifi->setPowerMode(staFeature->baseFeature.ifName, WIFI_POWER_MODE_THROUGH_WALL);
2593 bool flag = (ret == HDF_SUCCESS || ret == HDF_ERR_NOT_SUPPORT);
2594 ASSERT_TRUE(flag);
2595 ret = g_wifi->destroyFeature((struct IWiFiBaseFeature *)staFeature);
2596 EXPECT_EQ(ret, HDF_SUCCESS);
2597 }
2598
2599 /**
2600 * @tc.name: WifiHalGetSupportCombo001
2601 * @tc.desc: Get supported combo_01
2602 * @tc.type: FUNC
2603 */
2604 HWTEST_F(WifiHalTest, SUB_Driver_Wlan_WifiHdi_1200, Function | MediumTest | Level1)
2605 {
2606 int ret;
2607 uint8_t support[PROTOCOL_80211_IFTYPE_NUM + 1] = {0};
2608
2609 ret = g_wifi->getSupportFeature(support, PROTOCOL_80211_IFTYPE_NUM + 1);
2610 EXPECT_EQ(HDF_SUCCESS, ret);
2611 ret = g_wifi->getSupportCombo(nullptr, 0);
2612 EXPECT_NE(HDF_SUCCESS, ret);
2613 }
2614
2615 /**
2616 * @tc.name: WifiHalGetSupportCombo002
2617 * @tc.desc: Get supported combo_02
2618 * @tc.type: FUNC
2619 */
2620 HWTEST_F(WifiHalTest, SUB_Driver_Wlan_WifiHdi_1250, Function | MediumTest | Level1)
2621 {
2622 int ret;
2623 uint8_t support[PROTOCOL_80211_IFTYPE_NUM + 1] = {0};
2624 uint64_t combo[DEFAULT_COMBO_SIZE] = {0};
2625
2626 ret = g_wifi->getSupportFeature(support, PROTOCOL_80211_IFTYPE_NUM + 1);
2627 EXPECT_EQ(HDF_SUCCESS, ret);
2628 ret = g_wifi->getSupportCombo(combo, DEFAULT_COMBO_SIZE);
2629 if (support[PROTOCOL_80211_IFTYPE_NUM] == 0) {
2630 EXPECT_EQ(HDF_ERR_NOT_SUPPORT, ret);
2631 } else {
2632 EXPECT_EQ(ret, HDF_SUCCESS);
2633 }
2634 }
2635
2636 /**
2637 * @tc.name: SetProjectionScreenParam001
2638 * @tc.desc: wifi hal config projection screen function test_01
2639 * @tc.type: FUNC
2640 */
2641 HWTEST_F(WifiHalTest, SUB_Driver_Wlan_WifiHdi_2700, Function | MediumTest | Level1)
2642 {
2643 int32_t ret;
2644 struct IWiFiAp *apFeature = nullptr;
2645 ProjectionScreenParam *param;
2646
2647 param = (ProjectionScreenParam *)OsalMemCalloc(sizeof(ProjectionScreenParam) + TEST_PARAM_BUF_SIZE);
2648 EXPECT_NE(nullptr, param);
2649 param->cmdId = TEST_CMD;
2650 param->bufLen = 1;
2651 param->buf[0] = 0;
2652 ret = g_wifi->createFeature(PROTOCOL_80211_IFTYPE_AP, (struct IWiFiBaseFeature **)&apFeature);
2653 EXPECT_EQ(ret, HDF_SUCCESS);
2654 ret = g_wifi->setProjectionScreenParam(nullptr, nullptr);
2655 EXPECT_NE(ret, HDF_SUCCESS);
2656 ret = g_wifi->destroyFeature((struct IWiFiBaseFeature *)apFeature);
2657 EXPECT_EQ(ret, HDF_SUCCESS);
2658 OsalMemFree(param);
2659 }
2660
2661 /**
2662 * @tc.name: SetProjectionScreenParam002
2663 * @tc.desc: wifi hal config projection screen function test_02
2664 * @tc.type: FUNC
2665 */
2666 HWTEST_F(WifiHalTest, SUB_Driver_Wlan_WifiHdi_2800, Function | MediumTest | Level1)
2667 {
2668 int32_t ret;
2669 struct IWiFiAp *apFeature = nullptr;
2670 ProjectionScreenParam *param;
2671
2672 param = (ProjectionScreenParam *)OsalMemCalloc(sizeof(ProjectionScreenParam) + TEST_PARAM_BUF_SIZE);
2673 EXPECT_NE(nullptr, param);
2674 param->cmdId = TEST_CMD;
2675 param->bufLen = 1;
2676 param->buf[0] = 0;
2677 ret = g_wifi->createFeature(PROTOCOL_80211_IFTYPE_AP, (struct IWiFiBaseFeature **)&apFeature);
2678 EXPECT_EQ(ret, HDF_SUCCESS);
2679 ret = g_wifi->setProjectionScreenParam(apFeature->baseFeature.ifName, nullptr);
2680 EXPECT_NE(ret, HDF_SUCCESS);
2681 ret = g_wifi->destroyFeature((struct IWiFiBaseFeature *)apFeature);
2682 EXPECT_EQ(ret, HDF_SUCCESS);
2683 OsalMemFree(param);
2684 }
2685
2686 /**
2687 * @tc.name: SetProjectionScreenParam003
2688 * @tc.desc: wifi hal config projection screen function test_03
2689 * @tc.type: FUNC
2690 */
2691 HWTEST_F(WifiHalTest, SUB_Driver_Wlan_WifiHdi_2900, Function | MediumTest | Level1)
2692 {
2693 int32_t ret;
2694 struct IWiFiAp *apFeature = nullptr;
2695 ProjectionScreenParam *param;
2696
2697 param = (ProjectionScreenParam *)OsalMemCalloc(sizeof(ProjectionScreenParam) + TEST_PARAM_BUF_SIZE);
2698 EXPECT_NE(nullptr, param);
2699 param->cmdId = TEST_CMD;
2700 param->bufLen = 1;
2701 param->buf[0] = 0;
2702 ret = g_wifi->createFeature(PROTOCOL_80211_IFTYPE_AP, (struct IWiFiBaseFeature **)&apFeature);
2703 EXPECT_EQ(ret, HDF_SUCCESS);
2704 ret = g_wifi->setProjectionScreenParam(nullptr, param);
2705 EXPECT_NE(ret, HDF_SUCCESS);
2706 ret = g_wifi->destroyFeature((struct IWiFiBaseFeature *)apFeature);
2707 EXPECT_EQ(ret, HDF_SUCCESS);
2708 OsalMemFree(param);
2709 }
2710
2711 /**
2712 * @tc.name: SetProjectionScreenParam004
2713 * @tc.desc: wifi hal config projection screen function test_04
2714 * @tc.type: FUNC
2715 */
2716 HWTEST_F(WifiHalTest, SUB_Driver_Wlan_WifiHdi_3000, Function | MediumTest | Level1)
2717 {
2718 int32_t ret;
2719 struct IWiFiAp *apFeature = nullptr;
2720 ProjectionScreenParam *param;
2721
2722 param = (ProjectionScreenParam *)OsalMemCalloc(sizeof(ProjectionScreenParam) + TEST_PARAM_BUF_SIZE);
2723 EXPECT_NE(nullptr, param);
2724 param->cmdId = TEST_CMD;
2725 param->bufLen = 1;
2726 param->buf[0] = 0;
2727 ret = g_wifi->createFeature(PROTOCOL_80211_IFTYPE_AP, (struct IWiFiBaseFeature **)&apFeature);
2728 EXPECT_EQ(ret, HDF_SUCCESS);
2729 ret = g_wifi->setProjectionScreenParam(apFeature->baseFeature.ifName, param);
2730 EXPECT_NE(ret, HDF_SUCCESS);
2731
2732 ret = g_wifi->destroyFeature((struct IWiFiBaseFeature *)apFeature);
2733 EXPECT_EQ(ret, HDF_SUCCESS);
2734 OsalMemFree(param);
2735 }
2736
2737 /**
2738 * @tc.name: SetProjectionScreenParam005
2739 * @tc.desc: wifi hal config projection screen function test_05
2740 * @tc.type: FUNC
2741 */
2742 HWTEST_F(WifiHalTest, SUB_Driver_Wlan_WifiHdi_3100, Function | MediumTest | Level1)
2743 {
2744 int32_t ret;
2745 bool flag;
2746 struct IWiFiAp *apFeature = nullptr;
2747 ProjectionScreenParam *param;
2748
2749 param = (ProjectionScreenParam *)OsalMemCalloc(sizeof(ProjectionScreenParam) + TEST_PARAM_BUF_SIZE);
2750 EXPECT_NE(nullptr, param);
2751 param->cmdId = TEST_CMD;
2752 param->bufLen = 1;
2753 param->buf[0] = 0;
2754 ret = g_wifi->createFeature(PROTOCOL_80211_IFTYPE_AP, (struct IWiFiBaseFeature **)&apFeature);
2755 EXPECT_EQ(ret, HDF_SUCCESS);
2756 for (int i = CMD_CLOSE_GO_CAC; i <= CMD_ID_CTRL_ROAM_CHANNEL; i++) {
2757 param->cmdId = i;
2758 ret = g_wifi->setProjectionScreenParam(apFeature->baseFeature.ifName, param);
2759 printf("SetProjectionScreenParam001_%d: ret = %d\n", __LINE__, ret);
2760 flag = (ret == HDF_SUCCESS || ret == HDF_ERR_NOT_SUPPORT);
2761 ASSERT_TRUE(flag);
2762 }
2763 ret = g_wifi->destroyFeature((struct IWiFiBaseFeature *)apFeature);
2764 EXPECT_EQ(ret, HDF_SUCCESS);
2765 OsalMemFree(param);
2766 }
2767
2768 /**
2769 * @tc.name: SetProjectionScreenParam006
2770 * @tc.desc: wifi hal config projection screen function test_06
2771 * @tc.type: FUNC
2772 */
2773 HWTEST_F(WifiHalTest, SUB_Driver_Wlan_WifiHdi_3200, Function | MediumTest | Level1)
2774 {
2775 int32_t ret;
2776 struct IWiFiSta *staFeature = nullptr;
2777 ProjectionScreenParam *param;
2778
2779 param = (ProjectionScreenParam *)OsalMemCalloc(sizeof(ProjectionScreenParam) + TEST_PARAM_BUF_SIZE);
2780 EXPECT_NE(nullptr, param);
2781 param->cmdId = TEST_CMD;
2782 param->bufLen = 1;
2783 param->buf[0] = 0;
2784 ret = g_wifi->createFeature(PROTOCOL_80211_IFTYPE_STATION, (struct IWiFiBaseFeature **)&staFeature);
2785 EXPECT_EQ(ret, HDF_SUCCESS);
2786 ret = g_wifi->setProjectionScreenParam(nullptr, nullptr);
2787 EXPECT_NE(ret, HDF_SUCCESS);
2788 ret = g_wifi->destroyFeature((struct IWiFiBaseFeature *)staFeature);
2789 EXPECT_EQ(ret, HDF_SUCCESS);
2790 OsalMemFree(param);
2791 }
2792
2793 /**
2794 * @tc.name: SetProjectionScreenParam007
2795 * @tc.desc: wifi hal config projection screen function test_07
2796 * @tc.type: FUNC
2797 */
2798 HWTEST_F(WifiHalTest, SUB_Driver_Wlan_WifiHdi_3300, Function | MediumTest | Level1)
2799 {
2800 int32_t ret;
2801 struct IWiFiSta *staFeature = nullptr;
2802 ProjectionScreenParam *param;
2803
2804 param = (ProjectionScreenParam *)OsalMemCalloc(sizeof(ProjectionScreenParam) + TEST_PARAM_BUF_SIZE);
2805 EXPECT_NE(nullptr, param);
2806 param->cmdId = TEST_CMD;
2807 param->bufLen = 1;
2808 param->buf[0] = 0;
2809 ret = g_wifi->createFeature(PROTOCOL_80211_IFTYPE_STATION, (struct IWiFiBaseFeature **)&staFeature);
2810 EXPECT_EQ(ret, HDF_SUCCESS);
2811 ret = g_wifi->setProjectionScreenParam(staFeature->baseFeature.ifName, nullptr);
2812 EXPECT_NE(ret, HDF_SUCCESS);
2813 ret = g_wifi->destroyFeature((struct IWiFiBaseFeature *)staFeature);
2814 EXPECT_EQ(ret, HDF_SUCCESS);
2815 OsalMemFree(param);
2816 }
2817
2818 /**
2819 * @tc.name: SetProjectionScreenParam008
2820 * @tc.desc: wifi hal config projection screen function test_08
2821 * @tc.type: FUNC
2822 */
2823 HWTEST_F(WifiHalTest, SUB_Driver_Wlan_WifiHdi_3400, Function | MediumTest | Level1)
2824 {
2825 int32_t ret;
2826 struct IWiFiSta *staFeature = nullptr;
2827 ProjectionScreenParam *param;
2828
2829 param = (ProjectionScreenParam *)OsalMemCalloc(sizeof(ProjectionScreenParam) + TEST_PARAM_BUF_SIZE);
2830 EXPECT_NE(nullptr, param);
2831 param->cmdId = TEST_CMD;
2832 param->bufLen = 1;
2833 param->buf[0] = 0;
2834 ret = g_wifi->createFeature(PROTOCOL_80211_IFTYPE_STATION, (struct IWiFiBaseFeature **)&staFeature);
2835 EXPECT_EQ(ret, HDF_SUCCESS);
2836 ret = g_wifi->setProjectionScreenParam(nullptr, param);
2837 EXPECT_NE(ret, HDF_SUCCESS);
2838 ret = g_wifi->destroyFeature((struct IWiFiBaseFeature *)staFeature);
2839 EXPECT_EQ(ret, HDF_SUCCESS);
2840 OsalMemFree(param);
2841 }
2842
2843 /**
2844 * @tc.name: SetProjectionScreenParam009
2845 * @tc.desc: wifi hal config projection screen function test_09
2846 * @tc.type: FUNC
2847 */
2848 HWTEST_F(WifiHalTest, SUB_Driver_Wlan_WifiHdi_3500, Function | MediumTest | Level1)
2849 {
2850 int32_t ret;
2851 struct IWiFiSta *staFeature = nullptr;
2852 ProjectionScreenParam *param;
2853
2854 param = (ProjectionScreenParam *)OsalMemCalloc(sizeof(ProjectionScreenParam) + TEST_PARAM_BUF_SIZE);
2855 EXPECT_NE(nullptr, param);
2856 param->cmdId = TEST_CMD;
2857 param->bufLen = 1;
2858 param->buf[0] = 0;
2859 ret = g_wifi->createFeature(PROTOCOL_80211_IFTYPE_STATION, (struct IWiFiBaseFeature **)&staFeature);
2860 EXPECT_EQ(ret, HDF_SUCCESS);
2861 ret = g_wifi->setProjectionScreenParam(staFeature->baseFeature.ifName, param);
2862 EXPECT_NE(ret, HDF_SUCCESS);
2863 ret = g_wifi->destroyFeature((struct IWiFiBaseFeature *)staFeature);
2864 EXPECT_EQ(ret, HDF_SUCCESS);
2865 OsalMemFree(param);
2866 }
2867
2868 /**
2869 * @tc.name: SetProjectionScreenParam010
2870 * @tc.desc: wifi hal config projection screen function test_10
2871 * @tc.type: FUNC
2872 */
2873 HWTEST_F(WifiHalTest, SUB_Driver_Wlan_WifiHdi_3600, Function | MediumTest | Level1)
2874 {
2875 int32_t ret;
2876 bool flag;
2877 struct IWiFiSta *staFeature = nullptr;
2878 ProjectionScreenParam *param;
2879
2880 param = (ProjectionScreenParam *)OsalMemCalloc(sizeof(ProjectionScreenParam) + TEST_PARAM_BUF_SIZE);
2881 EXPECT_NE(nullptr, param);
2882 param->cmdId = TEST_CMD;
2883 param->bufLen = 1;
2884 param->buf[0] = 0;
2885 ret = g_wifi->createFeature(PROTOCOL_80211_IFTYPE_STATION, (struct IWiFiBaseFeature **)&staFeature);
2886 EXPECT_EQ(ret, HDF_SUCCESS);
2887 for (int i = CMD_CLOSE_GO_CAC; i <= CMD_ID_CTRL_ROAM_CHANNEL; i++) {
2888 param->cmdId = i;
2889 ret = g_wifi->setProjectionScreenParam(staFeature->baseFeature.ifName, param);
2890 printf("SetProjectionScreenParam001_%d: ret = %d\n", __LINE__, ret);
2891 flag = (ret == HDF_SUCCESS || ret == HDF_ERR_NOT_SUPPORT);
2892 ASSERT_TRUE(flag);
2893 }
2894 ret = g_wifi->destroyFeature((struct IWiFiBaseFeature *)staFeature);
2895 EXPECT_EQ(ret, HDF_SUCCESS);
2896 OsalMemFree(param);
2897 }
2898
2899 /**
2900 * @tc.name: SendCmdIoctl001
2901 * @tc.desc: wifi hal send ioctl command function test_01
2902 * @tc.type: FUNC
2903 */
2904 HWTEST_F(WifiHalTest, SUB_Driver_Wlan_WifiHdi_7400, Function | MediumTest | Level1)
2905 {
2906 int32_t cmdId = 0;
2907 int32_t ret;
2908 struct IWiFiAp *apFeature = nullptr;
2909
2910 ret = g_wifi->createFeature(PROTOCOL_80211_IFTYPE_AP, (struct IWiFiBaseFeature **)&apFeature);
2911 EXPECT_EQ(ret, HDF_SUCCESS);
2912 ret = g_wifi->sendCmdIoctl(nullptr, cmdId, nullptr, TEST_BUF_SIZE);
2913 EXPECT_NE(ret, HDF_SUCCESS);
2914 ret = g_wifi->destroyFeature((struct IWiFiBaseFeature *)apFeature);
2915 EXPECT_EQ(ret, HDF_SUCCESS);
2916 }
2917
2918 /**
2919 * @tc.name: SendCmdIoctl002
2920 * @tc.desc: wifi hal send ioctl command function test_02
2921 * @tc.type: FUNC
2922 */
2923 HWTEST_F(WifiHalTest, SUB_Driver_Wlan_WifiHdi_7500, Function | MediumTest | Level1)
2924 {
2925 int32_t cmdId = 0;
2926 int32_t ret;
2927 struct IWiFiAp *apFeature = nullptr;
2928 const char *ifName = "wlan0";
2929
2930 ret = g_wifi->createFeature(PROTOCOL_80211_IFTYPE_AP, (struct IWiFiBaseFeature **)&apFeature);
2931 EXPECT_EQ(ret, HDF_SUCCESS);
2932 ret = g_wifi->sendCmdIoctl(ifName, cmdId, nullptr, TEST_BUF_SIZE);
2933 EXPECT_NE(ret, HDF_SUCCESS);
2934 ret = g_wifi->destroyFeature((struct IWiFiBaseFeature *)apFeature);
2935 EXPECT_EQ(ret, HDF_SUCCESS);
2936 }
2937
2938 /**
2939 * @tc.name: SendCmdIoctl003
2940 * @tc.desc: wifi hal send ioctl command function test_03
2941 * @tc.type: FUNC
2942 */
2943 HWTEST_F(WifiHalTest, SUB_Driver_Wlan_WifiHdi_7600, Function | MediumTest | Level1)
2944 {
2945 int32_t cmdId = 0;
2946 int32_t ret;
2947 struct IWiFiAp *apFeature = nullptr;
2948 int8_t data[TEST_BUF_SIZE] = {0};
2949
2950 ret = g_wifi->createFeature(PROTOCOL_80211_IFTYPE_AP, (struct IWiFiBaseFeature **)&apFeature);
2951 EXPECT_EQ(ret, HDF_SUCCESS);
2952 ret = g_wifi->sendCmdIoctl(nullptr, cmdId, data, TEST_BUF_SIZE);
2953 EXPECT_NE(ret, HDF_SUCCESS);
2954 ret = g_wifi->destroyFeature((struct IWiFiBaseFeature *)apFeature);
2955 EXPECT_EQ(ret, HDF_SUCCESS);
2956 }
2957
2958 /**
2959 * @tc.name: SendCmdIoctl004
2960 * @tc.desc: wifi hal send ioctl command function test_04
2961 * @tc.type: FUNC
2962 */
2963 HWTEST_F(WifiHalTest, SUB_Driver_Wlan_WifiHdi_7700, Function | MediumTest | Level1)
2964 {
2965 int32_t cmdId = 0;
2966 int32_t ret;
2967 bool flag;
2968 struct IWiFiAp *apFeature = nullptr;
2969 int8_t data[TEST_BUF_SIZE] = {0};
2970 const char *ifName = "wlan0";
2971
2972 ret = g_wifi->createFeature(PROTOCOL_80211_IFTYPE_AP, (struct IWiFiBaseFeature **)&apFeature);
2973 EXPECT_EQ(ret, HDF_SUCCESS);
2974 for (cmdId = CMD_HID2D_MODULE_INIT; cmdId <= CMD_SET_CHAN_ADJUST; cmdId++) {
2975 ret = g_wifi->sendCmdIoctl(ifName, cmdId, data, TEST_BUF_SIZE);
2976 printf("sendCmdIoctl_%d: ret = %d\n", __LINE__, ret);
2977 flag = (ret == HDF_SUCCESS || ret == HDF_ERR_NOT_SUPPORT);
2978 ASSERT_TRUE(flag);
2979 }
2980 ret = g_wifi->destroyFeature((struct IWiFiBaseFeature *)apFeature);
2981 EXPECT_EQ(ret, HDF_SUCCESS);
2982 }
2983
2984 /**
2985 * @tc.name: SendCmdIoctl005
2986 * @tc.desc: wifi hal send ioctl command function test_05
2987 * @tc.type: FUNC
2988 */
2989 HWTEST_F(WifiHalTest, SUB_Driver_Wlan_WifiHdi_7800, Function | MediumTest | Level1)
2990 {
2991 int32_t cmdId = 0;
2992 int32_t ret;
2993 struct IWiFiSta *staFeature = nullptr;
2994
2995 ret = g_wifi->createFeature(PROTOCOL_80211_IFTYPE_STATION, (struct IWiFiBaseFeature **)&staFeature);
2996 EXPECT_EQ(ret, HDF_SUCCESS);
2997 ret = g_wifi->sendCmdIoctl(nullptr, cmdId, nullptr, TEST_BUF_SIZE);
2998 EXPECT_NE(ret, HDF_SUCCESS);
2999 ret = g_wifi->destroyFeature((struct IWiFiBaseFeature *)staFeature);
3000 EXPECT_EQ(ret, HDF_SUCCESS);
3001 }
3002
3003 /**
3004 * @tc.name: SendCmdIoctl006
3005 * @tc.desc: wifi hal send ioctl command function test_06
3006 * @tc.type: FUNC
3007 */
3008 HWTEST_F(WifiHalTest, SUB_Driver_Wlan_WifiHdi_7900, Function | MediumTest | Level1)
3009 {
3010 int32_t cmdId = 0;
3011 int32_t ret;
3012 struct IWiFiSta *staFeature = nullptr;
3013 const char *ifName = "wlan0";
3014
3015 ret = g_wifi->createFeature(PROTOCOL_80211_IFTYPE_STATION, (struct IWiFiBaseFeature **)&staFeature);
3016 EXPECT_EQ(ret, HDF_SUCCESS);
3017 ret = g_wifi->sendCmdIoctl(ifName, cmdId, nullptr, TEST_BUF_SIZE);
3018 EXPECT_NE(ret, HDF_SUCCESS);
3019 ret = g_wifi->destroyFeature((struct IWiFiBaseFeature *)staFeature);
3020 EXPECT_EQ(ret, HDF_SUCCESS);
3021 }
3022
3023 /**
3024 * @tc.name: SendCmdIoctl007
3025 * @tc.desc: wifi hal send ioctl command function test_07
3026 * @tc.type: FUNC
3027 */
3028 HWTEST_F(WifiHalTest, SUB_Driver_Wlan_WifiHdi_8000, Function | MediumTest | Level1)
3029 {
3030 int32_t cmdId = 0;
3031 int32_t ret;
3032 struct IWiFiSta *staFeature = nullptr;
3033 int8_t data[TEST_BUF_SIZE] = {0};
3034
3035 ret = g_wifi->createFeature(PROTOCOL_80211_IFTYPE_STATION, (struct IWiFiBaseFeature **)&staFeature);
3036 EXPECT_EQ(ret, HDF_SUCCESS);
3037 ret = g_wifi->sendCmdIoctl(nullptr, cmdId, data, TEST_BUF_SIZE);
3038 EXPECT_NE(ret, HDF_SUCCESS);
3039
3040 ret = g_wifi->destroyFeature((struct IWiFiBaseFeature *)staFeature);
3041 EXPECT_EQ(ret, HDF_SUCCESS);
3042 }
3043
3044 /**
3045 * @tc.name: SendCmdIoctl008
3046 * @tc.desc: wifi hal send ioctl command function test_08
3047 * @tc.type: FUNC
3048 */
3049 HWTEST_F(WifiHalTest, SUB_Driver_Wlan_WifiHdi_8100, Function | MediumTest | Level1)
3050 {
3051 int32_t cmdId = 0;
3052 int32_t ret;
3053 bool flag;
3054 struct IWiFiSta *staFeature = nullptr;
3055 int8_t data[TEST_BUF_SIZE] = {0};
3056 const char *ifName = "wlan0";
3057
3058 ret = g_wifi->createFeature(PROTOCOL_80211_IFTYPE_STATION, (struct IWiFiBaseFeature **)&staFeature);
3059 EXPECT_EQ(ret, HDF_SUCCESS);
3060 for (cmdId = CMD_HID2D_MODULE_INIT; cmdId <= CMD_SET_CHAN_ADJUST; cmdId++) {
3061 ret = g_wifi->sendCmdIoctl(ifName, cmdId, data, TEST_BUF_SIZE);
3062 printf("sendCmdIoctl_%d: ret = %d\n", __LINE__, ret);
3063 flag = (ret == HDF_SUCCESS || ret == HDF_ERR_NOT_SUPPORT);
3064 ASSERT_TRUE(flag);
3065 }
3066 ret = g_wifi->destroyFeature((struct IWiFiBaseFeature *)staFeature);
3067 EXPECT_EQ(ret, HDF_SUCCESS);
3068 }
3069
3070 /**
3071 * @tc.name: GetStationInfo001
3072 * @tc.desc: Wifi hdi get station information function test_01
3073 * @tc.type: FUNC
3074 */
3075 HWTEST_F(WifiHalTest, SUB_Driver_Wlan_ReportSTAEvent_0100, Function | MediumTest | Level1)
3076 {
3077 int32_t ret;
3078 struct IWiFiAp *apFeature = nullptr;
3079
3080 ret = g_wifi->createFeature(PROTOCOL_80211_IFTYPE_AP, (struct IWiFiBaseFeature **)&apFeature);
3081 EXPECT_EQ(ret, HDF_SUCCESS);
3082 ret = g_wifi->getStationInfo(nullptr, nullptr, nullptr, ETH_ADDR_LEN);
3083 EXPECT_NE(ret, HDF_SUCCESS);
3084 ret = g_wifi->destroyFeature((struct IWiFiBaseFeature *)apFeature);
3085 EXPECT_EQ(ret, HDF_SUCCESS);
3086 }
3087
3088 /**
3089 * @tc.name: GetStationInfo002
3090 * @tc.desc: Wifi hdi get station information function test_02
3091 * @tc.type: FUNC
3092 */
3093 HWTEST_F(WifiHalTest, SUB_Driver_Wlan_ReportSTAEvent_0200, Function | MediumTest | Level1)
3094 {
3095 int32_t ret;
3096 struct IWiFiAp *apFeature = nullptr;
3097 const char *ifName = "wlan0";
3098
3099 ret = g_wifi->createFeature(PROTOCOL_80211_IFTYPE_AP, (struct IWiFiBaseFeature **)&apFeature);
3100 EXPECT_EQ(ret, HDF_SUCCESS);
3101 ret = g_wifi->getStationInfo(ifName, nullptr, nullptr, ETH_ADDR_LEN);
3102 EXPECT_NE(ret, HDF_SUCCESS);
3103 ret = g_wifi->destroyFeature((struct IWiFiBaseFeature *)apFeature);
3104 EXPECT_EQ(ret, HDF_SUCCESS);
3105 }
3106
3107 /**
3108 * @tc.name: GetStationInfo003
3109 * @tc.desc: Wifi hdi get station information function test_03
3110 * @tc.type: FUNC
3111 */
3112 HWTEST_F(WifiHalTest, SUB_Driver_Wlan_ReportSTAEvent_0300, Function | MediumTest | Level1)
3113 {
3114 int32_t ret;
3115 StationInfo info;
3116 struct IWiFiAp *apFeature = nullptr;
3117
3118 ret = g_wifi->createFeature(PROTOCOL_80211_IFTYPE_AP, (struct IWiFiBaseFeature **)&apFeature);
3119 EXPECT_EQ(ret, HDF_SUCCESS);
3120 ret = g_wifi->getStationInfo(nullptr, &info, nullptr, ETH_ADDR_LEN);
3121 EXPECT_NE(ret, HDF_SUCCESS);
3122 ret = g_wifi->destroyFeature((struct IWiFiBaseFeature *)apFeature);
3123 EXPECT_EQ(ret, HDF_SUCCESS);
3124 }
3125
3126 /**
3127 * @tc.name: GetStationInfo004
3128 * @tc.desc: Wifi hdi get station information function test_04
3129 * @tc.type: FUNC
3130 */
3131 HWTEST_F(WifiHalTest, SUB_Driver_Wlan_ReportSTAEvent_0400, Function | MediumTest | Level1)
3132 {
3133 int32_t ret;
3134 uint8_t mac[ETH_ADDR_LEN] = {0};
3135 struct IWiFiAp *apFeature = nullptr;
3136
3137 ret = g_wifi->createFeature(PROTOCOL_80211_IFTYPE_AP, (struct IWiFiBaseFeature **)&apFeature);
3138 EXPECT_EQ(ret, HDF_SUCCESS);
3139 ret = g_wifi->getStationInfo(nullptr, nullptr, mac, ETH_ADDR_LEN);
3140 EXPECT_NE(ret, HDF_SUCCESS);
3141 ret = g_wifi->destroyFeature((struct IWiFiBaseFeature *)apFeature);
3142 EXPECT_EQ(ret, HDF_SUCCESS);
3143 }
3144
3145 /**
3146 * @tc.name: GetStationInfo005
3147 * @tc.desc: Wifi hdi get station information function test_05
3148 * @tc.type: FUNC
3149 */
3150 HWTEST_F(WifiHalTest, SUB_Driver_Wlan_ReportSTAEvent_0500, Function | MediumTest | Level1)
3151 {
3152 int32_t ret;
3153 StationInfo info;
3154 struct IWiFiAp *apFeature = nullptr;
3155 const char *ifName = "wlan0";
3156
3157 ret = g_wifi->createFeature(PROTOCOL_80211_IFTYPE_AP, (struct IWiFiBaseFeature **)&apFeature);
3158 EXPECT_EQ(ret, HDF_SUCCESS);
3159 ret = g_wifi->getStationInfo(ifName, &info, nullptr, ETH_ADDR_LEN);
3160 EXPECT_NE(ret, HDF_SUCCESS);
3161 ret = g_wifi->destroyFeature((struct IWiFiBaseFeature *)apFeature);
3162 EXPECT_EQ(ret, HDF_SUCCESS);
3163 }
3164
3165 /**
3166 * @tc.name: GetStationInfo006
3167 * @tc.desc: Wifi hdi get station information function test_06
3168 * @tc.type: FUNC
3169 */
3170 HWTEST_F(WifiHalTest, SUB_Driver_Wlan_ReportSTAEvent_0600, Function | MediumTest | Level1)
3171 {
3172 int32_t ret;
3173 StationInfo info;
3174 uint8_t mac[ETH_ADDR_LEN] = {0};
3175 struct IWiFiAp *apFeature = nullptr;
3176
3177 ret = g_wifi->createFeature(PROTOCOL_80211_IFTYPE_AP, (struct IWiFiBaseFeature **)&apFeature);
3178 EXPECT_EQ(ret, HDF_SUCCESS);
3179 ret = g_wifi->getStationInfo(nullptr, &info, mac, ETH_ADDR_LEN);
3180 EXPECT_NE(ret, HDF_SUCCESS);
3181 ret = g_wifi->destroyFeature((struct IWiFiBaseFeature *)apFeature);
3182 EXPECT_EQ(ret, HDF_SUCCESS);
3183 }
3184
3185 /**
3186 * @tc.name: GetStationInfo007
3187 * @tc.desc: Wifi hdi get station information function test_07
3188 * @tc.type: FUNC
3189 */
3190 HWTEST_F(WifiHalTest, SUB_Driver_Wlan_ReportSTAEvent_0700, Function | MediumTest | Level1)
3191 {
3192 int32_t ret;
3193 uint8_t mac[ETH_ADDR_LEN] = {0};
3194 struct IWiFiAp *apFeature = nullptr;
3195 const char *ifName = "wlan0";
3196
3197 ret = g_wifi->createFeature(PROTOCOL_80211_IFTYPE_AP, (struct IWiFiBaseFeature **)&apFeature);
3198 EXPECT_EQ(ret, HDF_SUCCESS);
3199 ret = g_wifi->getStationInfo(ifName, nullptr, mac, ETH_ADDR_LEN);
3200 EXPECT_NE(ret, HDF_SUCCESS);
3201 ret = g_wifi->destroyFeature((struct IWiFiBaseFeature *)apFeature);
3202 EXPECT_EQ(ret, HDF_SUCCESS);
3203 }
3204
3205 /**
3206 * @tc.name: GetStationInfo008
3207 * @tc.desc: Wifi hdi get station information function test_08
3208 * @tc.type: FUNC
3209 */
3210 HWTEST_F(WifiHalTest, SUB_Driver_Wlan_ReportSTAEvent_0800, Function | MediumTest | Level1)
3211 {
3212 int32_t ret;
3213 StationInfo info;
3214 bool flag;
3215 uint8_t mac[ETH_ADDR_LEN] = {0};
3216 struct IWiFiAp *apFeature = nullptr;
3217 const char *ifName = "wlan0";
3218
3219 ret = g_wifi->createFeature(PROTOCOL_80211_IFTYPE_AP, (struct IWiFiBaseFeature **)&apFeature);
3220 EXPECT_EQ(ret, HDF_SUCCESS);
3221 ret = g_wifi->getStationInfo(ifName, &info, mac, ETH_ADDR_LEN);
3222 flag = (ret == HDF_SUCCESS || ret == HDF_ERR_NOT_SUPPORT);
3223 ASSERT_TRUE(flag);
3224 ret = g_wifi->destroyFeature((struct IWiFiBaseFeature *)apFeature);
3225 EXPECT_EQ(ret, HDF_SUCCESS);
3226 }
3227
3228 /**
3229 * @tc.name: GetStationInfo009
3230 * @tc.desc: Wifi hdi get station information function test_09
3231 * @tc.type: FUNC
3232 */
3233 HWTEST_F(WifiHalTest, SUB_Driver_Wlan_ReportSTAEvent_0900, Function | MediumTest | Level1)
3234 {
3235 int32_t ret;
3236 struct IWiFiSta *staFeature = nullptr;
3237
3238 ret = g_wifi->createFeature(PROTOCOL_80211_IFTYPE_AP, (struct IWiFiBaseFeature **)&staFeature);
3239 EXPECT_EQ(ret, HDF_SUCCESS);
3240 ret = g_wifi->getStationInfo(nullptr, nullptr, nullptr, ETH_ADDR_LEN);
3241 EXPECT_NE(ret, HDF_SUCCESS);
3242 ret = g_wifi->destroyFeature((struct IWiFiBaseFeature *)staFeature);
3243 EXPECT_EQ(ret, HDF_SUCCESS);
3244 }
3245
3246 /**
3247 * @tc.name: GetStationInfo010
3248 * @tc.desc: Wifi hdi get station information function test_10
3249 * @tc.type: FUNC
3250 */
3251 HWTEST_F(WifiHalTest, SUB_Driver_Wlan_ReportSTAEvent_1000, Function | MediumTest | Level1)
3252 {
3253 int32_t ret;
3254 struct IWiFiSta *staFeature = nullptr;
3255 const char *ifName = "wlan0";
3256
3257 ret = g_wifi->createFeature(PROTOCOL_80211_IFTYPE_AP, (struct IWiFiBaseFeature **)&staFeature);
3258 EXPECT_EQ(ret, HDF_SUCCESS);
3259 ret = g_wifi->getStationInfo(ifName, nullptr, nullptr, ETH_ADDR_LEN);
3260 EXPECT_NE(ret, HDF_SUCCESS);
3261 ret = g_wifi->destroyFeature((struct IWiFiBaseFeature *)staFeature);
3262 EXPECT_EQ(ret, HDF_SUCCESS);
3263 }
3264
3265 /**
3266 * @tc.name: GetStationInfo011
3267 * @tc.desc: Wifi hdi get station information function test_11
3268 * @tc.type: FUNC
3269 */
3270 HWTEST_F(WifiHalTest, SUB_Driver_Wlan_ReportSTAEvent_1100, Function | MediumTest | Level1)
3271 {
3272 int32_t ret;
3273 StationInfo info;
3274 struct IWiFiSta *staFeature = nullptr;
3275
3276 ret = g_wifi->createFeature(PROTOCOL_80211_IFTYPE_AP, (struct IWiFiBaseFeature **)&staFeature);
3277 EXPECT_EQ(ret, HDF_SUCCESS);
3278 ret = g_wifi->getStationInfo(nullptr, &info, nullptr, ETH_ADDR_LEN);
3279 EXPECT_NE(ret, HDF_SUCCESS);
3280 ret = g_wifi->destroyFeature((struct IWiFiBaseFeature *)staFeature);
3281 EXPECT_EQ(ret, HDF_SUCCESS);
3282 }
3283
3284 /**
3285 * @tc.name: GetStationInfo012
3286 * @tc.desc: Wifi hdi get station information function test_12
3287 * @tc.type: FUNC
3288 */
3289 HWTEST_F(WifiHalTest, SUB_Driver_Wlan_ReportSTAEvent_1200, Function | MediumTest | Level1)
3290 {
3291 int32_t ret;
3292 uint8_t mac[ETH_ADDR_LEN] = {0};
3293 struct IWiFiSta *staFeature = nullptr;
3294
3295 ret = g_wifi->createFeature(PROTOCOL_80211_IFTYPE_AP, (struct IWiFiBaseFeature **)&staFeature);
3296 EXPECT_EQ(ret, HDF_SUCCESS);
3297 ret = g_wifi->getStationInfo(nullptr, nullptr, mac, ETH_ADDR_LEN);
3298 EXPECT_NE(ret, HDF_SUCCESS);
3299 ret = g_wifi->destroyFeature((struct IWiFiBaseFeature *)staFeature);
3300 EXPECT_EQ(ret, HDF_SUCCESS);
3301 }
3302
3303 /**
3304 * @tc.name: GetStationInfo013
3305 * @tc.desc: Wifi hdi get station information function test_13
3306 * @tc.type: FUNC
3307 */
3308 HWTEST_F(WifiHalTest, SUB_Driver_Wlan_ReportSTAEvent_1300, Function | MediumTest | Level1)
3309 {
3310 int32_t ret;
3311 StationInfo info;
3312 struct IWiFiSta *staFeature = nullptr;
3313 const char *ifName = "wlan0";
3314
3315 ret = g_wifi->createFeature(PROTOCOL_80211_IFTYPE_AP, (struct IWiFiBaseFeature **)&staFeature);
3316 EXPECT_EQ(ret, HDF_SUCCESS);
3317 ret = g_wifi->getStationInfo(ifName, &info, nullptr, ETH_ADDR_LEN);
3318 EXPECT_NE(ret, HDF_SUCCESS);
3319 ret = g_wifi->destroyFeature((struct IWiFiBaseFeature *)staFeature);
3320 EXPECT_EQ(ret, HDF_SUCCESS);
3321 }
3322
3323 /**
3324 * @tc.name: GetStationInfo014
3325 * @tc.desc: Wifi hdi get station information function test_14
3326 * @tc.type: FUNC
3327 */
3328 HWTEST_F(WifiHalTest, SUB_Driver_Wlan_ReportSTAEvent_1400, Function | MediumTest | Level1)
3329 {
3330 int32_t ret;
3331 StationInfo info;
3332 uint8_t mac[ETH_ADDR_LEN] = {0};
3333 struct IWiFiSta *staFeature = nullptr;
3334
3335 ret = g_wifi->createFeature(PROTOCOL_80211_IFTYPE_AP, (struct IWiFiBaseFeature **)&staFeature);
3336 EXPECT_EQ(ret, HDF_SUCCESS);
3337 ret = g_wifi->getStationInfo(nullptr, &info, mac, ETH_ADDR_LEN);
3338 EXPECT_NE(ret, HDF_SUCCESS);
3339 ret = g_wifi->destroyFeature((struct IWiFiBaseFeature *)staFeature);
3340 EXPECT_EQ(ret, HDF_SUCCESS);
3341 }
3342
3343 /**
3344 * @tc.name: GetStationInfo015
3345 * @tc.desc: Wifi hdi get station information function test_15
3346 * @tc.type: FUNC
3347 */
3348 HWTEST_F(WifiHalTest, SUB_Driver_Wlan_ReportSTAEvent_1500, Function | MediumTest | Level1)
3349 {
3350 int32_t ret;
3351 uint8_t mac[ETH_ADDR_LEN] = {0};
3352 struct IWiFiSta *staFeature = nullptr;
3353 const char *ifName = "wlan0";
3354
3355 ret = g_wifi->createFeature(PROTOCOL_80211_IFTYPE_AP, (struct IWiFiBaseFeature **)&staFeature);
3356 EXPECT_EQ(ret, HDF_SUCCESS);
3357 ret = g_wifi->getStationInfo(ifName, nullptr, mac, ETH_ADDR_LEN);
3358 EXPECT_NE(ret, HDF_SUCCESS);
3359 ret = g_wifi->destroyFeature((struct IWiFiBaseFeature *)staFeature);
3360 EXPECT_EQ(ret, HDF_SUCCESS);
3361 }
3362
3363 /**
3364 * @tc.name: GetStationInfo016
3365 * @tc.desc: Wifi hdi get station information function test_16
3366 * @tc.type: FUNC
3367 */
3368 HWTEST_F(WifiHalTest, SUB_Driver_Wlan_ReportSTAEvent_1600, Function | MediumTest | Level1)
3369 {
3370 int32_t ret;
3371 StationInfo info;
3372 bool flag;
3373 uint8_t mac[ETH_ADDR_LEN] = {0};
3374 struct IWiFiSta *staFeature = nullptr;
3375 const char *ifName = "wlan0";
3376
3377 ret = g_wifi->createFeature(PROTOCOL_80211_IFTYPE_AP, (struct IWiFiBaseFeature **)&staFeature);
3378 EXPECT_EQ(ret, HDF_SUCCESS);
3379 ret = g_wifi->getStationInfo(ifName, &info, mac, ETH_ADDR_LEN);
3380 flag = (ret == HDF_SUCCESS || ret == HDF_ERR_NOT_SUPPORT);
3381 ASSERT_TRUE(flag);
3382 ret = g_wifi->destroyFeature((struct IWiFiBaseFeature *)staFeature);
3383 EXPECT_EQ(ret, HDF_SUCCESS);
3384 }
3385
3386 /**
3387 * @tc.number: WifiHalResetDriver001
3388 * @tc.name: Reset the WiFi driver_01
3389 * @tc.size:Medium
3390 * @tc.level: Level 3
3391 */
3392 HWTEST_F(WifiHalTest, SUB_Driver_Wlan_WifiHdi_2200, Function | MediumTest | Level3)
3393 {
3394 int32_t ret;
3395 struct IWiFiSta *staFeature = nullptr;
3396 uint8_t chipId = 0;
3397 uint8_t chipIdInvalid = 20;
3398
3399 ret = g_wifi->createFeature(PROTOCOL_80211_IFTYPE_STATION, (struct IWiFiBaseFeature **)&staFeature);
3400 EXPECT_EQ(ret, HDF_SUCCESS);
3401 EXPECT_NE(staFeature, nullptr);
3402 ret = staFeature->baseFeature.getChipId((struct IWiFiBaseFeature *)staFeature, &chipId);
3403 ASSERT_TRUE(chipId < MAX_WLAN_DEVICE);
3404 EXPECT_EQ(ret, HDF_SUCCESS);
3405
3406 ret = g_wifi->resetDriver(chipIdInvalid, "wlan0");
3407 EXPECT_EQ(ret, HDF_ERR_INVALID_PARAM);
3408 ret = g_wifi->resetDriver(chipId, nullptr);
3409 EXPECT_EQ(ret, HDF_ERR_INVALID_PARAM);
3410 ret = g_wifi->resetDriver(chipId, staFeature->baseFeature.ifName);
3411 EXPECT_EQ(ret, HDF_SUCCESS);
3412 sleep(RESET_TIME);
3413 ret = g_wifi->destroyFeature((struct IWiFiBaseFeature *)staFeature);
3414 EXPECT_EQ(HDF_SUCCESS, ret);
3415 }
3416
3417 /**
3418 * @tc.number: WifiHalResetDriver002
3419 * @tc.name: Reset the WiFi driver_02
3420 * @tc.size:Medium
3421 * @tc.level: Level 3
3422 */
3423 HWTEST_F(WifiHalTest, SUB_Driver_Wlan_WifiHdi_2300, Function | MediumTest | Level3)
3424 {
3425 int32_t ret;
3426 struct IWiFiAp *apFeature = nullptr;
3427 uint8_t chipId = 0;
3428 uint8_t chipIdInvalid = 20;
3429
3430 ret = g_wifi->createFeature(PROTOCOL_80211_IFTYPE_AP, (struct IWiFiBaseFeature **)&apFeature);
3431 EXPECT_EQ(ret, HDF_SUCCESS);
3432 EXPECT_NE(apFeature, nullptr);
3433 ret = apFeature->baseFeature.getChipId((struct IWiFiBaseFeature *)apFeature, &chipId);
3434 ASSERT_TRUE(chipId < MAX_WLAN_DEVICE);
3435 EXPECT_EQ(ret, HDF_SUCCESS);
3436
3437 ret = g_wifi->resetDriver(chipIdInvalid, "wlan0");
3438 EXPECT_EQ(ret, HDF_ERR_INVALID_PARAM);
3439 ret = g_wifi->resetDriver(chipId, nullptr);
3440 EXPECT_EQ(ret, HDF_ERR_INVALID_PARAM);
3441 ret = g_wifi->resetDriver(chipId, apFeature->baseFeature.ifName);
3442 EXPECT_EQ(ret, HDF_SUCCESS);
3443 sleep(RESET_TIME);
3444 ret = g_wifi->destroyFeature((struct IWiFiBaseFeature *)apFeature);
3445 EXPECT_EQ(HDF_SUCCESS, ret);
3446 }
3447 };