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

Commit 9bd32f1c authored by Chris Manton's avatar Chris Manton Committed by Automerger Merge Worker
Browse files

net_test_btif_stack: Disable acl during teardown am: b7886aa4 am: f6932666

parents 0e79d735 f6932666
Loading
Loading
Loading
Loading
+9 −2
Original line number Diff line number Diff line
@@ -664,7 +664,7 @@ static tBTA_DM_PEER_DEVICE* allocate_device_for(const RawAddress& bd_addr,
  return nullptr;
}

void bta_dm_acl_up(const RawAddress& bd_addr, tBT_TRANSPORT transport,
static void bta_dm_acl_up(const RawAddress& bd_addr, tBT_TRANSPORT transport,
                          uint16_t acl_handle) {
  auto device = allocate_device_for(bd_addr, transport);
  if (device == nullptr) {
@@ -1703,6 +1703,13 @@ tBTA_DM_PEER_DEVICE* allocate_device_for(const RawAddress& bd_addr,
  return ::allocate_device_for(bd_addr, transport);
}

void bta_dm_acl_up(const RawAddress& bd_addr, tBT_TRANSPORT transport,
                   uint16_t acl_handle) {
  ::bta_dm_acl_up(bd_addr, transport, acl_handle);
}
void bta_dm_acl_down(const RawAddress& bd_addr, tBT_TRANSPORT transport) {
  ::bta_dm_acl_down(bd_addr, transport);
}
void bta_dm_init_cb() { ::bta_dm_init_cb(); }
void bta_dm_deinit_cb() { ::bta_dm_deinit_cb(); }
void BTA_dm_on_hw_on() { ::BTA_dm_on_hw_on(); }
+0 −3
Original line number Diff line number Diff line
@@ -759,9 +759,6 @@ cc_test {
        "libprotobuf-cpp-lite",
        "libstatslog_bt",
    ],
    cflags: [
        "-Wno-unused-parameter",
    ],
    target: {
        android: {
            static_libs: [
+29 −19
Original line number Diff line number Diff line
@@ -41,6 +41,12 @@ namespace bluetooth::testing {
void set_hal_cbacks(bt_callbacks_t* callbacks);
}  // namespace bluetooth::testing

namespace bluetooth::legacy::testing {
void bta_dm_acl_down(const RawAddress& bd_addr, tBT_TRANSPORT transport);
void bta_dm_acl_up(const RawAddress& bd_addr, tBT_TRANSPORT transport,
                   uint16_t acl_handle);
}  // namespace bluetooth::legacy::testing

const tBTA_AG_RES_DATA tBTA_AG_RES_DATA::kEmpty = {};

using testing::Return;
@@ -53,6 +59,7 @@ module_t rust_module;
namespace {

const RawAddress kRawAddress({0x11, 0x22, 0x33, 0x44, 0x55, 0x66});
const uint16_t kHciHandle = 123;

auto timeout_time = std::chrono::seconds(3);

@@ -174,6 +181,7 @@ class BtifCoreTest : public ::testing::Test {
};

class BtifCoreWithControllerTest : public BtifCoreTest {
 protected:
  void SetUp() override {
    BtifCoreTest::SetUp();
    ON_CALL(controller_, SupportsSniffSubrating).WillByDefault(Return(true));
@@ -182,13 +190,27 @@ class BtifCoreWithControllerTest : public BtifCoreTest {
  void TearDown() override { BtifCoreTest::TearDown(); }
};

class BtifCoreWithConnectionTest : public BtifCoreWithControllerTest {
 protected:
  void SetUp() override {
    BtifCoreWithControllerTest::SetUp();
    bluetooth::legacy::testing::bta_dm_acl_up(kRawAddress, BT_TRANSPORT_AUTO,
                                              kHciHandle);
  }

  void TearDown() override {
    bluetooth::legacy::testing::bta_dm_acl_down(kRawAddress, BT_TRANSPORT_AUTO);
    BtifCoreWithControllerTest::TearDown();
  }
};

std::promise<int> promise0;
void callback0(int val) { promise0.set_value(val); }

TEST_F(BtifCoreTest, test_nop) {}

TEST_F(BtifCoreTest, test_post_on_bt_simple0) {
  const int val = 123;
  const int val = kHciHandle;
  promise0 = std::promise<int>();
  std::future<int> future0 = promise0.get_future();
  post_on_bt_jni([=]() { callback0(val); });
@@ -646,17 +668,12 @@ TEST_F(BtifUtilsTest, dump_rc_pdu) {
      dump_rc_pdu(std::numeric_limits<uint8_t>::max()).starts_with("Unknown"));
}

void bta_dm_acl_up(const RawAddress& bd_addr, tBT_TRANSPORT transport,
                   uint16_t acl_handle);

TEST_F(BtifCoreWithControllerTest, btif_dm_get_connection_state__unconnected) {
  ASSERT_EQ(0, btif_dm_get_connection_state(kRawAddress));
}

TEST_F(BtifCoreWithControllerTest,
TEST_F(BtifCoreWithConnectionTest,
       btif_dm_get_connection_state__connected_no_encryption) {
  bta_dm_acl_up(kRawAddress, BT_TRANSPORT_AUTO, 0x123);

  test::mock::stack_btm_sec::BTM_IsEncrypted.body =
      [](const RawAddress& /* bd_addr */, tBT_TRANSPORT transport) {
        switch (transport) {
@@ -671,10 +688,8 @@ TEST_F(BtifCoreWithControllerTest,
  test::mock::stack_btm_sec::BTM_IsEncrypted = {};
}

TEST_F(BtifCoreWithControllerTest,
TEST_F(BtifCoreWithConnectionTest,
       btif_dm_get_connection_state__connected_classic_encryption) {
  bta_dm_acl_up(kRawAddress, BT_TRANSPORT_AUTO, 0x123);

  test::mock::stack_btm_sec::BTM_IsEncrypted.body =
      [](const RawAddress& /* bd_addr */, tBT_TRANSPORT transport) {
        switch (transport) {
@@ -686,13 +701,12 @@ TEST_F(BtifCoreWithControllerTest,
        return false;
      };
  ASSERT_EQ(3, btif_dm_get_connection_state(kRawAddress));

  test::mock::stack_btm_sec::BTM_IsEncrypted = {};
}

TEST_F(BtifCoreWithControllerTest,
TEST_F(BtifCoreWithConnectionTest,
       btif_dm_get_connection_state__connected_le_encryption) {
  bta_dm_acl_up(kRawAddress, BT_TRANSPORT_AUTO, 0x123);

  test::mock::stack_btm_sec::BTM_IsEncrypted.body =
      [](const RawAddress& /* bd_addr */, tBT_TRANSPORT transport) {
        switch (transport) {
@@ -707,10 +721,8 @@ TEST_F(BtifCoreWithControllerTest,
  test::mock::stack_btm_sec::BTM_IsEncrypted = {};
}

TEST_F(BtifCoreWithControllerTest,
TEST_F(BtifCoreWithConnectionTest,
       btif_dm_get_connection_state__connected_both_encryption) {
  bta_dm_acl_up(kRawAddress, BT_TRANSPORT_AUTO, 0x123);

  test::mock::stack_btm_sec::BTM_IsEncrypted.body =
      [](const RawAddress& /* bd_addr */, tBT_TRANSPORT transport) {
        switch (transport) {
@@ -725,9 +737,7 @@ TEST_F(BtifCoreWithControllerTest,
  test::mock::stack_btm_sec::BTM_IsEncrypted = {};
}

TEST_F(BtifCoreWithControllerTest, btif_dm_get_connection_state_sync) {
  bta_dm_acl_up(kRawAddress, BT_TRANSPORT_AUTO, 0x123);

TEST_F(BtifCoreWithConnectionTest, btif_dm_get_connection_state_sync) {
  test::mock::stack_btm_sec::BTM_IsEncrypted.body =
      [](const RawAddress& /* bd_addr */, tBT_TRANSPORT transport) {
        switch (transport) {
+0 −6
Original line number Diff line number Diff line
@@ -45,7 +45,6 @@ struct BTA_dm_notify_remote_features_complete
struct BTA_dm_on_hw_off BTA_dm_on_hw_off;
struct BTA_dm_on_hw_on BTA_dm_on_hw_on;
struct BTA_dm_report_role_change BTA_dm_report_role_change;
struct bta_dm_acl_up bta_dm_acl_up;
struct bta_dm_add_ble_device bta_dm_add_ble_device;
struct bta_dm_add_blekey bta_dm_add_blekey;
struct bta_dm_ble_config_local_privacy bta_dm_ble_config_local_privacy;
@@ -118,11 +117,6 @@ void BTA_dm_report_role_change(const RawAddress bd_addr, tHCI_ROLE new_role,
  test::mock::bta_dm_act::BTA_dm_report_role_change(bd_addr, new_role,
                                                    hci_status);
}
void bta_dm_acl_up(const RawAddress& bd_addr, tBT_TRANSPORT transport,
                   uint16_t acl_handle) {
  inc_func_call_count(__func__);
  test::mock::bta_dm_act::bta_dm_acl_up(bd_addr, transport, acl_handle);
}
void bta_dm_add_ble_device(const RawAddress& bd_addr, tBLE_ADDR_TYPE addr_type,
                           tBT_DEVICE_TYPE dev_type) {
  inc_func_call_count(__func__);
+0 −15
Original line number Diff line number Diff line
@@ -135,21 +135,6 @@ struct BTA_dm_report_role_change {
};
extern struct BTA_dm_report_role_change BTA_dm_report_role_change;

// Name: bta_dm_acl_up
// Params: const RawAddress& bd_addr, tBT_TRANSPORT transport
// Return: void
struct bta_dm_acl_up {
  std::function<void(const RawAddress& bd_addr, tBT_TRANSPORT transport,
                     uint16_t acl_handle)>
      body{[](const RawAddress& /* bd_addr */, tBT_TRANSPORT /* transport */,
              uint16_t /* acl_handle */) {}};
  void operator()(const RawAddress& bd_addr, tBT_TRANSPORT transport,
                  uint16_t acl_handle) {
    body(bd_addr, transport, acl_handle);
  };
};
extern struct bta_dm_acl_up bta_dm_acl_up;

// Name: bta_dm_add_ble_device
// Params: const RawAddress& bd_addr, tBLE_ADDR_TYPE addr_type, tBT_DEVICE_TYPE
// dev_type Return: void
Loading