1 /* 2 * Copyright (c) 2024 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 <hdf_log.h> 18 #include "../../../chip/hdi_service/wifi_ap_iface.h" 19 #include "wifi_hal_fn.h" 20 21 using namespace testing::ext; 22 using namespace OHOS::HDI::Wlan::Chip::V1_0; 23 24 namespace WifiApIfaceTest { 25 const std::string AP_IFNAME = "wlan1"; 26 const std::string TEST_MAC = "000000"; 27 class WifiApIfaceTest : public testing::Test { 28 public: SetUpTestCase()29 static void SetUpTestCase() {} TearDownTestCase()30 static void TearDownTestCase() {} SetUp()31 void SetUp() 32 { 33 std::vector<std::string> instances = {AP_IFNAME}; 34 ifaceTool = std::make_shared<IfaceTool>(); 35 ifaceUtil = std::make_shared<IfaceUtil>(ifaceTool); 36 WifiHalFn fn; 37 InitWifiHalFuncTable(&fn); 38 wifiVendorHalTest = std::make_shared<WifiVendorHal>(ifaceTool, fn, true); 39 apIface = new (std::nothrow) WifiApIface(AP_IFNAME, instances, wifiVendorHalTest, ifaceUtil); 40 if (apIface == nullptr) { 41 HDF_LOGE("iface is null"); 42 return; 43 } 44 } TearDown()45 void TearDown() 46 { 47 wifiVendorHalTest.reset(); 48 ifaceTool.reset(); 49 ifaceUtil.reset(); 50 } 51 52 public: 53 std::shared_ptr<WifiVendorHal> wifiVendorHalTest; 54 std::shared_ptr<IfaceTool> ifaceTool; 55 std::shared_ptr<IfaceUtil> ifaceUtil; 56 sptr<WifiApIface> apIface; 57 }; 58 59 /** 60 * @tc.name: wifiApIfaceTest 61 * @tc.desc: wifiApIface 62 * @tc.type: FUNC 63 * @tc.require: 64 */ 65 HWTEST_F(WifiApIfaceTest, wifiApIfaceTest001, TestSize.Level1) 66 { 67 HDF_LOGI("wifiApIfaceTest001 started"); 68 if (apIface == nullptr) { 69 return; 70 } 71 apIface->Invalidate(); 72 EXPECT_FALSE(apIface->IsValid()); 73 EXPECT_TRUE(apIface->GetName() == AP_IFNAME); 74 apIface->RemoveInstance(AP_IFNAME); 75 IfaceType type; 76 EXPECT_TRUE(apIface->GetIfaceType(type) == HDF_SUCCESS); 77 EXPECT_TRUE(type == IfaceType::AP); 78 std::string name; 79 EXPECT_TRUE(apIface->GetIfaceName(name) == HDF_SUCCESS); 80 EXPECT_TRUE(name == AP_IFNAME); 81 } 82 83 /** 84 * @tc.name: GetIfaceCapTest 85 * @tc.desc: GetIfaceCap 86 * @tc.type: FUNC 87 * @tc.require: 88 */ 89 HWTEST_F(WifiApIfaceTest, GetIfaceCapTest, TestSize.Level1) 90 { 91 HDF_LOGI("GetIfaceCapTest started"); 92 if (apIface == nullptr) { 93 HDF_LOGE("iface is null"); 94 return; 95 } 96 uint32_t cap; 97 EXPECT_TRUE(apIface->GetIfaceCap(cap) == HDF_ERR_NOT_SUPPORT); 98 } 99 100 HWTEST_F(WifiApIfaceTest, StartScanTest, TestSize.Level1) 101 { 102 HDF_LOGI("StartScanTest started"); 103 if (apIface == nullptr) { 104 HDF_LOGE("iface is null"); 105 return; 106 } 107 ScanParams scanParam; 108 scanParam.bssid = TEST_MAC; 109 EXPECT_TRUE(apIface->StartScan(scanParam) == HDF_ERR_NOT_SUPPORT); 110 } 111 112 HWTEST_F(WifiApIfaceTest, GetScanInfosTest, TestSize.Level1) 113 { 114 HDF_LOGI("GetScanInfosTest started"); 115 if (apIface == nullptr) { 116 HDF_LOGE("iface is null"); 117 return; 118 } 119 std::vector<ScanResultsInfo> scanResult; 120 EXPECT_TRUE(apIface->GetScanInfos(scanResult) == HDF_ERR_NOT_SUPPORT); 121 } 122 123 HWTEST_F(WifiApIfaceTest, StartPnoScanTest, TestSize.Level1) 124 { 125 HDF_LOGI("StartPnoScanTest started"); 126 if (apIface == nullptr) { 127 HDF_LOGE("iface is null"); 128 return; 129 } 130 PnoScanParams pnoParam; 131 pnoParam.min2gRssi = 1; 132 EXPECT_TRUE(apIface->StartPnoScan(pnoParam) == HDF_ERR_NOT_SUPPORT); 133 } 134 135 HWTEST_F(WifiApIfaceTest, StopPnoScanTest, TestSize.Level1) 136 { 137 HDF_LOGI("StopPnoScanTest started"); 138 if (apIface == nullptr) { 139 HDF_LOGE("iface is null"); 140 return; 141 } 142 EXPECT_TRUE(apIface->StopPnoScan() == HDF_ERR_NOT_SUPPORT); 143 } 144 145 HWTEST_F(WifiApIfaceTest, GetSignalPollInfoTest, TestSize.Level1) 146 { 147 HDF_LOGI("GetSignalPollInfoTest started"); 148 if (apIface == nullptr) { 149 HDF_LOGE("iface is null"); 150 return; 151 } 152 SignalPollResult info; 153 EXPECT_TRUE(apIface->GetSignalPollInfo(info) == HDF_ERR_NOT_SUPPORT); 154 } 155 156 HWTEST_F(WifiApIfaceTest, SetDpiMarkRuleTest, TestSize.Level1) 157 { 158 HDF_LOGI("SetDpiMarkRuleTest started"); 159 if (apIface == nullptr) { 160 HDF_LOGE("iface is null"); 161 return; 162 } 163 EXPECT_TRUE(apIface->SetDpiMarkRule(0, 0, 0) == HDF_ERR_NOT_SUPPORT); 164 } 165 166 HWTEST_F(WifiApIfaceTest, EnablePowerModeTest, TestSize.Level1) 167 { 168 HDF_LOGI("EnablePowerModeTest started"); 169 if (apIface == nullptr) { 170 HDF_LOGE("iface is null"); 171 return; 172 } 173 EXPECT_TRUE(apIface->EnablePowerMode(0) == HDF_ERR_NOT_SUPPORT); 174 } 175 176 HWTEST_F(WifiApIfaceTest, GetSupportFreqsTest, TestSize.Level1) 177 { 178 HDF_LOGI("GetSupportFreqsTest started"); 179 if (apIface == nullptr) { 180 HDF_LOGE("iface is null"); 181 return; 182 } 183 std::vector<uint32_t> freqs; 184 EXPECT_TRUE(apIface->GetSupportFreqs(0, freqs) == HDF_SUCCESS); 185 EXPECT_TRUE(apIface->SetMacAddress(TEST_MAC) == HDF_SUCCESS); 186 EXPECT_TRUE(apIface->SetCountryCode("cn") == HDF_SUCCESS); 187 EXPECT_TRUE(apIface->SetPowerMode(0) == HDF_SUCCESS); 188 int32_t mode; 189 EXPECT_TRUE(apIface->GetPowerMode(mode) == HDF_SUCCESS); 190 } 191 192 HWTEST_F(WifiApIfaceTest, RegisterChipIfaceCallBackTest, TestSize.Level1) 193 { 194 HDF_LOGI("RegisterChipIfaceCallBackTest started"); 195 if (apIface == nullptr) { 196 HDF_LOGE("iface is null"); 197 return; 198 } 199 sptr<IChipIfaceCallback> ifaceCallback; 200 EXPECT_TRUE(apIface->RegisterChipIfaceCallBack(ifaceCallback) == HDF_ERR_NOT_SUPPORT); 201 EXPECT_TRUE(apIface->UnRegisterChipIfaceCallBack(ifaceCallback) == HDF_ERR_NOT_SUPPORT); 202 } 203 }