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

Commit 070ce385 authored by Chris Manton's avatar Chris Manton
Browse files

bta: Update legacy bta::discovery tests

Bug: 310009436
Test: atest net_test_bta

Change-Id: Ib24d79e69569bd249d449dff0fafaaaf5bfb7e80
parent b9962c0b
Loading
Loading
Loading
Loading
+12 −3
Original line number Diff line number Diff line
@@ -23,7 +23,6 @@

#include "bta/dm/bta_dm_disc.h"
#include "bta/dm/bta_dm_int.h"
#include "osi/include/allocator.h"
#include "stack/btm/neighbor_inquiry.h"
#include "test/common/main_handler.h"
#include "test/fake/fake_osi.h"
@@ -42,6 +41,9 @@ namespace testing {

bool bta_dm_read_remote_device_name(const RawAddress& bd_addr,
                                    tBT_TRANSPORT transport);
const tBTA_DM_SEARCH_CB& bta_dm_disc_search_cb();
tBTA_DM_SEARCH_CB bta_dm_disc_get_search_cb();
void bta_dm_disc_search_cb(const tBTA_DM_SEARCH_CB& search_cb);
void bta_dm_discover_next_device();
void bta_dm_execute_queued_request();
void bta_dm_find_services(const RawAddress& bd_addr);
@@ -54,6 +56,7 @@ void bta_dm_opportunistic_observe_results_cb(tBTM_INQ_RESULTS* p_inq,
                                             const uint8_t* p_eir,
                                             uint16_t eir_len);
void bta_dm_queue_search(tBTA_DM_MSG* p_data);
void bta_dm_sdp_result(tBTA_DM_MSG* p_data);
void bta_dm_search_result(tBTA_DM_MSG* p_data);
void bta_dm_search_timer_cback(void* data);
void bta_dm_service_search_remname_cback(const RawAddress& bd_addr,
@@ -197,7 +200,10 @@ TEST_F(BtaDiscTest, bta_dm_search_timer_cback) {
TEST_F(BtaDiscTest, bta_dm_service_search_remname_cback__expected_name) {
  DEV_CLASS dc;
  tBTM_BD_NAME bd_name;
  bta_dm_search_cb.peer_bdaddr = kRawAddress;
  tBTA_DM_SEARCH_CB search_cb =
      bluetooth::legacy::testing::bta_dm_disc_get_search_cb();
  search_cb.peer_bdaddr = kRawAddress,
  bluetooth::legacy::testing::bta_dm_disc_search_cb(search_cb);
  bluetooth::legacy::testing::bta_dm_service_search_remname_cback(kRawAddress,
                                                                  dc, bd_name);
}
@@ -205,7 +211,10 @@ TEST_F(BtaDiscTest, bta_dm_service_search_remname_cback__expected_name) {
TEST_F(BtaDiscTest, bta_dm_service_search_remname_cback__unexpected_name) {
  DEV_CLASS dc;
  tBTM_BD_NAME bd_name;
  bta_dm_search_cb.peer_bdaddr = RawAddress::kAny;
  tBTA_DM_SEARCH_CB search_cb =
      bluetooth::legacy::testing::bta_dm_disc_get_search_cb();
  search_cb.peer_bdaddr = RawAddress::kAny;
  bluetooth::legacy::testing::bta_dm_disc_search_cb(search_cb);
  bluetooth::legacy::testing::bta_dm_service_search_remname_cback(kRawAddress,
                                                                  dc, bd_name);
}
+42 −22
Original line number Diff line number Diff line
@@ -29,16 +29,13 @@
#include "bta/test/bta_base_test.h"
#include "osi/include/compat.h"
#include "osi/include/osi.h"
#include "stack/include/bt_device_type.h"
#include "stack/include/btm_status.h"
#include "test/common/main_handler.h"
#include "test/common/mock_functions.h"
#include "test/mock/mock_osi_alarm.h"
#include "test/mock/mock_osi_allocator.h"
#include "test/mock/mock_stack_acl.h"
#include "test/mock/mock_stack_btm_ble.h"
#include "test/mock/mock_stack_btm_interface.h"
#include "types/ble_address_with_type.h"

using namespace std::chrono_literals;

@@ -61,9 +58,13 @@ namespace bluetooth {
namespace legacy {
namespace testing {

const tBTA_DM_SEARCH_CB& bta_dm_disc_search_cb();
tBTA_DM_SEARCH_CB bta_dm_disc_get_search_cb();
void bta_dm_deinit_cb();
void bta_dm_disc_search_cb(const tBTA_DM_SEARCH_CB& search_cb);
void bta_dm_init_cb();
void bta_dm_remote_name_cmpl(const tBTA_DM_MSG* p_data);
void bta_dm_sdp_result(tBTA_DM_MSG* p_data);

}  // namespace testing
}  // namespace legacy
@@ -363,10 +364,10 @@ TEST_F(BtaDmTest, bta_dm_state_text) {
}

TEST_F(BtaDmTest, bta_dm_remname_cback__typical) {
  bta_dm_search_cb = {
      .peer_bdaddr = kRawAddress,
      .name_discover_done = false,
  };
  tBTA_DM_SEARCH_CB search_cb =
      bluetooth::legacy::testing::bta_dm_disc_get_search_cb();
  search_cb.peer_bdaddr = kRawAddress, search_cb.name_discover_done = false,
  bluetooth::legacy::testing::bta_dm_disc_search_cb(search_cb);

  tBTM_REMOTE_DEV_NAME name = {
      .status = BTM_SUCCESS,
@@ -388,14 +389,17 @@ TEST_F(BtaDmTest, bta_dm_remname_cback__typical) {
  sync_main_handler();

  ASSERT_EQ(1, get_func_call_count("BTM_SecDeleteRmtNameNotifyCallback"));
  ASSERT_TRUE(bta_dm_search_cb.name_discover_done);
  ASSERT_TRUE(
      bluetooth::legacy::testing::bta_dm_disc_search_cb().name_discover_done);
}

TEST_F(BtaDmTest, bta_dm_remname_cback__wrong_address) {
  bta_dm_search_cb = {
      .peer_bdaddr = kRawAddress,
      .name_discover_done = false,
  };
  tBTA_DM_SEARCH_CB search_cb =
      bluetooth::legacy::testing::bta_dm_disc_get_search_cb();
  search_cb.p_search_cback = nullptr;
  search_cb.peer_bdaddr = kRawAddress;
  search_cb.name_discover_done = false;
  bluetooth::legacy::testing::bta_dm_disc_search_cb(search_cb);

  tBTM_REMOTE_DEV_NAME name = {
      .status = BTM_SUCCESS,
@@ -420,10 +424,10 @@ TEST_F(BtaDmTest, bta_dm_remname_cback__wrong_address) {
}

TEST_F(BtaDmTest, bta_dm_remname_cback__HCI_ERR_CONNECTION_EXISTS) {
  bta_dm_search_cb = {
      .peer_bdaddr = kRawAddress,
      .name_discover_done = false,
  };
  tBTA_DM_SEARCH_CB search_cb =
      bluetooth::legacy::testing::bta_dm_disc_get_search_cb();
  search_cb.peer_bdaddr = kRawAddress;
  search_cb.name_discover_done = false;

  tBTM_REMOTE_DEV_NAME name = {
      .status = BTM_SUCCESS,
@@ -445,11 +449,15 @@ TEST_F(BtaDmTest, bta_dm_remname_cback__HCI_ERR_CONNECTION_EXISTS) {
  sync_main_handler();

  ASSERT_EQ(1, get_func_call_count("BTM_SecDeleteRmtNameNotifyCallback"));
  ASSERT_TRUE(bta_dm_search_cb.name_discover_done);
  ASSERT_TRUE(
      bluetooth::legacy::testing::bta_dm_disc_search_cb().name_discover_done);
}

TEST_F(BtaDmTest, bta_dm_determine_discovery_transport__BT_TRANSPORT_BR_EDR) {
  bta_dm_search_cb.transport = BT_TRANSPORT_BR_EDR;
  tBTA_DM_SEARCH_CB search_cb =
      bluetooth::legacy::testing::bta_dm_disc_get_search_cb();
  search_cb.transport = BT_TRANSPORT_BR_EDR;
  bluetooth::legacy::testing::bta_dm_disc_search_cb(search_cb);

  ASSERT_EQ(BT_TRANSPORT_BR_EDR,
            bluetooth::legacy::testing::bta_dm_determine_discovery_transport(
@@ -457,7 +465,10 @@ TEST_F(BtaDmTest, bta_dm_determine_discovery_transport__BT_TRANSPORT_BR_EDR) {
}

TEST_F(BtaDmTest, bta_dm_determine_discovery_transport__BT_TRANSPORT_LE) {
  bta_dm_search_cb.transport = BT_TRANSPORT_LE;
  tBTA_DM_SEARCH_CB search_cb =
      bluetooth::legacy::testing::bta_dm_disc_get_search_cb();
  search_cb.transport = BT_TRANSPORT_LE;
  bluetooth::legacy::testing::bta_dm_disc_search_cb(search_cb);

  ASSERT_EQ(BT_TRANSPORT_LE,
            bluetooth::legacy::testing::bta_dm_determine_discovery_transport(
@@ -466,7 +477,10 @@ TEST_F(BtaDmTest, bta_dm_determine_discovery_transport__BT_TRANSPORT_LE) {

TEST_F(BtaDmTest,
       bta_dm_determine_discovery_transport__BT_TRANSPORT_AUTO__BR_EDR) {
  bta_dm_search_cb.transport = BT_TRANSPORT_AUTO;
  tBTA_DM_SEARCH_CB search_cb =
      bluetooth::legacy::testing::bta_dm_disc_get_search_cb();
  search_cb.transport = BT_TRANSPORT_AUTO;
  bluetooth::legacy::testing::bta_dm_disc_search_cb(search_cb);

  mock_btm_client_interface.peer.BTM_ReadDevInfo =
      [](const RawAddress& remote_bda, tBT_DEVICE_TYPE* p_dev_type,
@@ -482,7 +496,10 @@ TEST_F(BtaDmTest,

TEST_F(BtaDmTest,
       bta_dm_determine_discovery_transport__BT_TRANSPORT_AUTO__BLE__PUBLIC) {
  bta_dm_search_cb.transport = BT_TRANSPORT_AUTO;
  tBTA_DM_SEARCH_CB search_cb =
      bluetooth::legacy::testing::bta_dm_disc_get_search_cb();
  search_cb.transport = BT_TRANSPORT_AUTO;
  bluetooth::legacy::testing::bta_dm_disc_search_cb(search_cb);

  mock_btm_client_interface.peer.BTM_ReadDevInfo =
      [](const RawAddress& remote_bda, tBT_DEVICE_TYPE* p_dev_type,
@@ -498,7 +515,10 @@ TEST_F(BtaDmTest,

TEST_F(BtaDmTest,
       bta_dm_determine_discovery_transport__BT_TRANSPORT_AUTO__DUMO) {
  bta_dm_search_cb.transport = BT_TRANSPORT_AUTO;
  tBTA_DM_SEARCH_CB search_cb =
      bluetooth::legacy::testing::bta_dm_disc_get_search_cb();
  search_cb.transport = BT_TRANSPORT_AUTO;
  bluetooth::legacy::testing::bta_dm_disc_search_cb(search_cb);

  mock_btm_client_interface.peer.BTM_ReadDevInfo =
      [](const RawAddress& remote_bda, tBT_DEVICE_TYPE* p_dev_type,
+7 −1
Original line number Diff line number Diff line
@@ -37,6 +37,9 @@ namespace bluetooth {
namespace legacy {
namespace testing {

const tBTA_DM_SEARCH_CB& bta_dm_disc_search_cb();
tBTA_DM_SEARCH_CB bta_dm_disc_get_search_cb();
void bta_dm_disc_search_cb(const tBTA_DM_SEARCH_CB& search_cb);
void bta_dm_sdp_result(tBTA_DM_MSG* p_data);

}  // namespace testing
@@ -104,7 +107,10 @@ class BtaSdpRegisteredTest : public BtaSdpTest {
TEST_F(BtaSdpTest, nop) {}

TEST_F(BtaSdpRegisteredTest, bta_dm_sdp_result_SDP_SUCCESS) {
  bta_dm_search_cb.service_index = BTA_MAX_SERVICE_ID;
  tBTA_DM_SEARCH_CB search_cb =
      bluetooth::legacy::testing::bta_dm_disc_get_search_cb();
  search_cb.service_index = BTA_MAX_SERVICE_ID;
  bluetooth::legacy::testing::bta_dm_disc_search_cb(search_cb);

  tBTA_DM_MSG msg = {
      .sdp_event =