• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (C) 2021 Huawei Device Co., Ltd.
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  *     http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * Unless required by applicable law or agreed to in writing, software
10  * distributed under the License is distributed on an "AS IS" BASIS,
11  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12  * See the License for the specific language governing permissions and
13  * limitations under the License.
14  */
15 #include "wifi_hal_ap_interface_test.h"
16 #include "wifi_hal_callback.h"
17 #include "securec.h"
18 #include "wifi_log.h"
19 #include "wifi_hal_ap_interface.h"
20 #include "wifi_hal_common_func.h"
21 #include "mock_wpa_ctrl.h"
22 
23 using namespace testing::ext;
24 
25 namespace OHOS {
26 namespace Wifi {
27 const std::string IFACENAME = "wlan0";
28 
SetUpTestCase()29 void WifiHalApInterfaceTest::SetUpTestCase()
30 {
31     MockInitApSupportedCmd();
32 }
33 
34 HWTEST_F(WifiHalApInterfaceTest, GetStaInfosTest, TestSize.Level1)
35 {
36     char infos[4096] = {0};
37     int size = 4096;
38     EXPECT_TRUE(GetStaInfos(NULL, NULL, 0) == WIFI_HAL_FAILED);
39     EXPECT_TRUE(GetStaInfos(infos, NULL, 0) == WIFI_HAL_FAILED);
40     EXPECT_TRUE(GetStaInfos(NULL, &size, 0) == WIFI_HAL_FAILED);
41     EXPECT_TRUE(GetStaInfos(infos, &size, 0) == WIFI_HAL_SUCCESS);
42 }
43 
44 HWTEST_F(WifiHalApInterfaceTest, SetCountryCodeTest, TestSize.Level1)
45 {
46     EXPECT_TRUE(SetCountryCode(NULL, 0) == WIFI_HAL_INVALID_PARAM);
47     EXPECT_TRUE(SetCountryCode("", 0) == WIFI_HAL_INVALID_PARAM);
48     EXPECT_TRUE(SetCountryCode("C", 0) == WIFI_HAL_INVALID_PARAM);
49     EXPECT_TRUE(SetCountryCode("CN", 0) != WIFI_HAL_INVALID_PARAM);
50 }
51 
52 HWTEST_F(WifiHalApInterfaceTest, SetHostapdConfigTest, TestSize.Level1)
53 {
54     EXPECT_TRUE(SetHostapdConfig(NULL, 0) == WIFI_HAL_FAILED);
55     HostapdConfig config;
56     ASSERT_TRUE(memset_s(&config, sizeof(config), 0, sizeof(config)) == EOK);
57     config.band = AP_2GHZ_BAND;
58     config.channel = 6;
59     config.maxConn = 20;
60     config.securityType = WPA_PSK;
61     StrSafeCopy(config.ssid, sizeof(config.ssid), "test_ssid");
62     config.ssidLen = strlen(config.ssid);
63     StrSafeCopy(config.preSharedKey, sizeof(config.preSharedKey), "adc123456");
64     config.preSharedKeyLen = strlen(config.preSharedKey);
65     EXPECT_GE(SetHostapdConfig(&config, 0), WIFI_HAL_SUCCESS);
66     EXPECT_TRUE(SetHostapdConfig(&config, -1) == WIFI_HAL_HOSTAPD_NOT_INIT);
67 }
68 
69 HWTEST_F(WifiHalApInterfaceTest, SetMacFilterTest, TestSize.Level1)
70 {
71     EXPECT_TRUE(SetMacFilter(NULL, 0, 0) == WIFI_HAL_FAILED);
72     unsigned char tmpMac[] = "00:00:00:00:00";
73     EXPECT_TRUE(SetMacFilter(tmpMac, strlen((const char *)tmpMac), 0) == WIFI_HAL_FAILED);
74     unsigned char tmpMac2[] = "00.00.00.00.00.00";
75     EXPECT_TRUE(SetMacFilter(tmpMac2, strlen((const char *)tmpMac2), 0) == WIFI_HAL_INPUT_MAC_INVALID);
76     unsigned char mac[] = "00:00:00:00:00:00";
77     EXPECT_TRUE(SetMacFilter(mac, strlen((const char *)mac), 0) == WIFI_HAL_SUCCESS);
78 }
79 
80 HWTEST_F(WifiHalApInterfaceTest, DelMacFilterTest, TestSize.Level1)
81 {
82     EXPECT_TRUE(DelMacFilter(NULL, 0, 0) == WIFI_HAL_FAILED);
83     unsigned char tmpMac[] = "00:00:00:00:00";
84     EXPECT_TRUE(DelMacFilter(tmpMac, strlen((const char *)tmpMac), 0) == WIFI_HAL_FAILED);
85     unsigned char tmpMac2[] = "00.00.00.00.00.00";
86     EXPECT_TRUE(DelMacFilter(tmpMac2, strlen((const char *)tmpMac2), 0) == WIFI_HAL_INPUT_MAC_INVALID);
87     unsigned char mac[] = "00:00:00:00:00:00";
88     EXPECT_TRUE(DelMacFilter(mac, strlen((const char *)mac), 0) == WIFI_HAL_SUCCESS);
89 }
90 
91 HWTEST_F(WifiHalApInterfaceTest, DisassociateStaTest, TestSize.Level1)
92 {
93     EXPECT_TRUE(DisassociateSta(NULL, 0, 0) == WIFI_HAL_FAILED);
94     unsigned char tmpMac[] = "00:00:00:00:00";
95     EXPECT_TRUE(DisassociateSta(tmpMac, strlen((const char *)tmpMac), 0) == WIFI_HAL_FAILED);
96     unsigned char tmpMac2[] = "00.00.00.00.00.00";
97     EXPECT_TRUE(DisassociateSta(tmpMac2, strlen((const char *)tmpMac2), 0) == WIFI_HAL_INPUT_MAC_INVALID);
98     unsigned char mac[] = "00:00:00:00:00:00";
99     EXPECT_TRUE(DisassociateSta(mac, strlen((const char *)mac), 0) == WIFI_HAL_SUCCESS);
100 }
101 
102 HWTEST_F(WifiHalApInterfaceTest, GetValidFrequenciesForBandTest, TestSize.Level1)
103 {
104     int32_t band = AP_2GHZ_BAND;
105     int frequencies[20] = {0};
106     int size = 20;
107     EXPECT_TRUE(GetValidFrequenciesForBand(band, NULL, NULL, 0) == WIFI_HAL_FAILED);
108     EXPECT_TRUE(GetValidFrequenciesForBand(band, frequencies, NULL, 0) == WIFI_HAL_FAILED);
109     EXPECT_TRUE(GetValidFrequenciesForBand(band, NULL, &size, 0) == WIFI_HAL_FAILED);
110     WifiErrorNo err = GetValidFrequenciesForBand(band, frequencies, &size, 0);
111     // WIFI_HAL_FAILED: Some devices do not support
112     EXPECT_TRUE(err == WIFI_HAL_SUCCESS || err == WIFI_HAL_NOT_SUPPORT || err == WIFI_HAL_FAILED);
113 }
114 
115 HWTEST_F(WifiHalApInterfaceTest, StartSoftApTest, TestSize.Level1)
116 {
117     char ifName[IFACENAME.size() + 1];
118     IFACENAME.copy(ifName, IFACENAME.size() + 1);
119     ifName[IFACENAME.size()] = '\0';
120     EXPECT_TRUE(StartSoftAp(-1, ifName) == WIFI_HAL_HOSTAPD_NOT_INIT);
121     EXPECT_TRUE(StartSoftAp(0, ifName) == WIFI_HAL_SUCCESS);
122 }
123 
124 HWTEST_F(WifiHalApInterfaceTest, StartHostapdHalTest, TestSize.Level1)
125 {
126     EXPECT_TRUE(StartHostapdHal(0) == WIFI_HAL_SUCCESS);
127     EXPECT_TRUE(StartHostapdHal(-1) == WIFI_HAL_FAILED);
128 }
129 
130 HWTEST_F(WifiHalApInterfaceTest, P2pHalCbServiceDiscoveryResponseTest, TestSize.Level1)
131 {
132     P2pServDiscRespInfo info;
133     P2pServDiscReqInfo infos;
134     EXPECT_TRUE(StopHostapd() == WIFI_HAL_SUCCESS);
135     P2pHalCbServiceDiscoveryResponse(NULL);
136     P2pHalCbServiceDiscoveryResponse(&info);
137     P2pHalCbServDiscReq(&infos);
138 }
139 }  // namespace Wifi
140 }  // namespace OHOS