1/*
2 * Copyright (c) 2023 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 <gtest/gtest.h>
16#include <servmgr_hdi.h>
17#include <osal_mem.h>
18#include "v1_1/iwpa_interface.h"
19#include "p2p_callback_impl.h"
20#include "securec.h"
21
22#define IFNAME "p2p-dev-wlan0"
23#define CONFNAME "/data/service/el1/public/wifi/wpa_supplicant/wpa_supplicant.conf"
24
25#define HDF_LOG_TAG service_manager_test
26using namespace testing::ext;
27
28namespace HdiP2pDirectTest {
29const char *g_wlanServiceNameP2p = "wpa_interface_service";
30
31class HdfP2pHostDirectTest : public testing::Test {
32public:
33    static void SetUpTestCase();
34    static void TearDownTestCase();
35    void SetUp();
36    void TearDown();
37};
38
39static struct IWpaInterface *g_wpaObj = nullptr;
40struct IWpaCallback *g_wpaCallbackObj = nullptr;
41void HdfP2pHostDirectTest::SetUpTestCase()
42{
43    g_wpaObj = IWpaInterfaceGetInstance(g_wlanServiceNameP2p, true);
44    g_wpaCallbackObj = P2pCallbackServiceGet();
45    ASSERT_TRUE(g_wpaObj != nullptr);
46    ASSERT_TRUE(g_wpaCallbackObj != nullptr);
47}
48
49void HdfP2pHostDirectTest::TearDownTestCase()
50{
51    IWpaInterfaceReleaseInstance(g_wlanServiceNameP2p, g_wpaObj, true);
52    P2pCallbackServiceRelease(g_wpaCallbackObj);
53}
54
55void HdfP2pHostDirectTest::SetUp()
56{
57}
58
59void HdfP2pHostDirectTest::TearDown()
60{
61}
62
63HWTEST_F(HdfP2pHostDirectTest, P2pSetSsidPostfixNameTest_001, TestSize.Level1)
64{
65    int32_t rc = g_wpaObj->P2pSetSsidPostfixName(g_wpaObj, nullptr, "test");
66    ASSERT_EQ(rc, HDF_ERR_INVALID_PARAM);
67    rc = g_wpaObj->P2pSetSsidPostfixName(g_wpaObj, IFNAME, nullptr);
68    ASSERT_EQ(rc, HDF_ERR_INVALID_PARAM);
69    rc = g_wpaObj->P2pSetSsidPostfixName(g_wpaObj, IFNAME, "test");
70    ASSERT_EQ(rc, HDF_FAILURE);
71}
72
73HWTEST_F(HdfP2pHostDirectTest, P2pSetWpsDeviceTypeTest_002, TestSize.Level1)
74{
75    int32_t rc = g_wpaObj->P2pSetWpsDeviceType(g_wpaObj, nullptr, "test");
76    ASSERT_EQ(rc, HDF_ERR_INVALID_PARAM);
77    rc = g_wpaObj->P2pSetWpsDeviceType(g_wpaObj, IFNAME, nullptr);
78    ASSERT_EQ(rc, HDF_ERR_INVALID_PARAM);
79    rc = g_wpaObj->P2pSetWpsDeviceType(g_wpaObj, IFNAME, "test");
80    ASSERT_EQ(rc, HDF_FAILURE);
81}
82
83HWTEST_F(HdfP2pHostDirectTest, P2pSetWpsConfigMethodsTest_003, TestSize.Level1)
84{
85    int32_t rc = g_wpaObj->P2pSetWpsConfigMethods(g_wpaObj, nullptr, "test");
86    ASSERT_EQ(rc, HDF_ERR_INVALID_PARAM);
87    rc = g_wpaObj->P2pSetWpsConfigMethods(g_wpaObj, IFNAME, nullptr);
88    ASSERT_EQ(rc, HDF_ERR_INVALID_PARAM);
89    rc = g_wpaObj->P2pSetWpsConfigMethods(g_wpaObj, IFNAME, "test");
90    ASSERT_EQ(rc, HDF_FAILURE);
91}
92
93HWTEST_F(HdfP2pHostDirectTest, P2pSetGroupMaxIdleTest_004, TestSize.Level1)
94{
95    int32_t rc = g_wpaObj->P2pSetGroupMaxIdle(g_wpaObj, nullptr, 1);
96    ASSERT_EQ(rc, HDF_ERR_INVALID_PARAM);
97    rc = g_wpaObj->P2pSetGroupMaxIdle(g_wpaObj, IFNAME, 1);
98    ASSERT_EQ(rc, HDF_FAILURE);
99}
100
101HWTEST_F(HdfP2pHostDirectTest, P2pSetWfdEnableTest_005, TestSize.Level1)
102{
103    int32_t rc = g_wpaObj->P2pSetWfdEnable(g_wpaObj, nullptr, 1);
104    ASSERT_EQ(rc, HDF_ERR_INVALID_PARAM);
105    rc = g_wpaObj->P2pSetWfdEnable(g_wpaObj, IFNAME, 1);
106    ASSERT_EQ(rc, HDF_FAILURE);
107}
108
109HWTEST_F(HdfP2pHostDirectTest, P2pSetPersistentReconnectTest_006, TestSize.Level1)
110{
111    int32_t rc = g_wpaObj->P2pSetPersistentReconnect(g_wpaObj, nullptr, 1);
112    ASSERT_EQ(rc, HDF_ERR_INVALID_PARAM);
113    rc = g_wpaObj->P2pSetPersistentReconnect(g_wpaObj, IFNAME, 1);
114    ASSERT_EQ(rc, HDF_FAILURE);
115}
116
117HWTEST_F(HdfP2pHostDirectTest, P2pSetWpsSecondaryDeviceTypeTest_007, TestSize.Level1)
118{
119    int32_t rc = g_wpaObj->P2pSetWpsSecondaryDeviceType(g_wpaObj, nullptr, "test");
120    ASSERT_EQ(rc, HDF_ERR_INVALID_PARAM);
121    rc = g_wpaObj->P2pSetWpsSecondaryDeviceType(g_wpaObj, IFNAME, nullptr);
122    ASSERT_EQ(rc, HDF_ERR_INVALID_PARAM);
123    rc = g_wpaObj->P2pSetWpsSecondaryDeviceType(g_wpaObj, IFNAME, "test");
124    ASSERT_EQ(rc, HDF_FAILURE);
125}
126
127HWTEST_F(HdfP2pHostDirectTest, P2pSetupWpsPbcTest_008, TestSize.Level1)
128{
129    int32_t rc = g_wpaObj->P2pSetupWpsPbc(g_wpaObj, nullptr, "00:00:00:00:00:00");
130    ASSERT_EQ(rc, HDF_ERR_INVALID_PARAM);
131    rc = g_wpaObj->P2pSetupWpsPbc(g_wpaObj, IFNAME, nullptr);
132    ASSERT_EQ(rc, HDF_ERR_INVALID_PARAM);
133    rc = g_wpaObj->P2pSetupWpsPbc(g_wpaObj, IFNAME, "00:00:00:00:00:00");
134    ASSERT_EQ(rc, HDF_FAILURE);
135}
136
137HWTEST_F(HdfP2pHostDirectTest, P2pSetupWpsPinTest_009, TestSize.Level1)
138{
139    const char *pin = "00000000";
140    char *resultBuf = (char *)calloc(REPLY_SIZE, sizeof(char));
141    uint32_t resultBufLen = REPLY_SIZE;
142    int32_t rc = g_wpaObj->P2pSetupWpsPin(g_wpaObj, nullptr, "00:00:00:00:00:00", pin, resultBuf, resultBufLen);
143    ASSERT_EQ(rc, HDF_ERR_INVALID_PARAM);
144    rc = g_wpaObj->P2pSetupWpsPin(g_wpaObj, IFNAME, "00:00:00:00:00:00", pin, nullptr, resultBufLen);
145    ASSERT_EQ(rc, HDF_ERR_INVALID_PARAM);
146    rc = g_wpaObj->P2pSetupWpsPin(g_wpaObj, IFNAME, "00:00:00:00:00:00", pin, resultBuf, resultBufLen);
147    ASSERT_EQ(rc, HDF_FAILURE);
148    free(resultBuf);
149}
150
151HWTEST_F(HdfP2pHostDirectTest, P2pSetPowerSaveTest_010, TestSize.Level1)
152{
153    int32_t rc = g_wpaObj->P2pSetPowerSave(g_wpaObj, nullptr, 1);
154    ASSERT_EQ(rc, HDF_ERR_INVALID_PARAM);
155    rc = g_wpaObj->P2pSetPowerSave(g_wpaObj, IFNAME, 1);
156    ASSERT_EQ(rc, HDF_FAILURE);
157}
158
159HWTEST_F(HdfP2pHostDirectTest, P2pSetDeviceNameTest_011, TestSize.Level1)
160{
161    int32_t rc = g_wpaObj->P2pSetDeviceName(g_wpaObj, nullptr, "test");
162    ASSERT_EQ(rc, HDF_ERR_INVALID_PARAM);
163    rc = g_wpaObj->P2pSetDeviceName(g_wpaObj, IFNAME, nullptr);
164    ASSERT_EQ(rc, HDF_ERR_INVALID_PARAM);
165    rc = g_wpaObj->P2pSetDeviceName(g_wpaObj, IFNAME, "test");
166    ASSERT_EQ(rc, HDF_FAILURE);
167}
168
169HWTEST_F(HdfP2pHostDirectTest, P2pSetWfdDeviceConfigTest_012, TestSize.Level1)
170{
171    int32_t rc = g_wpaObj->P2pSetWfdDeviceConfig(g_wpaObj, nullptr, "test");
172    ASSERT_EQ(rc, HDF_ERR_INVALID_PARAM);
173    rc = g_wpaObj->P2pSetWfdDeviceConfig(g_wpaObj, IFNAME, nullptr);
174    ASSERT_EQ(rc, HDF_ERR_INVALID_PARAM);
175    rc = g_wpaObj->P2pSetWfdDeviceConfig(g_wpaObj, IFNAME, "test");
176    ASSERT_EQ(rc, HDF_FAILURE);
177}
178
179HWTEST_F(HdfP2pHostDirectTest, P2pSetRandomMacTest_013, TestSize.Level1)
180{
181    int networkId = 1;
182    int32_t rc = g_wpaObj->P2pSetRandomMac(g_wpaObj, nullptr, networkId);
183    ASSERT_EQ(rc, HDF_ERR_INVALID_PARAM);
184    rc = g_wpaObj->P2pSetRandomMac(g_wpaObj, IFNAME, networkId);
185    ASSERT_EQ(rc, HDF_FAILURE);
186}
187
188HWTEST_F(HdfP2pHostDirectTest, P2pStartFindTest_014, TestSize.Level1)
189{
190    const int time = 120;
191    int32_t rc = g_wpaObj->P2pSetRandomMac(g_wpaObj, nullptr, time);
192    ASSERT_EQ(rc, HDF_ERR_INVALID_PARAM);
193    rc = g_wpaObj->P2pSetRandomMac(g_wpaObj, IFNAME, time);
194    ASSERT_EQ(rc, HDF_FAILURE);
195}
196
197HWTEST_F(HdfP2pHostDirectTest, P2pSetExtListenTest_015, TestSize.Level1)
198{
199    int32_t rc = g_wpaObj->P2pSetExtListen(g_wpaObj, nullptr, 0, 1, 1);
200    ASSERT_EQ(rc, HDF_ERR_INVALID_PARAM);
201    rc = g_wpaObj->P2pSetExtListen(g_wpaObj, IFNAME, 0, 1, 1);
202    ASSERT_EQ(rc, HDF_FAILURE);
203}
204
205HWTEST_F(HdfP2pHostDirectTest, P2pSetListenChannelTest_016, TestSize.Level1)
206{
207    const int channel = 44;
208    int32_t rc = g_wpaObj->P2pSetListenChannel(g_wpaObj, nullptr, channel, 0);
209    ASSERT_EQ(rc, HDF_ERR_INVALID_PARAM);
210    rc = g_wpaObj->P2pSetListenChannel(g_wpaObj, IFNAME, channel, 0);
211    ASSERT_EQ(rc, HDF_FAILURE);
212}
213
214HWTEST_F(HdfP2pHostDirectTest, P2pProvisionDiscoveryTest_017, TestSize.Level1)
215{
216    int32_t rc = g_wpaObj->P2pProvisionDiscovery(g_wpaObj, nullptr, "00:00:00:00:00:00", 0);
217    ASSERT_EQ(rc, HDF_ERR_INVALID_PARAM);
218    rc = g_wpaObj->P2pProvisionDiscovery(g_wpaObj, IFNAME, nullptr, 0);
219    ASSERT_EQ(rc, HDF_ERR_INVALID_PARAM);
220    rc = g_wpaObj->P2pProvisionDiscovery(g_wpaObj, IFNAME, "00:00:00:00:00:00", 0);
221    ASSERT_EQ(rc, HDF_FAILURE);
222}
223
224HWTEST_F(HdfP2pHostDirectTest, P2pAddGroupTest_018, TestSize.Level1)
225{
226    int networkId = 1;
227    const int freq = 5220;
228    int32_t rc = g_wpaObj->P2pAddGroup(g_wpaObj, nullptr, 0, networkId, freq);
229    ASSERT_EQ(rc, HDF_ERR_INVALID_PARAM);
230    rc = g_wpaObj->P2pAddGroup(g_wpaObj, IFNAME, 0, networkId, freq);
231    ASSERT_EQ(rc, HDF_FAILURE);
232}
233
234HWTEST_F(HdfP2pHostDirectTest, P2pAddServiceTest_019, TestSize.Level1)
235{
236    struct HdiP2pServiceInfo info;
237    (void)memset_s(
238        &info, sizeof(struct HdiP2pServiceInfo), 0, sizeof(struct HdiP2pServiceInfo));
239    int32_t rc = g_wpaObj->P2pAddService(g_wpaObj, IFNAME, nullptr);
240    ASSERT_EQ(rc, HDF_ERR_INVALID_PARAM);
241    rc = g_wpaObj->P2pAddService(g_wpaObj, nullptr, &info);
242    ASSERT_EQ(rc, HDF_ERR_INVALID_PARAM);
243    rc = g_wpaObj->P2pAddService(g_wpaObj, IFNAME, &info);
244    ASSERT_EQ(rc, HDF_FAILURE);
245}
246
247HWTEST_F(HdfP2pHostDirectTest, P2pRemoveServiceTest_020, TestSize.Level1)
248{
249    struct HdiP2pServiceInfo info;
250    (void)memset_s(
251        &info, sizeof(struct HdiP2pServiceInfo), 0, sizeof(struct HdiP2pServiceInfo));
252
253    int32_t rc = g_wpaObj->P2pRemoveService(g_wpaObj, IFNAME, nullptr);
254    ASSERT_EQ(rc, HDF_ERR_INVALID_PARAM);
255    rc = g_wpaObj->P2pRemoveService(g_wpaObj, nullptr, &info);
256    ASSERT_EQ(rc, HDF_ERR_INVALID_PARAM);
257    rc = g_wpaObj->P2pRemoveService(g_wpaObj, IFNAME, &info);
258    ASSERT_EQ(rc, HDF_FAILURE);
259}
260
261HWTEST_F(HdfP2pHostDirectTest, P2pStopFindTest_021, TestSize.Level1)
262{
263    int32_t rc = g_wpaObj->P2pStopFind(g_wpaObj, nullptr);
264    ASSERT_EQ(rc, HDF_ERR_INVALID_PARAM);
265    rc = g_wpaObj->P2pStopFind(g_wpaObj, IFNAME);
266    ASSERT_EQ(rc, HDF_FAILURE);
267}
268
269HWTEST_F(HdfP2pHostDirectTest, P2pFlushTest_022, TestSize.Level1)
270{
271    int32_t rc = g_wpaObj->P2pFlush(g_wpaObj, nullptr);
272    ASSERT_EQ(rc, HDF_ERR_INVALID_PARAM);
273    rc = g_wpaObj->P2pFlush(g_wpaObj, IFNAME);
274    ASSERT_EQ(rc, HDF_FAILURE);
275}
276
277HWTEST_F(HdfP2pHostDirectTest, P2pFlushServiceTest_023, TestSize.Level1)
278{
279    int32_t rc = g_wpaObj->P2pFlushService(g_wpaObj, nullptr);
280    ASSERT_EQ(rc, HDF_ERR_INVALID_PARAM);
281    rc = g_wpaObj->P2pFlushService(g_wpaObj, IFNAME);
282    ASSERT_EQ(rc, HDF_FAILURE);
283}
284
285HWTEST_F(HdfP2pHostDirectTest, P2pRemoveNetworkTest_024, TestSize.Level1)
286{
287    int networkId = 1;
288    int32_t rc = g_wpaObj->P2pRemoveNetwork(g_wpaObj, nullptr, networkId);
289    ASSERT_EQ(rc, HDF_ERR_INVALID_PARAM);
290    rc = g_wpaObj->P2pRemoveNetwork(g_wpaObj, IFNAME, networkId);
291    ASSERT_EQ(rc, HDF_FAILURE);
292}
293
294HWTEST_F(HdfP2pHostDirectTest, P2pSetGroupConfigTest_025, TestSize.Level1)
295{
296    int networkId = 1;
297    int32_t rc = g_wpaObj->P2pSetGroupConfig(g_wpaObj, nullptr, networkId, "test_name", "test_value");
298    ASSERT_EQ(rc, HDF_ERR_INVALID_PARAM);
299    rc = g_wpaObj->P2pSetGroupConfig(g_wpaObj, IFNAME, networkId, nullptr, "test_value");
300    ASSERT_EQ(rc, HDF_ERR_INVALID_PARAM);
301    rc = g_wpaObj->P2pSetGroupConfig(g_wpaObj, IFNAME, networkId, "test_name", nullptr);
302    ASSERT_EQ(rc, HDF_ERR_INVALID_PARAM);
303    rc = g_wpaObj->P2pSetGroupConfig(g_wpaObj, IFNAME, networkId, "test_name", "test_value");
304    ASSERT_EQ(rc, HDF_FAILURE);
305}
306
307HWTEST_F(HdfP2pHostDirectTest, P2pInviteTest_026, TestSize.Level1)
308{
309    int32_t rc = g_wpaObj->P2pInvite(g_wpaObj, nullptr, "00:00:00:00:00:00", "11:11:11:11:11:11");
310    ASSERT_EQ(rc, HDF_ERR_INVALID_PARAM);
311    rc = g_wpaObj->P2pInvite(g_wpaObj, IFNAME, nullptr, "11:11:11:11:11:11");
312    ASSERT_EQ(rc, HDF_ERR_INVALID_PARAM);
313    rc = g_wpaObj->P2pInvite(g_wpaObj, IFNAME, "00:00:00:00:00:00", nullptr);
314    ASSERT_EQ(rc, HDF_ERR_INVALID_PARAM);
315    rc = g_wpaObj->P2pInvite(g_wpaObj, IFNAME, "00:00:00:00:00:00", "11:11:11:11:11:11");
316    ASSERT_EQ(rc, HDF_FAILURE);
317}
318
319HWTEST_F(HdfP2pHostDirectTest, P2pReinvokeTest_027, TestSize.Level1)
320{
321    int networkId = 1;
322    int32_t rc = g_wpaObj->P2pReinvoke(g_wpaObj, nullptr, networkId, "00:00:00:00:00:00");
323    ASSERT_EQ(rc, HDF_ERR_INVALID_PARAM);
324    rc = g_wpaObj->P2pReinvoke(g_wpaObj, IFNAME, networkId, nullptr);
325    ASSERT_EQ(rc, HDF_ERR_INVALID_PARAM);
326    rc = g_wpaObj->P2pReinvoke(g_wpaObj, IFNAME, networkId, "00:00:00:00:00:00");
327    ASSERT_EQ(rc, HDF_FAILURE);
328}
329
330HWTEST_F(HdfP2pHostDirectTest, P2pGetDeviceAddressTest_028, TestSize.Level1)
331{
332    char *deviceAddress = (char *)calloc(WPA_CMD_BUF_LEN, sizeof(char));
333    uint32_t deviceAddressLen = WPA_CMD_BUF_LEN;
334    int32_t rc = g_wpaObj->P2pGetDeviceAddress(g_wpaObj, nullptr, deviceAddress, deviceAddressLen);
335    ASSERT_EQ(rc, HDF_ERR_INVALID_PARAM);
336    rc = g_wpaObj->P2pGetDeviceAddress(g_wpaObj, IFNAME, nullptr, deviceAddressLen);
337    ASSERT_EQ(rc, HDF_ERR_INVALID_PARAM);
338    rc = g_wpaObj->P2pGetDeviceAddress(g_wpaObj, IFNAME, deviceAddress, deviceAddressLen);
339    ASSERT_EQ(rc, HDF_FAILURE);
340    free(deviceAddress);
341}
342
343HWTEST_F(HdfP2pHostDirectTest, P2pReqServiceDiscoveryTest_029, TestSize.Level1)
344{
345    char *replyDisc = (char *)calloc(REPLY_SIZE, sizeof(char));
346    uint32_t replyDiscLen = REPLY_SIZE;
347    struct HdiP2pReqService reqService;
348    (void)memset_s(
349        &reqService, sizeof(struct HdiP2pReqService), 0, sizeof(struct HdiP2pReqService));
350
351    int32_t rc = g_wpaObj->P2pReqServiceDiscovery(g_wpaObj, nullptr, &reqService, replyDisc, replyDiscLen);
352    ASSERT_EQ(rc, HDF_ERR_INVALID_PARAM);
353    rc = g_wpaObj->P2pReqServiceDiscovery(g_wpaObj, IFNAME, nullptr, replyDisc, replyDiscLen);
354    ASSERT_EQ(rc, HDF_ERR_INVALID_PARAM);
355    rc = g_wpaObj->P2pReqServiceDiscovery(g_wpaObj, IFNAME, &reqService, nullptr, replyDiscLen);
356    ASSERT_EQ(rc, HDF_ERR_INVALID_PARAM);
357    rc = g_wpaObj->P2pReqServiceDiscovery(g_wpaObj, IFNAME, &reqService, replyDisc, replyDiscLen);
358    ASSERT_EQ(rc, HDF_FAILURE);
359    free(replyDisc);
360}
361
362HWTEST_F(HdfP2pHostDirectTest, P2pCancelServiceDiscoveryTest_030, TestSize.Level1)
363{
364    int32_t rc = g_wpaObj->P2pCancelServiceDiscovery(g_wpaObj, nullptr, "test");
365    ASSERT_EQ(rc, HDF_ERR_INVALID_PARAM);
366    rc = g_wpaObj->P2pCancelServiceDiscovery(g_wpaObj, IFNAME, nullptr);
367    ASSERT_EQ(rc, HDF_ERR_INVALID_PARAM);
368    rc = g_wpaObj->P2pCancelServiceDiscovery(g_wpaObj, IFNAME, "test");
369    ASSERT_EQ(rc, HDF_FAILURE);
370}
371
372HWTEST_F(HdfP2pHostDirectTest, P2pRespServerDiscoveryTest_031, TestSize.Level1)
373{
374    struct HdiP2pServDiscReqInfo info;
375    (void)memset_s(
376        &info, sizeof(struct HdiP2pServDiscReqInfo), 0, sizeof(struct HdiP2pServDiscReqInfo));
377    int32_t rc = g_wpaObj->P2pRespServerDiscovery(g_wpaObj, nullptr, &info);
378    ASSERT_EQ(rc, HDF_ERR_INVALID_PARAM);
379    rc = g_wpaObj->P2pRespServerDiscovery(g_wpaObj, IFNAME, nullptr);
380    ASSERT_EQ(rc, HDF_ERR_INVALID_PARAM);
381    rc = g_wpaObj->P2pRespServerDiscovery(g_wpaObj, IFNAME, &info);
382    ASSERT_EQ(rc, HDF_FAILURE);
383}
384
385HWTEST_F(HdfP2pHostDirectTest, P2pConnectTest_032, TestSize.Level1)
386{
387    struct HdiP2pConnectInfo info;
388    (void)memset_s(
389        &info, sizeof(struct HdiP2pConnectInfo), 0, sizeof(struct HdiP2pConnectInfo));
390    char *replyPin = (char *)calloc(REPLY_SIZE, sizeof(char));
391    uint32_t replyPinLen = REPLY_SIZE;
392
393    int32_t rc = g_wpaObj->P2pConnect(g_wpaObj, nullptr, &info, replyPin, replyPinLen);
394    ASSERT_EQ(rc, HDF_ERR_INVALID_PARAM);
395    rc = g_wpaObj->P2pConnect(g_wpaObj, IFNAME, nullptr, replyPin, replyPinLen);
396    ASSERT_EQ(rc, HDF_ERR_INVALID_PARAM);
397    rc = g_wpaObj->P2pConnect(g_wpaObj, IFNAME, &info, nullptr, replyPinLen);
398    ASSERT_EQ(rc, HDF_ERR_INVALID_PARAM);
399    rc = g_wpaObj->P2pConnect(g_wpaObj, IFNAME, &info, replyPin, replyPinLen);
400    ASSERT_EQ(rc, HDF_FAILURE);
401    free(replyPin);
402}
403
404HWTEST_F(HdfP2pHostDirectTest, P2pHid2dConnectTest_033, TestSize.Level1)
405{
406    struct HdiHid2dConnectInfo info;
407    (void)memset_s(
408        &info, sizeof(struct HdiHid2dConnectInfo), 0, sizeof(struct HdiHid2dConnectInfo));
409    int32_t rc = g_wpaObj->P2pHid2dConnect(g_wpaObj, nullptr, &info);
410    ASSERT_EQ(rc, HDF_ERR_INVALID_PARAM);
411    rc = g_wpaObj->P2pHid2dConnect(g_wpaObj, IFNAME, nullptr);
412    ASSERT_EQ(rc, HDF_ERR_INVALID_PARAM);
413    rc = g_wpaObj->P2pHid2dConnect(g_wpaObj, IFNAME, &info);
414    ASSERT_EQ(rc, HDF_FAILURE);
415}
416
417HWTEST_F(HdfP2pHostDirectTest, P2pSetServDiscExternalTest_034, TestSize.Level1)
418{
419    int32_t rc = g_wpaObj->P2pSetServDiscExternal(g_wpaObj, nullptr, 0);
420    ASSERT_EQ(rc, HDF_ERR_INVALID_PARAM);
421    rc = g_wpaObj->P2pSetServDiscExternal(g_wpaObj, IFNAME, 0);
422    ASSERT_EQ(rc, HDF_FAILURE);
423}
424
425HWTEST_F(HdfP2pHostDirectTest, P2pRemoveGroupTest_035, TestSize.Level1)
426{
427    int32_t rc = g_wpaObj->P2pRemoveGroup(g_wpaObj, nullptr, "test");
428    ASSERT_EQ(rc, HDF_ERR_INVALID_PARAM);
429    rc = g_wpaObj->P2pRemoveGroup(g_wpaObj, IFNAME, nullptr);
430    ASSERT_EQ(rc, HDF_ERR_INVALID_PARAM);
431    rc = g_wpaObj->P2pRemoveGroup(g_wpaObj, IFNAME, "test");
432    ASSERT_EQ(rc, HDF_FAILURE);
433}
434
435HWTEST_F(HdfP2pHostDirectTest, P2pCancelConnectTest_036, TestSize.Level1)
436{
437    int32_t rc = g_wpaObj->P2pCancelConnect(g_wpaObj, nullptr);
438    ASSERT_EQ(rc, HDF_ERR_INVALID_PARAM);
439    rc = g_wpaObj->P2pCancelConnect(g_wpaObj, IFNAME);
440    ASSERT_EQ(rc, HDF_FAILURE);
441}
442
443HWTEST_F(HdfP2pHostDirectTest, P2pGetGroupConfigTest_037, TestSize.Level1)
444{
445    int networkId = 1;
446    char *value = (char *)calloc(REPLY_SIZE, sizeof(char));
447    uint32_t valueLen = REPLY_SIZE;
448
449    int32_t rc = g_wpaObj->P2pGetGroupConfig(g_wpaObj, nullptr, networkId, "ssid", value, valueLen);
450    ASSERT_EQ(rc, HDF_ERR_INVALID_PARAM);
451    rc = g_wpaObj->P2pGetGroupConfig(g_wpaObj, IFNAME, networkId, nullptr, value, valueLen);
452    ASSERT_EQ(rc, HDF_ERR_INVALID_PARAM);
453    rc = g_wpaObj->P2pGetGroupConfig(g_wpaObj, IFNAME, networkId, "ssid", nullptr, valueLen);
454    ASSERT_EQ(rc, HDF_ERR_INVALID_PARAM);
455    rc = g_wpaObj->P2pGetGroupConfig(g_wpaObj, IFNAME, networkId, "ssid", value, valueLen);
456    ASSERT_EQ(rc, HDF_FAILURE);
457    free(value);
458}
459
460HWTEST_F(HdfP2pHostDirectTest, P2pAddNetworkTest_038, TestSize.Level1)
461{
462    int networkId = 0;
463    int32_t rc = g_wpaObj->P2pAddNetwork(g_wpaObj, nullptr, &networkId);
464    ASSERT_EQ(rc, HDF_ERR_INVALID_PARAM);
465    rc = g_wpaObj->P2pAddNetwork(g_wpaObj, IFNAME, nullptr);
466    ASSERT_EQ(rc, HDF_ERR_INVALID_PARAM);
467    rc = g_wpaObj->P2pAddNetwork(g_wpaObj, IFNAME, &networkId);
468    ASSERT_EQ(rc, HDF_FAILURE);
469}
470
471HWTEST_F(HdfP2pHostDirectTest, P2pGetPeerTest_039, TestSize.Level1)
472{
473    struct HdiP2pDeviceInfo info;
474    (void)memset_s(
475        &info, sizeof(struct HdiP2pDeviceInfo), 0, sizeof(struct HdiP2pDeviceInfo));
476    int32_t rc = g_wpaObj->P2pGetPeer(g_wpaObj, nullptr, "00:00:00:00:00:00", &info);
477    ASSERT_EQ(rc, HDF_ERR_INVALID_PARAM);
478    rc = g_wpaObj->P2pGetPeer(g_wpaObj, IFNAME, nullptr, &info);
479    ASSERT_EQ(rc, HDF_ERR_INVALID_PARAM);
480    rc = g_wpaObj->P2pGetPeer(g_wpaObj, IFNAME, "00:00:00:00:00:00", nullptr);
481    ASSERT_EQ(rc, HDF_ERR_INVALID_PARAM);
482    rc = g_wpaObj->P2pGetPeer(g_wpaObj, IFNAME, "00:00:00:00:00:00", &info);
483    ASSERT_EQ(rc, HDF_FAILURE);
484}
485
486HWTEST_F(HdfP2pHostDirectTest, P2pGetGroupCapabilityTest_040, TestSize.Level1)
487{
488    int cap = 0;
489    int32_t rc = g_wpaObj->P2pGetGroupCapability(g_wpaObj, nullptr, "00:00:00:00:00:00", &cap);
490    ASSERT_EQ(rc, HDF_ERR_INVALID_PARAM);
491    rc = g_wpaObj->P2pGetGroupCapability(g_wpaObj, IFNAME, nullptr, &cap);
492    ASSERT_EQ(rc, HDF_ERR_INVALID_PARAM);
493    rc = g_wpaObj->P2pGetGroupCapability(g_wpaObj, IFNAME, "00:00:00:00:00:00", nullptr);
494    ASSERT_EQ(rc, HDF_ERR_INVALID_PARAM);
495    rc = g_wpaObj->P2pGetGroupCapability(g_wpaObj, IFNAME, "00:00:00:00:00:00", &cap);
496    ASSERT_EQ(rc, HDF_FAILURE);
497}
498
499HWTEST_F(HdfP2pHostDirectTest, P2pListNetworksTest_041, TestSize.Level1)
500{
501    struct HdiP2pNetworkList infoList;
502    (void)memset_s(
503        &infoList, sizeof(struct HdiP2pNetworkList), 0, sizeof(struct HdiP2pNetworkList));
504
505    int32_t rc = g_wpaObj->P2pListNetworks(g_wpaObj, nullptr, &infoList);
506    ASSERT_EQ(rc, HDF_ERR_INVALID_PARAM);
507    rc = g_wpaObj->P2pListNetworks(g_wpaObj, IFNAME, nullptr);
508    ASSERT_EQ(rc, HDF_ERR_INVALID_PARAM);
509    rc = g_wpaObj->P2pListNetworks(g_wpaObj, IFNAME, &infoList);
510    ASSERT_EQ(rc, HDF_FAILURE);
511}
512
513HWTEST_F(HdfP2pHostDirectTest, P2pSaveConfigTest_042, TestSize.Level1)
514{
515    int32_t rc = g_wpaObj->P2pSaveConfig(g_wpaObj, nullptr);
516    ASSERT_EQ(rc, HDF_ERR_INVALID_PARAM);
517    rc = g_wpaObj->P2pSaveConfig(g_wpaObj, IFNAME);
518    ASSERT_EQ(rc, HDF_FAILURE);
519}
520
521HWTEST_F(HdfP2pHostDirectTest, VendorProcessCmdTest_043, TestSize.Level1)
522{
523    int32_t rc = g_wpaObj->VendorProcessCmd(g_wpaObj, nullptr, nullptr);
524    ASSERT_EQ(rc, HDF_ERR_INVALID_PARAM);
525    rc = g_wpaObj->VendorProcessCmd(g_wpaObj, IFNAME, nullptr);
526    ASSERT_EQ(rc, HDF_FAILURE);
527}
528};
529
530