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