• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 
18 #include "softbus_adapter_mem.h"
19 #include "softbus_ble_utils.h"
20 #include "softbus_broadcast_type.h"
21 #include "softbus_broadcast_utils.h"
22 #include "softbus_error_code.h"
23 #include <cstring>
24 
25 using namespace testing::ext;
26 
27 namespace OHOS {
28 
29 /**
30  * @tc.name: SoftbusBleUtilsTest_BtStatusToSoftBus
31  * @tc.desc: test bt status convert to softbus status
32  * @tc.type: FUNC
33  * @tc.require: 1
34  */
35 HWTEST(SoftbusBleUtilsTest, BtStatusToSoftBus, TestSize.Level3)
36 {
37     int32_t status = BtStatusToSoftBus(OHOS_BT_STATUS_SUCCESS);
38     EXPECT_EQ(status, SOFTBUS_BC_STATUS_SUCCESS);
39 
40     status = BtStatusToSoftBus(OHOS_BT_STATUS_FAIL);
41     EXPECT_EQ(status, SOFTBUS_BC_STATUS_FAIL);
42 
43     status = BtStatusToSoftBus(OHOS_BT_STATUS_NOT_READY);
44     EXPECT_EQ(status, SOFTBUS_BC_STATUS_NOT_READY);
45 
46     status = BtStatusToSoftBus(OHOS_BT_STATUS_NOMEM);
47     EXPECT_EQ(status, SOFTBUS_BC_STATUS_NOMEM);
48 
49     status = BtStatusToSoftBus(OHOS_BT_STATUS_BUSY);
50     EXPECT_EQ(status, SOFTBUS_BC_STATUS_BUSY);
51 
52     status = BtStatusToSoftBus(OHOS_BT_STATUS_DONE);
53     EXPECT_EQ(status, SOFTBUS_BC_STATUS_DONE);
54 
55     status = BtStatusToSoftBus(OHOS_BT_STATUS_UNSUPPORTED);
56     EXPECT_EQ(status, SOFTBUS_BC_STATUS_UNSUPPORTED);
57 
58     status = BtStatusToSoftBus(OHOS_BT_STATUS_PARM_INVALID);
59     EXPECT_EQ(status, SOFTBUS_BC_STATUS_PARM_INVALID);
60 
61     status = BtStatusToSoftBus(OHOS_BT_STATUS_UNHANDLED);
62     EXPECT_EQ(status, SOFTBUS_BC_STATUS_UNHANDLED);
63 
64     status = BtStatusToSoftBus(OHOS_BT_STATUS_AUTH_FAILURE);
65     EXPECT_EQ(status, SOFTBUS_BC_STATUS_AUTH_FAILURE);
66 
67     status = BtStatusToSoftBus(OHOS_BT_STATUS_RMT_DEV_DOWN);
68     EXPECT_EQ(status, SOFTBUS_BC_STATUS_RMT_DEV_DOWN);
69 
70     status = BtStatusToSoftBus(OHOS_BT_STATUS_AUTH_REJECTED);
71     EXPECT_EQ(status, SOFTBUS_BC_STATUS_AUTH_REJECTED);
72 
73     status = BtStatusToSoftBus(OHOS_BT_STATUS_DUPLICATED_ADDR);
74     EXPECT_EQ(status, SOFTBUS_BC_STATUS_DUPLICATED_ADDR);
75 }
76 
77 /**
78  * @tc.name: SoftbusBleUtilsTest_SoftbusAdvParamToBt
79  * @tc.desc: test softbus adv param convert to bt adv params
80  * @tc.type: FUNC
81  * @tc.require: 1
82  */
83 HWTEST(SoftbusBleUtilsTest, SoftbusAdvParamToBt, TestSize.Level3)
84 {
85     SoftbusBroadcastParam softbusAdvParam = {};
86     softbusAdvParam.minInterval = 1;
87     softbusAdvParam.maxInterval = 1;
88     softbusAdvParam.advType = 1;
89     softbusAdvParam.advFilterPolicy = 1;
90     softbusAdvParam.ownAddrType = 1;
91     softbusAdvParam.peerAddrType = 1;
92     softbusAdvParam.channelMap = 1;
93     softbusAdvParam.duration = 1;
94     softbusAdvParam.txPower = 1;
95 
96     BleAdvParams bleAdvParams = {};
97     SoftbusAdvParamToBt(&softbusAdvParam, &bleAdvParams);
98 
99     EXPECT_EQ(bleAdvParams.minInterval, softbusAdvParam.minInterval);
100     EXPECT_EQ(bleAdvParams.maxInterval, softbusAdvParam.maxInterval);
101     EXPECT_EQ(bleAdvParams.advType, softbusAdvParam.advType);
102     EXPECT_EQ(bleAdvParams.advFilterPolicy, softbusAdvParam.advFilterPolicy);
103     EXPECT_EQ(bleAdvParams.ownAddrType, softbusAdvParam.ownAddrType);
104     EXPECT_EQ(bleAdvParams.peerAddrType, softbusAdvParam.peerAddrType);
105     EXPECT_EQ(bleAdvParams.channelMap, softbusAdvParam.channelMap);
106     EXPECT_EQ(bleAdvParams.duration, softbusAdvParam.duration);
107     EXPECT_EQ(bleAdvParams.txPower, softbusAdvParam.txPower);
108 
109     softbusAdvParam.advFilterPolicy = SOFTBUS_BC_ADV_FILTER_ALLOW_SCAN_ANY_CON_WLST;
110     softbusAdvParam.advType = SOFTBUS_BC_ADV_SCAN_IND;
111     SoftbusAdvParamToBt(&softbusAdvParam, &bleAdvParams);
112     EXPECT_EQ(static_cast<int>(bleAdvParams.advFilterPolicy), static_cast<int>(softbusAdvParam.advFilterPolicy));
113     EXPECT_EQ(static_cast<int>(bleAdvParams.advType), static_cast<int>(softbusAdvParam.advType));
114 
115     softbusAdvParam.advFilterPolicy = SOFTBUS_BC_ADV_FILTER_ALLOW_SCAN_WLST_CON_WLST;
116     softbusAdvParam.advType = SOFTBUS_BC_ADV_DIRECT_IND_LOW;
117     SoftbusAdvParamToBt(&softbusAdvParam, &bleAdvParams);
118     EXPECT_EQ(static_cast<int>(bleAdvParams.advFilterPolicy), static_cast<int>(softbusAdvParam.advFilterPolicy));
119     EXPECT_EQ(static_cast<int>(bleAdvParams.advType), static_cast<int>(softbusAdvParam.advType));
120 
121     softbusAdvParam.advFilterPolicy = (SOFTBUS_BC_ADV_FILTER_ALLOW_SCAN_WLST_CON_WLST
122                                         + SOFTBUS_BC_ADV_FILTER_ALLOW_SCAN_WLST_CON_ANY);
123     softbusAdvParam.advType = (SOFTBUS_BC_ADV_DIRECT_IND_LOW + SOFTBUS_BC_ADV_DIRECT_IND_HIGH);
124     SoftbusAdvParamToBt(&softbusAdvParam, &bleAdvParams);
125     EXPECT_EQ(static_cast<int>(bleAdvParams.advFilterPolicy),
126              static_cast<int>(SOFTBUS_BC_ADV_FILTER_ALLOW_SCAN_ANY_CON_ANY));
127     EXPECT_EQ(static_cast<int>(bleAdvParams.advType), static_cast<int>(SOFTBUS_BC_ADV_IND));
128 }
129 
130 /**
131  * @tc.name: SoftbusBleUtilsTest_BtScanResultToSoftbus001
132  * @tc.desc: test bt scan result convert to softbus scan result
133  * @tc.type: FUNC
134  * @tc.require: 1
135  */
136 HWTEST(SoftbusBleUtilsTest, BtScanResultToSoftbus001, TestSize.Level3)
137 {
138     BtScanResultData btScanResult = {};
139     btScanResult.eventType = 1;
140     btScanResult.dataStatus = 1;
141     btScanResult.addrType = 1;
142     btScanResult.primaryPhy = 1;
143     btScanResult.secondaryPhy = 1;
144     btScanResult.advSid = 1;
145     btScanResult.txPower = 1;
146     btScanResult.rssi = 1;
147 
148     SoftBusBcScanResult softbusScanResult = {};
149     BtScanResultToSoftbus(&btScanResult, &softbusScanResult);
150 
151     EXPECT_EQ(softbusScanResult.eventType, btScanResult.eventType);
152     EXPECT_EQ(softbusScanResult.dataStatus, btScanResult.dataStatus);
153     EXPECT_EQ(softbusScanResult.addrType, btScanResult.addrType);
154     EXPECT_EQ(softbusScanResult.primaryPhy, btScanResult.primaryPhy);
155     EXPECT_EQ(softbusScanResult.secondaryPhy, btScanResult.secondaryPhy);
156     EXPECT_EQ(softbusScanResult.advSid, btScanResult.advSid);
157     EXPECT_EQ(softbusScanResult.txPower, btScanResult.txPower);
158     EXPECT_EQ(softbusScanResult.rssi, btScanResult.rssi);
159 }
160 
161 
162 /**
163  * @tc.name: SoftbusBleUtilsTest_BtScanResultToSoftbus002
164  * @tc.desc: test bt scan result convert to softbus scan result for BtScanDataStatusToSoftbus
165  * @tc.type: FUNC
166  * @tc.require: 1
167  */
168 HWTEST(SoftbusBleUtilsTest, BtScanResultToSoftbus002, TestSize.Level3)
169 {
170     BtScanResultData btScanResult = {};
171     btScanResult.secondaryPhy = 1;
172     btScanResult.advSid = 1;
173     btScanResult.txPower = 1;
174     btScanResult.rssi = 1;
175 
176     SoftBusBcScanResult softbusScanResult = {};
177 
178     btScanResult.eventType = OHOS_BLE_EVT_NON_CONNECTABLE_NON_SCANNABLE;
179     btScanResult.dataStatus = OHOS_BLE_DATA_INCOMPLETE_TRUNCATED;
180     btScanResult.addrType = OHOS_BLE_PUBLIC_DEVICE_ADDRESS;
181     btScanResult.primaryPhy = OHOS_BLE_SCAN_PHY_NO_PACKET;
182     BtScanResultToSoftbus(&btScanResult, &softbusScanResult);
183     EXPECT_EQ(softbusScanResult.eventType, btScanResult.eventType);
184     EXPECT_EQ(softbusScanResult.dataStatus, btScanResult.dataStatus);
185     EXPECT_EQ(softbusScanResult.addrType, btScanResult.addrType);
186     EXPECT_EQ(softbusScanResult.primaryPhy, btScanResult.primaryPhy);
187 
188     btScanResult.eventType = OHOS_BLE_EVT_SCANNABLE;
189     btScanResult.dataStatus = (OHOS_BLE_DATA_INCOMPLETE_TRUNCATED +
190                                OHOS_BLE_DATA_INCOMPLETE_MORE_TO_COME);
191     btScanResult.addrType = OHOS_BLE_PUBLIC_IDENTITY_ADDRESS;
192     btScanResult.primaryPhy = OHOS_BLE_SCAN_PHY_2M;
193     BtScanResultToSoftbus(&btScanResult, &softbusScanResult);
194     EXPECT_EQ(softbusScanResult.eventType, btScanResult.eventType);
195     EXPECT_EQ(softbusScanResult.dataStatus, SOFTBUS_BC_DATA_INCOMPLETE_TRUNCATED);
196     EXPECT_EQ(softbusScanResult.addrType, btScanResult.addrType);
197     EXPECT_EQ(softbusScanResult.primaryPhy, btScanResult.primaryPhy);
198 
199     btScanResult.eventType = OHOS_BLE_EVT_NON_CONNECTABLE_NON_SCANNABLE_DIRECTED;
200     btScanResult.dataStatus = OHOS_BLE_DATA_INCOMPLETE_MORE_TO_COME;
201     btScanResult.addrType = OHOS_BLE_RANDOM_STATIC_IDENTITY_ADDRESS;
202     btScanResult.primaryPhy = OHOS_BLE_SCAN_PHY_CODED;
203     BtScanResultToSoftbus(&btScanResult, &softbusScanResult);
204     EXPECT_EQ(softbusScanResult.eventType, btScanResult.eventType);
205     EXPECT_EQ(softbusScanResult.addrType, btScanResult.addrType);
206     EXPECT_EQ(softbusScanResult.primaryPhy, btScanResult.primaryPhy);
207 
208     btScanResult.eventType = OHOS_BLE_EVT_CONNECTABLE_DIRECTED;
209     btScanResult.addrType = OHOS_BLE_UNRESOLVABLE_RANDOM_DEVICE_ADDRESS;
210     btScanResult.primaryPhy = (OHOS_BLE_SCAN_PHY_CODED + OHOS_BLE_SCAN_PHY_1M);
211     BtScanResultToSoftbus(&btScanResult, &softbusScanResult);
212     EXPECT_EQ(softbusScanResult.eventType, btScanResult.eventType);
213     EXPECT_EQ(softbusScanResult.addrType, btScanResult.addrType);
214     EXPECT_EQ(softbusScanResult.primaryPhy, SOFTBUS_BC_SCAN_PHY_NO_PACKET);
215 }
216 
217 /**
218  * @tc.name: SoftbusBleUtilsTest_BtScanResultToSoftbus003
219  * @tc.desc: test bt scan result convert to softbus scan result for BtScanDataStatusToSoftbus
220  * @tc.type: FUNC
221  * @tc.require: 1
222  */
223 HWTEST(SoftbusBleUtilsTest, BtScanResultToSoftbus003, TestSize.Level3)
224 {
225     BtScanResultData btScanResult = {};
226     btScanResult.secondaryPhy = 1;
227     btScanResult.advSid = 1;
228     btScanResult.txPower = 1;
229     btScanResult.rssi = 1;
230 
231     SoftBusBcScanResult softbusScanResult = {};
232 
233     btScanResult.eventType = OHOS_BLE_EVT_SCANNABLE_DIRECTED;
234     btScanResult.addrType = OHOS_BLE_NO_ADDRESS;
235     BtScanResultToSoftbus(&btScanResult, &softbusScanResult);
236     EXPECT_EQ(softbusScanResult.eventType, btScanResult.eventType);
237     EXPECT_EQ(softbusScanResult.addrType, btScanResult.addrType);
238 
239     btScanResult.eventType = OHOS_BLE_EVT_LEGACY_NON_CONNECTABLE;
240     btScanResult.addrType = (OHOS_BLE_UNRESOLVABLE_RANDOM_DEVICE_ADDRESS -
241                              OHOS_BLE_RANDOM_STATIC_IDENTITY_ADDRESS);
242     BtScanResultToSoftbus(&btScanResult, &softbusScanResult);
243     EXPECT_EQ(softbusScanResult.eventType, btScanResult.eventType);
244     EXPECT_EQ(softbusScanResult.addrType, OHOS_BLE_NO_ADDRESS);
245 
246     btScanResult.eventType = OHOS_BLE_EVT_LEGACY_SCANNABLE;
247     btScanResult.addrType = OHOS_BLE_RANDOM_DEVICE_ADDRESS;
248     BtScanResultToSoftbus(&btScanResult, &softbusScanResult);
249     EXPECT_EQ(softbusScanResult.eventType, btScanResult.eventType);
250 
251     btScanResult.eventType = OHOS_BLE_EVT_LEGACY_CONNECTABLE_DIRECTED;
252     BtScanResultToSoftbus(&btScanResult, &softbusScanResult);
253     EXPECT_EQ(softbusScanResult.eventType, btScanResult.eventType);
254 
255     btScanResult.eventType = OHOS_BLE_EVT_LEGACY_SCAN_RSP_TO_ADV_SCAN;
256     BtScanResultToSoftbus(&btScanResult, &softbusScanResult);
257     EXPECT_EQ(softbusScanResult.eventType, btScanResult.eventType);
258 
259     btScanResult.eventType = OHOS_BLE_EVT_LEGACY_SCAN_RSP_TO_ADV;
260     BtScanResultToSoftbus(&btScanResult, &softbusScanResult);
261     EXPECT_EQ(softbusScanResult.eventType, btScanResult.eventType);
262 
263     btScanResult.eventType = (OHOS_BLE_EVT_LEGACY_SCAN_RSP_TO_ADV + OHOS_BLE_EVT_CONNECTABLE);
264     BtScanResultToSoftbus(&btScanResult, &softbusScanResult);
265     EXPECT_EQ(softbusScanResult.eventType, SOFTBUS_BC_EVT_NON_CONNECTABLE_NON_SCANNABLE);
266 }
267 
268 /**
269  * @tc.name: SoftbusBleUtilsTest_SoftbusFilterToBt
270  * @tc.desc: test softbus scan filter convert to bt scan filter
271  * @tc.type: FUNC
272  * @tc.require: 1
273  */
274 HWTEST(SoftbusBleUtilsTest, SoftbusFilterToBt, TestSize.Level3)
275 {
276     SoftBusBcScanFilter softBusBcScanFilter = {};
277     softBusBcScanFilter.address = (int8_t *)"address";
278     softBusBcScanFilter.deviceName = (int8_t *)"deviceName";
279     softBusBcScanFilter.serviceUuid = 1;
280     softBusBcScanFilter.serviceDataLength = 1;
281     softBusBcScanFilter.manufactureId = 1;
282     softBusBcScanFilter.manufactureDataLength = 1;
283 
284     BleScanNativeFilter bleScanNativeFilter = {};
285     SoftbusFilterToBt(&bleScanNativeFilter, &softBusBcScanFilter, 1);
286     SoftBusFree(bleScanNativeFilter.serviceData);
287     SoftBusFree(bleScanNativeFilter.serviceDataMask);
288 
289     EXPECT_EQ(bleScanNativeFilter.address, (char *)softBusBcScanFilter.address);
290     EXPECT_EQ(bleScanNativeFilter.deviceName, (char *)softBusBcScanFilter.deviceName);
291     EXPECT_EQ(bleScanNativeFilter.manufactureId, softBusBcScanFilter.manufactureId);
292     EXPECT_EQ(bleScanNativeFilter.manufactureDataLength, softBusBcScanFilter.manufactureDataLength);
293 }
294 
295 /**
296  * @tc.name: SoftbusBleUtilsTest_FreeBtFilter
297  * @tc.desc: test free bt scan filter
298  * @tc.type: FUNC
299  * @tc.require: 1
300  */
301 HWTEST(SoftbusBleUtilsTest, FreeBtFilter, TestSize.Level3)
302 {
303     BleScanNativeFilter *bleScanNativeFilter = (BleScanNativeFilter *)calloc(1, sizeof(BleScanNativeFilter));
304     FreeBtFilter(bleScanNativeFilter, 1);
305 }
306 
307 /**
308  * @tc.name: SoftbusBleUtilsTest_DumpBleScanFilter
309  * @tc.desc: test dump scan filter
310  * @tc.type: FUNC
311  * @tc.require: 1
312  */
313 HWTEST(SoftbusBleUtilsTest, DumpBleScanFilter, TestSize.Level3)
314 {
315     BleScanNativeFilter *bleScanNativeFilter = (BleScanNativeFilter *)calloc(1, sizeof(BleScanNativeFilter));
316     DumpBleScanFilter(bleScanNativeFilter, 1);
317     free(bleScanNativeFilter);
318 }
319 
320 /**
321  * @tc.name: SoftbusBleUtilsTest_GetBtScanMode
322  * @tc.desc: test get bt scan mode
323  * @tc.type: FUNC
324  * @tc.require: 1
325  */
326 HWTEST(SoftbusBleUtilsTest, GetBtScanMode, TestSize.Level3)
327 {
328     int32_t scanMode = GetBtScanMode(SOFTBUS_BC_SCAN_INTERVAL_P2, SOFTBUS_BC_SCAN_WINDOW_P2);
329     EXPECT_EQ(scanMode, OHOS_BLE_SCAN_MODE_OP_P2_60_3000);
330 
331     scanMode = GetBtScanMode(SOFTBUS_BC_SCAN_INTERVAL_P10, SOFTBUS_BC_SCAN_WINDOW_P10);
332     EXPECT_EQ(scanMode, OHOS_BLE_SCAN_MODE_OP_P10_30_300);
333 
334     scanMode = GetBtScanMode(SOFTBUS_BC_SCAN_INTERVAL_P25, SOFTBUS_BC_SCAN_WINDOW_P25);
335     EXPECT_EQ(scanMode, OHOS_BLE_SCAN_MODE_OP_P25_60_240);
336 
337     scanMode = GetBtScanMode(SOFTBUS_BC_SCAN_INTERVAL_P100, SOFTBUS_BC_SCAN_WINDOW_P100);
338     EXPECT_EQ(scanMode, OHOS_BLE_SCAN_MODE_OP_P100_1000_1000);
339 
340     scanMode = GetBtScanMode(SOFTBUS_BC_SCAN_INTERVAL_P2, SOFTBUS_BC_SCAN_WINDOW_P100);
341     EXPECT_EQ(scanMode, OHOS_BLE_SCAN_MODE_LOW_POWER);
342 
343     scanMode = GetBtScanMode(SOFTBUS_BC_SCAN_INTERVAL_P2_FAST, SOFTBUS_BC_SCAN_WINDOW_P2_FAST);
344     EXPECT_EQ(scanMode, OHOS_BLE_SCAN_MODE_OP_P2_30_1500);
345 
346     scanMode = GetBtScanMode(SOFTBUS_BC_SCAN_INTERVAL_P2_FAST, SOFTBUS_BC_SCAN_WINDOW_P100);
347     EXPECT_NE(scanMode, OHOS_BLE_SCAN_MODE_OP_P2_30_1500);
348 
349     scanMode = GetBtScanMode(SOFTBUS_BC_SCAN_INTERVAL_P10, SOFTBUS_BC_SCAN_WINDOW_P100);
350     EXPECT_NE(scanMode, OHOS_BLE_SCAN_MODE_OP_P10_30_300);
351 
352     scanMode = GetBtScanMode(SOFTBUS_BC_SCAN_INTERVAL_P25, SOFTBUS_BC_SCAN_WINDOW_P100);
353     EXPECT_NE(scanMode, OHOS_BLE_SCAN_MODE_OP_P25_60_240);
354 
355     scanMode = GetBtScanMode(SOFTBUS_BC_SCAN_INTERVAL_P50, SOFTBUS_BC_SCAN_WINDOW_P100);
356     EXPECT_NE(scanMode, OHOS_BLE_SCAN_MODE_OP_P50_30_60);
357 
358     scanMode = GetBtScanMode(SOFTBUS_BC_SCAN_INTERVAL_P75, SOFTBUS_BC_SCAN_WINDOW_P100);
359     EXPECT_NE(scanMode, OHOS_BLE_SCAN_MODE_OP_P75_30_40);
360 
361     scanMode = GetBtScanMode(SOFTBUS_BC_SCAN_INTERVAL_P100, SOFTBUS_BC_SCAN_WINDOW_P75);
362     EXPECT_NE(scanMode, OHOS_BLE_SCAN_MODE_OP_P75_30_40);
363 }
364 
365 /**
366  * @tc.name: SoftbusBleUtilsTest_AssembleAdvData
367  * @tc.desc: test assemble ble adv data
368  * @tc.type: FUNC
369  * @tc.require: 1
370  */
371 HWTEST(SoftbusBleUtilsTest, AssembleAdvData, TestSize.Level3)
372 {
373     SoftbusBroadcastData *data = (SoftbusBroadcastData *)calloc(1, sizeof(SoftbusBroadcastData));
374     data->isSupportFlag = true;
375     data->flag = 1;
376     SoftbusBroadcastPayload bcData;
377     bcData.type = BROADCAST_DATA_TYPE_SERVICE;
378     bcData.id = 1;
379     uint8_t *payload = (uint8_t *)"00112233445566";
380     bcData.payloadLen = 15;
381     bcData.payload = payload;
382     data->bcData = bcData;
383     uint16_t dataLen = 0;
384     uint8_t *advData = AssembleAdvData(data, &dataLen);
385     uint16_t expectedDataLen =
386         (data->isSupportFlag) ? bcData.payloadLen + BC_HEAD_LEN : bcData.payloadLen + BC_HEAD_LEN - BC_FLAG_LEN;
387     EXPECT_EQ(dataLen, expectedDataLen);
388     EXPECT_NE(advData, nullptr);
389 
390     SoftBusFree(advData);
391     free(data);
392 }
393 
394 /**
395  * @tc.name: SoftbusBleUtilsTest_AssembleRspData
396  * @tc.desc: test assemble ble rsp data
397  * @tc.type: FUNC
398  * @tc.require: 1
399  */
400 HWTEST(SoftbusBleUtilsTest, AssembleRspData, TestSize.Level3)
401 {
402     SoftbusBroadcastPayload rspData = {};
403     rspData.type = BROADCAST_DATA_TYPE_SERVICE;
404     rspData.id = 1;
405     uint8_t *payload = (uint8_t *)"00112233445566";
406     rspData.payloadLen = 15;
407     rspData.payload = payload;
408     uint16_t dataLen = 0;
409 
410     uint8_t *data = AssembleRspData(&rspData, &dataLen);
411     EXPECT_NE(data, nullptr);
412     uint16_t expectedDataLen = rspData.payloadLen + RSP_HEAD_LEN;
413     EXPECT_EQ(dataLen, expectedDataLen);
414     SoftBusFree(data);
415 }
416 
417 /**
418  * @tc.name: SoftbusBleUtilsTest_ParseScanResult
419  * @tc.desc: test parse ble scan result as softbus scan result
420  * @tc.type: FUNC
421  * @tc.require: 1
422  */
423 HWTEST(SoftbusBleUtilsTest, ParseScanResult, TestSize.Level3)
424 {
425     uint8_t *advData = (uint8_t *)"00112233445566";
426     uint8_t advLen = 23;
427     SoftBusBcScanResult softBusBcScanResult = {};
428     int32_t ret = ParseScanResult(advData, advLen, &softBusBcScanResult);
429     EXPECT_EQ(ret, SOFTBUS_OK);
430     SoftBusFree(softBusBcScanResult.data.bcData.payload);
431     SoftBusFree(softBusBcScanResult.data.rspData.payload);
432 
433     EXPECT_EQ(softBusBcScanResult.data.isSupportFlag, false);
434     EXPECT_EQ(softBusBcScanResult.data.bcData.type, BROADCAST_DATA_TYPE_SERVICE);
435 }
436 
437 /**
438  * @tc.name: SoftbusSetManufactureFilterTest001
439  * @tc.desc: test SoftbusSetManufactureFilter when success
440  * @tc.type: FUNC
441  * @tc.require: 1
442  */
443 HWTEST(SoftbusBleUtilsTest, SoftbusSetManufactureFilterTest001, TestSize.Level3)
444 {
445     const uint8_t filterSize = 2;
446     BleScanNativeFilter nativeFilter[filterSize];
447     SoftbusSetManufactureFilter(nativeFilter, filterSize);
448 
449     for (uint8_t i = 0; i < filterSize; i++) {
450         EXPECT_NE(nativeFilter[i].manufactureData, nullptr);
451         EXPECT_EQ(nativeFilter[i].manufactureDataLength, 1);
452         EXPECT_NE(nativeFilter[i].manufactureDataMask, nullptr);
453         EXPECT_EQ(nativeFilter[i].manufactureId, 0x027D);
454         SoftBusFree(nativeFilter[i].manufactureData);
455         SoftBusFree(nativeFilter[i].manufactureDataMask);
456     }
457 }
458 
459 /**
460  * @tc.name: SoftbusSetManufactureFilterTest002
461  * @tc.desc: test SoftbusSetManufactureFilter when nativeFilter is nullptr
462  * @tc.type: FUNC
463  * @tc.require: 1
464  */
465 HWTEST(SoftbusBleUtilsTest, SoftbusSetManufactureFilterTest002, TestSize.Level3)
466 {
467     const uint8_t filterSize = 2;
468     SoftbusSetManufactureFilter(nullptr, filterSize);
469     EXPECT_EQ(filterSize, 2);
470 }
471 
472 /**
473  * @tc.name: SoftbusSetManufactureFilterTest003
474  * @tc.desc: test SoftbusSetManufactureFilter when filterSize = 0
475  * @tc.type: FUNC
476  * @tc.require: 1
477  */
478 HWTEST(SoftbusBleUtilsTest, SoftbusSetManufactureFilterTest003, TestSize.Level3)
479 {
480     const uint8_t filterSize = 0;
481     BleScanNativeFilter nativeFilter[1];
482     SoftbusSetManufactureFilter(nativeFilter, filterSize);
483     EXPECT_EQ(filterSize, 0);
484 }
485 } // namespace OHOS
486