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