Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d6b941b9 authored by Chris Manton's avatar Chris Manton
Browse files

Extract SDP transport selection

Include test bta_dm_determine_discovery_transport

Bug: 188077107
Test: gd/cert/run
Tag: #refactor
BYPASS_LONG_LINES_REASON: Bluetooth likes 120 lines

Change-Id: Ib734338fc8876b81a34d0924ecca8a8b904f1fe4
parent 1fdaa9f1
Loading
Loading
Loading
Loading
+14 −2
Original line number Diff line number Diff line
@@ -1857,18 +1857,26 @@ static void bta_dm_discover_next_device(void) {
 * Returns          void
 *
 ******************************************************************************/
static void bta_dm_discover_device(const RawAddress& remote_bd_addr) {
static tBT_TRANSPORT bta_dm_determine_discovery_transport(
    const RawAddress& remote_bd_addr) {
  tBT_TRANSPORT transport = BT_TRANSPORT_BR_EDR;
  if (bta_dm_search_cb.transport == BT_TRANSPORT_AUTO) {
    tBT_DEVICE_TYPE dev_type;
    tBLE_ADDR_TYPE addr_type;

    BTM_ReadDevInfo(remote_bd_addr, &dev_type, &addr_type);
    if (dev_type == BT_DEVICE_TYPE_BLE || addr_type == BLE_ADDR_RANDOM)
    if (dev_type == BT_DEVICE_TYPE_BLE || addr_type == BLE_ADDR_RANDOM) {
      transport = BT_TRANSPORT_LE;
    }
  } else {
    transport = bta_dm_search_cb.transport;
  }
  return transport;
}

static void bta_dm_discover_device(const RawAddress& remote_bd_addr) {
  const tBT_TRANSPORT transport =
      bta_dm_determine_discovery_transport(remote_bd_addr);

  VLOG(1) << __func__ << " BDA: " << ADDRESS_TO_LOGGABLE_STR(remote_bd_addr);

@@ -4573,6 +4581,10 @@ void bta_dm_remname_cback(const tBTM_REMOTE_DEV_NAME* p) {
  ::bta_dm_remname_cback(p);
}

tBT_TRANSPORT bta_dm_determine_discovery_transport(const RawAddress& bd_addr) {
  return ::bta_dm_determine_discovery_transport(bd_addr);
}

}  // namespace testing
}  // namespace legacy
}  // namespace bluetooth
+30 −0
Original line number Diff line number Diff line
@@ -247,6 +247,9 @@ tBTA_DM_PEER_DEVICE* allocate_device_for(const RawAddress& bd_addr,

void bta_dm_remname_cback(const tBTM_REMOTE_DEV_NAME* p);

tBT_TRANSPORT bta_dm_determine_discovery_transport(
    const RawAddress& remote_bd_addr);

}  // namespace testing
}  // namespace legacy
}  // namespace bluetooth
@@ -471,3 +474,30 @@ TEST_F(BtaDmTest, bta_dm_remname_cback__HCI_ERR_CONNECTION_EXISTS) {
  ASSERT_EQ(1, get_func_call_count("BTM_SecDeleteRmtNameNotifyCallback"));
  ASSERT_TRUE(bta_dm_search_cb.name_discover_done);
}

TEST_F(BtaDmTest, bta_dm_determine_discovery_transport__BT_TRANSPORT_BR_EDR) {
  const RawAddress bd_addr{{0x11, 0x22, 0x33, 0x44, 0x55, 0x66}};
  bta_dm_search_cb.transport = BT_TRANSPORT_BR_EDR;

  ASSERT_EQ(BT_TRANSPORT_BR_EDR,
            bluetooth::legacy::testing::bta_dm_determine_discovery_transport(
                bd_addr));
}

TEST_F(BtaDmTest, bta_dm_determine_discovery_transport__BT_TRANSPORT_LE) {
  const RawAddress bd_addr{{0x11, 0x22, 0x33, 0x44, 0x55, 0x66}};
  bta_dm_search_cb.transport = BT_TRANSPORT_LE;

  ASSERT_EQ(BT_TRANSPORT_LE,
            bluetooth::legacy::testing::bta_dm_determine_discovery_transport(
                bd_addr));
}

TEST_F(BtaDmTest, bta_dm_determine_discovery_transport__BT_TRANSPORT_AUTO) {
  const RawAddress bd_addr{{0x11, 0x22, 0x33, 0x44, 0x55, 0x66}};
  bta_dm_search_cb.transport = BT_TRANSPORT_AUTO;

  ASSERT_EQ(BT_TRANSPORT_BR_EDR,
            bluetooth::legacy::testing::bta_dm_determine_discovery_transport(
                bd_addr));
}