19762338dSopenharmony_ci/*
29762338dSopenharmony_ci * Copyright (c) 2021-2022 Huawei Device Co., Ltd.
39762338dSopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License");
49762338dSopenharmony_ci * you may not use this file except in compliance with the License.
59762338dSopenharmony_ci * You may obtain a copy of the License at
69762338dSopenharmony_ci *
79762338dSopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0
89762338dSopenharmony_ci *
99762338dSopenharmony_ci * Unless required by applicable law or agreed to in writing, software
109762338dSopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS,
119762338dSopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
129762338dSopenharmony_ci * See the License for the specific language governing permissions and
139762338dSopenharmony_ci * limitations under the License.
149762338dSopenharmony_ci */
159762338dSopenharmony_ci
169762338dSopenharmony_ci#include <gtest/gtest.h>
179762338dSopenharmony_ci#include <osal_mem.h>
189762338dSopenharmony_ci#include "wifi_driver_client.h"
199762338dSopenharmony_ci
209762338dSopenharmony_ciusing namespace testing::ext;
219762338dSopenharmony_ci
229762338dSopenharmony_cinamespace ClientTest {
239762338dSopenharmony_ciconst uint32_t DEFAULT_COMBO_SIZE = 10;
249762338dSopenharmony_ciconst char *WLAN_IFNAME = "wlan0";
259762338dSopenharmony_ciconst uint32_t RESET_TIME = 20;
269762338dSopenharmony_ciclass WifiClientTest : public testing::Test {
279762338dSopenharmony_cipublic:
289762338dSopenharmony_ci    static void SetUpTestCase();
299762338dSopenharmony_ci    static void TearDownTestCase();
309762338dSopenharmony_ci    void SetUp();
319762338dSopenharmony_ci    void TearDown();
329762338dSopenharmony_ci};
339762338dSopenharmony_ci
349762338dSopenharmony_civoid WifiClientTest::SetUpTestCase()
359762338dSopenharmony_ci{
369762338dSopenharmony_ci}
379762338dSopenharmony_ci
389762338dSopenharmony_civoid WifiClientTest::TearDownTestCase()
399762338dSopenharmony_ci{
409762338dSopenharmony_ci}
419762338dSopenharmony_ci
429762338dSopenharmony_civoid WifiClientTest::SetUp()
439762338dSopenharmony_ci{
449762338dSopenharmony_ci    WifiDriverClientInit();
459762338dSopenharmony_ci}
469762338dSopenharmony_ci
479762338dSopenharmony_civoid WifiClientTest::TearDown()
489762338dSopenharmony_ci{
499762338dSopenharmony_ci    WifiDriverClientDeinit();
509762338dSopenharmony_ci}
519762338dSopenharmony_ci
529762338dSopenharmony_ci/**
539762338dSopenharmony_ci * @tc.name: WifiClientSetCountryCode001
549762338dSopenharmony_ci * @tc.desc: Wifi client set country code function test
559762338dSopenharmony_ci * @tc.type: FUNC
569762338dSopenharmony_ci */
579762338dSopenharmony_ciHWTEST_F(WifiClientTest, SUB_WLAN_CLIENT_SetCountryCode_0001, Function | MediumTest | Level1)
589762338dSopenharmony_ci{
599762338dSopenharmony_ci    int32_t ret;
609762338dSopenharmony_ci    const char *code = "CN";
619762338dSopenharmony_ci    const char *codeDigital = "99";
629762338dSopenharmony_ci    uint32_t len = 2;
639762338dSopenharmony_ci
649762338dSopenharmony_ci    ret = WifiSetCountryCode(WLAN_IFNAME, code, len);
659762338dSopenharmony_ci    EXPECT_EQ(RET_CODE_SUCCESS, ret);
669762338dSopenharmony_ci    ret = WifiSetCountryCode(WLAN_IFNAME, codeDigital, len);
679762338dSopenharmony_ci    bool flag = (ret == HDF_SUCCESS || ret == HDF_ERR_NOT_SUPPORT);
689762338dSopenharmony_ci    ASSERT_TRUE(flag);
699762338dSopenharmony_ci}
709762338dSopenharmony_ci
719762338dSopenharmony_ci/**
729762338dSopenharmony_ci * @tc.name: WifiClientGetUsableNetworkInfo001
739762338dSopenharmony_ci * @tc.desc: Wifi client get usable networkInfo function test
749762338dSopenharmony_ci * @tc.type: FUNC
759762338dSopenharmony_ci */
769762338dSopenharmony_ciHWTEST_F(WifiClientTest, SUB_WLAN_CLIENT_GetUsableNetworkInfo_0001, Function | MediumTest | Level1)
779762338dSopenharmony_ci{
789762338dSopenharmony_ci    int32_t ret;
799762338dSopenharmony_ci    struct NetworkInfoResult networkInfo;
809762338dSopenharmony_ci
819762338dSopenharmony_ci    ret = GetUsableNetworkInfo(&networkInfo);
829762338dSopenharmony_ci    EXPECT_EQ(RET_CODE_SUCCESS, ret);
839762338dSopenharmony_ci}
849762338dSopenharmony_ci
859762338dSopenharmony_ci/**
869762338dSopenharmony_ci * @tc.name: WifiClientIsSupportCombo001
879762338dSopenharmony_ci * @tc.desc: Wifi client is support combo function test
889762338dSopenharmony_ci * @tc.type: FUNC
899762338dSopenharmony_ci */
909762338dSopenharmony_ciHWTEST_F(WifiClientTest, SUB_WLAN_CLIENT_IsSupportCombo_0001, Function | MediumTest | Level1)
919762338dSopenharmony_ci{
929762338dSopenharmony_ci    int32_t ret;
939762338dSopenharmony_ci    uint8_t isSupportCombo;
949762338dSopenharmony_ci
959762338dSopenharmony_ci    ret = IsSupportCombo(&isSupportCombo);
969762338dSopenharmony_ci    EXPECT_EQ(RET_CODE_SUCCESS, ret);
979762338dSopenharmony_ci}
989762338dSopenharmony_ci
999762338dSopenharmony_ci/**
1009762338dSopenharmony_ci * @tc.name: WifiClientGetComboInfo001
1019762338dSopenharmony_ci * @tc.desc: Wifi client get combo info function test
1029762338dSopenharmony_ci * @tc.type: FUNC
1039762338dSopenharmony_ci */
1049762338dSopenharmony_ciHWTEST_F(WifiClientTest, SUB_WLAN_CLIENT_GetComboInfo_0001, Function | MediumTest | Level1)
1059762338dSopenharmony_ci{
1069762338dSopenharmony_ci    int32_t ret;
1079762338dSopenharmony_ci    uint64_t comboInfo[DEFAULT_COMBO_SIZE] = {};
1089762338dSopenharmony_ci
1099762338dSopenharmony_ci    ret = GetComboInfo(comboInfo, DEFAULT_COMBO_SIZE);
1109762338dSopenharmony_ci    bool flag = (ret == RET_CODE_SUCCESS || ret == RET_CODE_NOT_SUPPORT);
1119762338dSopenharmony_ci    ASSERT_TRUE(flag);
1129762338dSopenharmony_ci}
1139762338dSopenharmony_ci
1149762338dSopenharmony_ci/**
1159762338dSopenharmony_ci * @tc.name: WifiClientSetMacAddr001
1169762338dSopenharmony_ci * @tc.desc: Wifi client set mac addr function test
1179762338dSopenharmony_ci * @tc.type: FUNC
1189762338dSopenharmony_ci */
1199762338dSopenharmony_ciHWTEST_F(WifiClientTest, SUB_WLAN_CLIENT_SetMacAddr_0001, Function | MediumTest | Level1)
1209762338dSopenharmony_ci{
1219762338dSopenharmony_ci    int32_t ret;
1229762338dSopenharmony_ci    unsigned char mac[ETH_ADDR_LEN] = {0x12, 0x34, 0x56, 0x78, 0xab, 0xcd};
1239762338dSopenharmony_ci    unsigned char errorMac[ETH_ADDR_LEN] = {0x11, 0x34, 0x56, 0x78, 0xab, 0xcd};
1249762338dSopenharmony_ci
1259762338dSopenharmony_ci    ret = SetMacAddr(WLAN_IFNAME, mac, ETH_ADDR_LEN);
1269762338dSopenharmony_ci    bool flag = (ret == HDF_SUCCESS || ret == HDF_ERR_NOT_SUPPORT || ret == HDF_ERR_DEVICE_BUSY);
1279762338dSopenharmony_ci    ASSERT_TRUE(flag);
1289762338dSopenharmony_ci    ret = SetMacAddr(WLAN_IFNAME, errorMac, ETH_ADDR_LEN);
1299762338dSopenharmony_ci    EXPECT_NE(RET_CODE_SUCCESS, ret);
1309762338dSopenharmony_ci}
1319762338dSopenharmony_ci
1329762338dSopenharmony_ci/**
1339762338dSopenharmony_ci * @tc.name: WifiClientGetDevMacAddr001
1349762338dSopenharmony_ci * @tc.desc: Wifi client get mac addr function test
1359762338dSopenharmony_ci * @tc.type: FUNC
1369762338dSopenharmony_ci */
1379762338dSopenharmony_ciHWTEST_F(WifiClientTest, SUB_WLAN_CLIENT_GetDevMacAddr_0001, Function | MediumTest | Level1)
1389762338dSopenharmony_ci{
1399762338dSopenharmony_ci    int32_t ret;
1409762338dSopenharmony_ci    unsigned char mac[ETH_ADDR_LEN] = {};
1419762338dSopenharmony_ci    int32_t type = WIFI_IFTYPE_STATION;
1429762338dSopenharmony_ci
1439762338dSopenharmony_ci    ret = GetDevMacAddr(WLAN_IFNAME, type, mac, ETH_ADDR_LEN);
1449762338dSopenharmony_ci    EXPECT_NE(RET_CODE_FAILURE, ret);
1459762338dSopenharmony_ci}
1469762338dSopenharmony_ci
1479762338dSopenharmony_ci/**
1489762338dSopenharmony_ci * @tc.name: WifiClientGetDevMacAddr002
1499762338dSopenharmony_ci * @tc.desc: Wifi client get mac addr function test
1509762338dSopenharmony_ci * @tc.type: FUNC
1519762338dSopenharmony_ci */
1529762338dSopenharmony_ciHWTEST_F(WifiClientTest, SUB_WLAN_CLIENT_GetDevMacAddr_0002, Function | MediumTest | Level1)
1539762338dSopenharmony_ci{
1549762338dSopenharmony_ci    int32_t ret;
1559762338dSopenharmony_ci    unsigned char mac[ETH_ADDR_LEN] = {};
1569762338dSopenharmony_ci    int32_t type = WIFI_IFTYPE_AP;
1579762338dSopenharmony_ci
1589762338dSopenharmony_ci    ret = GetDevMacAddr(WLAN_IFNAME, type, mac, ETH_ADDR_LEN);
1599762338dSopenharmony_ci    EXPECT_NE(RET_CODE_FAILURE, ret);
1609762338dSopenharmony_ci}
1619762338dSopenharmony_ci
1629762338dSopenharmony_ci/**
1639762338dSopenharmony_ci * @tc.name: WifiClientGetValidFreqByBand001
1649762338dSopenharmony_ci * @tc.desc: Wifi client get valid freq function test
1659762338dSopenharmony_ci * @tc.type: FUNC
1669762338dSopenharmony_ci */
1679762338dSopenharmony_ciHWTEST_F(WifiClientTest, SUB_WLAN_CLIENT_GetValidFreqByBand_0001, Function | MediumTest | Level1)
1689762338dSopenharmony_ci{
1699762338dSopenharmony_ci    int32_t ret;
1709762338dSopenharmony_ci    int32_t band = IEEE80211_BAND_2GHZ;
1719762338dSopenharmony_ci    int32_t bandNotSupport = IEEE80211_NUM_BANDS;
1729762338dSopenharmony_ci    struct FreqInfoResult result;
1739762338dSopenharmony_ci    uint32_t size = 14;
1749762338dSopenharmony_ci    uint32_t i;
1759762338dSopenharmony_ci
1769762338dSopenharmony_ci    result.freqs = (uint32_t *)OsalMemCalloc(35 * sizeof(uint32_t));
1779762338dSopenharmony_ci    if (result.freqs == NULL) {
1789762338dSopenharmony_ci        printf("%s: OsalMemCalloc failed", __FUNCTION__);
1799762338dSopenharmony_ci        return;
1809762338dSopenharmony_ci    }
1819762338dSopenharmony_ci
1829762338dSopenharmony_ci    result.txPower = (uint32_t *)OsalMemCalloc(35 * sizeof(uint32_t));
1839762338dSopenharmony_ci    if (result.txPower == NULL) {
1849762338dSopenharmony_ci        printf("%s: OsalMemCalloc failed", __FUNCTION__);
1859762338dSopenharmony_ci        OsalMemFree(result.freqs);
1869762338dSopenharmony_ci        return;
1879762338dSopenharmony_ci    }
1889762338dSopenharmony_ci
1899762338dSopenharmony_ci    ret = GetValidFreqByBand(WLAN_IFNAME, bandNotSupport, &result, size);
1909762338dSopenharmony_ci    EXPECT_NE(RET_CODE_SUCCESS, ret);
1919762338dSopenharmony_ci    ret = GetValidFreqByBand(WLAN_IFNAME, band, &result, size);
1929762338dSopenharmony_ci    EXPECT_EQ(RET_CODE_SUCCESS, ret);
1939762338dSopenharmony_ci    if (ret == RET_CODE_SUCCESS) {
1949762338dSopenharmony_ci        printf("%s: num = %u\n", __func__, result.nums);
1959762338dSopenharmony_ci        for (i = 0; i < result.nums; i++) {
1969762338dSopenharmony_ci            printf("%s: freq[%d] = %d\n", __func__, i, result.freqs[i]);
1979762338dSopenharmony_ci        }
1989762338dSopenharmony_ci    }
1999762338dSopenharmony_ci
2009762338dSopenharmony_ci    OsalMemFree(result.txPower);
2019762338dSopenharmony_ci    OsalMemFree(result.freqs);
2029762338dSopenharmony_ci}
2039762338dSopenharmony_ci
2049762338dSopenharmony_ci/**
2059762338dSopenharmony_ci * @tc.name: WifiClientSetTxPower001
2069762338dSopenharmony_ci * @tc.desc: Wifi client set tx power function test
2079762338dSopenharmony_ci * @tc.type: FUNC
2089762338dSopenharmony_ci */
2099762338dSopenharmony_ciHWTEST_F(WifiClientTest, SUB_WLAN_CLIENT_SetTxPower_0001, Function | MediumTest | Level1)
2109762338dSopenharmony_ci{
2119762338dSopenharmony_ci    int32_t ret;
2129762338dSopenharmony_ci    int32_t power = 10;
2139762338dSopenharmony_ci
2149762338dSopenharmony_ci    ret = SetTxPower(WLAN_IFNAME, power);
2159762338dSopenharmony_ci    EXPECT_EQ(RET_CODE_SUCCESS, ret);
2169762338dSopenharmony_ci}
2179762338dSopenharmony_ci
2189762338dSopenharmony_ci/**
2199762338dSopenharmony_ci * @tc.name: WifiClientGetAssociatedStas001
2209762338dSopenharmony_ci * @tc.desc: Wifi client get associated status function test
2219762338dSopenharmony_ci * @tc.type: FUNC
2229762338dSopenharmony_ci */
2239762338dSopenharmony_ciHWTEST_F(WifiClientTest, SUB_WLAN_CLIENT_GetAssociatedStas_0001, Function | MediumTest | Level1)
2249762338dSopenharmony_ci{
2259762338dSopenharmony_ci    int32_t ret;
2269762338dSopenharmony_ci    struct AssocStaInfoResult result;
2279762338dSopenharmony_ci
2289762338dSopenharmony_ci    ret = GetAssociatedStas(WLAN_IFNAME, &result);
2299762338dSopenharmony_ci    EXPECT_EQ(RET_CODE_SUCCESS, ret);
2309762338dSopenharmony_ci}
2319762338dSopenharmony_ci
2329762338dSopenharmony_ci/**
2339762338dSopenharmony_ci * @tc.name: WifiClientSetScanMacAddr001
2349762338dSopenharmony_ci * @tc.desc: Wifi client set scan MAC address function test
2359762338dSopenharmony_ci * @tc.type: FUNC
2369762338dSopenharmony_ci */
2379762338dSopenharmony_ciHWTEST_F(WifiClientTest, SUB_WLAN_CLIENT_SetScanMacAddr_0001, Function | MediumTest | Level1)
2389762338dSopenharmony_ci{
2399762338dSopenharmony_ci    int32_t ret;
2409762338dSopenharmony_ci    unsigned char scanMac[ETH_ADDR_LEN] = {0x12, 0x34, 0x56, 0x78, 0xab, 0xcd};
2419762338dSopenharmony_ci
2429762338dSopenharmony_ci    ret = SetScanMacAddr(WLAN_IFNAME, scanMac, ETH_ADDR_LEN);
2439762338dSopenharmony_ci    bool flag = (ret == RET_CODE_SUCCESS || ret == RET_CODE_NOT_SUPPORT);
2449762338dSopenharmony_ci    ASSERT_TRUE(flag);
2459762338dSopenharmony_ci}
2469762338dSopenharmony_ci
2479762338dSopenharmony_ci/**
2489762338dSopenharmony_ci * @tc.name: WifiClientAcquireChipId001
2499762338dSopenharmony_ci * @tc.desc: Wifi client get chipId function test
2509762338dSopenharmony_ci * @tc.type: FUNC
2519762338dSopenharmony_ci */
2529762338dSopenharmony_ciHWTEST_F(WifiClientTest, SUB_WLAN_CLIENT_AcquireChipId_0001, Function | MediumTest | Level1)
2539762338dSopenharmony_ci{
2549762338dSopenharmony_ci    int32_t ret;
2559762338dSopenharmony_ci    const char *ifNameInvalid = "wlanTest";
2569762338dSopenharmony_ci    uint8_t chipId = 0;
2579762338dSopenharmony_ci
2589762338dSopenharmony_ci    ret = AcquireChipId(ifNameInvalid, &chipId);
2599762338dSopenharmony_ci    EXPECT_NE(RET_CODE_SUCCESS, ret);
2609762338dSopenharmony_ci    ret = AcquireChipId(WLAN_IFNAME, &chipId);
2619762338dSopenharmony_ci    ASSERT_TRUE(chipId < MAX_WLAN_DEVICE);
2629762338dSopenharmony_ci    EXPECT_EQ(RET_CODE_SUCCESS, ret);
2639762338dSopenharmony_ci}
2649762338dSopenharmony_ci
2659762338dSopenharmony_ci/**
2669762338dSopenharmony_ci * @tc.name: WifiClientGetIfNamesByChipId001
2679762338dSopenharmony_ci * @tc.desc: Wifi client get ifName by chipId function test
2689762338dSopenharmony_ci * @tc.type: FUNC
2699762338dSopenharmony_ci */
2709762338dSopenharmony_ciHWTEST_F(WifiClientTest, SUB_WLAN_CLIENT_GetIfNamesByChipId_0001, Function | MediumTest | Level1)
2719762338dSopenharmony_ci{
2729762338dSopenharmony_ci    int32_t ret;
2739762338dSopenharmony_ci    uint8_t chipId = 0;
2749762338dSopenharmony_ci    uint8_t chipIdInvalid = 100;
2759762338dSopenharmony_ci    char *ifNames = nullptr;
2769762338dSopenharmony_ci    uint32_t num = 0;
2779762338dSopenharmony_ci
2789762338dSopenharmony_ci    ret = AcquireChipId(WLAN_IFNAME, &chipId);
2799762338dSopenharmony_ci    ASSERT_TRUE(chipId < MAX_WLAN_DEVICE);
2809762338dSopenharmony_ci    EXPECT_EQ(RET_CODE_SUCCESS, ret);
2819762338dSopenharmony_ci    ret = GetIfNamesByChipId(chipIdInvalid, &ifNames, &num);
2829762338dSopenharmony_ci    EXPECT_NE(RET_CODE_SUCCESS, ret);
2839762338dSopenharmony_ci    ret = GetIfNamesByChipId(chipId, &ifNames, &num);
2849762338dSopenharmony_ci    EXPECT_NE(ifNames, nullptr);
2859762338dSopenharmony_ci    EXPECT_EQ(RET_CODE_SUCCESS, ret);
2869762338dSopenharmony_ci    free(ifNames);
2879762338dSopenharmony_ci}
2889762338dSopenharmony_ci
2899762338dSopenharmony_ci/**
2909762338dSopenharmony_ci * @tc.name: WifiClientGetNetDeviceInfo001
2919762338dSopenharmony_ci * @tc.desc: Wifi client get netDevice information function test
2929762338dSopenharmony_ci * @tc.type: FUNC
2939762338dSopenharmony_ci */
2949762338dSopenharmony_ciHWTEST_F(WifiClientTest, SUB_WLAN_CLIENT_GetNetDeviceInfo_0001, Function | MediumTest | Level1)
2959762338dSopenharmony_ci{
2969762338dSopenharmony_ci    int32_t ret;
2979762338dSopenharmony_ci    struct NetDeviceInfoResult netDeviceInfoResult;
2989762338dSopenharmony_ci
2999762338dSopenharmony_ci    ret = GetNetDeviceInfo(&netDeviceInfoResult);
3009762338dSopenharmony_ci    EXPECT_EQ(RET_CODE_SUCCESS, ret);
3019762338dSopenharmony_ci}
3029762338dSopenharmony_ci
3039762338dSopenharmony_ci/**
3049762338dSopenharmony_ci * @tc.name: WifiClientGetCurrentPowerMode001
3059762338dSopenharmony_ci * @tc.desc: Wifi client get current power mode function test
3069762338dSopenharmony_ci * @tc.type: FUNC
3079762338dSopenharmony_ci */
3089762338dSopenharmony_ciHWTEST_F(WifiClientTest, SUB_WLAN_CLIENT_GetCurrentPowerMode_0001, Function | MediumTest | Level1)
3099762338dSopenharmony_ci{
3109762338dSopenharmony_ci    int32_t ret;
3119762338dSopenharmony_ci    uint8_t mode = 0;
3129762338dSopenharmony_ci    const char *ifNameInvalid = "wlanTest";
3139762338dSopenharmony_ci
3149762338dSopenharmony_ci    ret = GetCurrentPowerMode(ifNameInvalid, &mode);
3159762338dSopenharmony_ci    EXPECT_NE(RET_CODE_SUCCESS, ret);
3169762338dSopenharmony_ci    ret = GetCurrentPowerMode(WLAN_IFNAME, &mode);
3179762338dSopenharmony_ci    bool flag = (ret == RET_CODE_SUCCESS || ret == RET_CODE_NOT_SUPPORT);
3189762338dSopenharmony_ci    ASSERT_TRUE(flag);
3199762338dSopenharmony_ci}
3209762338dSopenharmony_ci
3219762338dSopenharmony_ci/**
3229762338dSopenharmony_ci * @tc.name: WifiClientSetPowerMode001
3239762338dSopenharmony_ci * @tc.desc: Wifi client set power mode function test
3249762338dSopenharmony_ci * @tc.type: FUNC
3259762338dSopenharmony_ci */
3269762338dSopenharmony_ciHWTEST_F(WifiClientTest, SUB_WLAN_CLIENT_SetPowerMode_0001, Function | MediumTest | Level1)
3279762338dSopenharmony_ci{
3289762338dSopenharmony_ci    int32_t ret;
3299762338dSopenharmony_ci    const char *ifNameInvalid = "wlanTest";
3309762338dSopenharmony_ci
3319762338dSopenharmony_ci    ret = SetPowerMode(ifNameInvalid, WIFI_POWER_MODE_SLEEPING);
3329762338dSopenharmony_ci    EXPECT_NE(RET_CODE_SUCCESS, ret);
3339762338dSopenharmony_ci    ret = SetPowerMode(WLAN_IFNAME, WIFI_POWER_MODE_SLEEPING);
3349762338dSopenharmony_ci    bool flag = (ret == RET_CODE_SUCCESS || ret == RET_CODE_NOT_SUPPORT);
3359762338dSopenharmony_ci    ASSERT_TRUE(flag);
3369762338dSopenharmony_ci}
3379762338dSopenharmony_ci
3389762338dSopenharmony_ci/**
3399762338dSopenharmony_ci * @tc.name: WifiClientSetPowerMode002
3409762338dSopenharmony_ci * @tc.desc: Wifi client set power mode function test
3419762338dSopenharmony_ci * @tc.type: FUNC
3429762338dSopenharmony_ci */
3439762338dSopenharmony_ciHWTEST_F(WifiClientTest, SUB_WLAN_CLIENT_SetPowerMode_0002, Function | MediumTest | Level1)
3449762338dSopenharmony_ci{
3459762338dSopenharmony_ci    int32_t ret;
3469762338dSopenharmony_ci
3479762338dSopenharmony_ci    ret = SetPowerMode(WLAN_IFNAME, WIFI_POWER_MODE_GENERAL);
3489762338dSopenharmony_ci    bool flag = (ret == RET_CODE_SUCCESS || ret == RET_CODE_NOT_SUPPORT);
3499762338dSopenharmony_ci    ASSERT_TRUE(flag);
3509762338dSopenharmony_ci}
3519762338dSopenharmony_ci
3529762338dSopenharmony_ci/**
3539762338dSopenharmony_ci * @tc.name: WifiClientSetPowerMode003
3549762338dSopenharmony_ci * @tc.desc: Wifi client set power mode function test
3559762338dSopenharmony_ci * @tc.type: FUNC
3569762338dSopenharmony_ci */
3579762338dSopenharmony_ciHWTEST_F(WifiClientTest, SUB_WLAN_CLIENT_SetPowerMode_0003, Function | MediumTest | Level1)
3589762338dSopenharmony_ci{
3599762338dSopenharmony_ci    int32_t ret;
3609762338dSopenharmony_ci
3619762338dSopenharmony_ci    ret = SetPowerMode(WLAN_IFNAME, WIFI_POWER_MODE_THROUGH_WALL);
3629762338dSopenharmony_ci    bool flag = (ret == RET_CODE_SUCCESS || ret == RET_CODE_NOT_SUPPORT);
3639762338dSopenharmony_ci    ASSERT_TRUE(flag);
3649762338dSopenharmony_ci}
3659762338dSopenharmony_ci
3669762338dSopenharmony_ci/**
3679762338dSopenharmony_ci * @tc.name: WifiClientSetPowerMode004
3689762338dSopenharmony_ci * @tc.desc: Wifi client set power mode function test
3699762338dSopenharmony_ci * @tc.type: FUNC
3709762338dSopenharmony_ci */
3719762338dSopenharmony_ciHWTEST_F(WifiClientTest, SUB_WLAN_CLIENT_SetPowerMode_0004, Function | MediumTest | Level1)
3729762338dSopenharmony_ci{
3739762338dSopenharmony_ci    int32_t ret;
3749762338dSopenharmony_ci
3759762338dSopenharmony_ci    ret = SetPowerMode(WLAN_IFNAME, WIFI_POWER_MODE_NUM);
3769762338dSopenharmony_ci    EXPECT_NE(RET_CODE_SUCCESS, ret);
3779762338dSopenharmony_ci}
3789762338dSopenharmony_ci
3799762338dSopenharmony_ci/**
3809762338dSopenharmony_ci * @tc.name: WifiClientSetResetDriver001
3819762338dSopenharmony_ci * @tc.desc: Wifi client reset driver function test
3829762338dSopenharmony_ci * @tc.type: FUNC
3839762338dSopenharmony_ci */
3849762338dSopenharmony_ciHWTEST_F(WifiClientTest, SUB_WLAN_CLIENT_SetResetDriver_0001, Function | MediumTest | Level1)
3859762338dSopenharmony_ci{
3869762338dSopenharmony_ci    int32_t ret;
3879762338dSopenharmony_ci    uint8_t chipId = 0;
3889762338dSopenharmony_ci
3899762338dSopenharmony_ci    ret = AcquireChipId(WLAN_IFNAME, &chipId);
3909762338dSopenharmony_ci    ASSERT_TRUE(chipId < MAX_WLAN_DEVICE);
3919762338dSopenharmony_ci    EXPECT_EQ(RET_CODE_SUCCESS, ret);
3929762338dSopenharmony_ci
3939762338dSopenharmony_ci    ret = SetResetDriver(chipId, WLAN_IFNAME);
3949762338dSopenharmony_ci    EXPECT_EQ(RET_CODE_SUCCESS, ret);
3959762338dSopenharmony_ci    sleep(RESET_TIME);
3969762338dSopenharmony_ci}
3979762338dSopenharmony_ci};
398