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

Commit 3314f016 authored by Chris Manton's avatar Chris Manton Committed by Automerger Merge Worker
Browse files

net_test_bta: Streamline test fixtures am: fbfa514e

parents 49377e53 fbfa514e
Loading
Loading
Loading
Loading
+46 −46
Original line number Diff line number Diff line
@@ -19,20 +19,16 @@
#include <gtest/gtest.h>
#include <sys/socket.h>

#include <memory>

#include "bta/dm/bta_dm_disc.h"
#include "bta/dm/bta_dm_disc_int.h"
#include "bta/test/bta_test_fixtures.h"
#include "stack/btm/neighbor_inquiry.h"
#include "stack/include/gatt_api.h"
#include "test/common/main_handler.h"
#include "test/fake/fake_osi.h"
#include "types/bt_transport.h"

namespace {

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

}

// Test hooks
@@ -70,37 +66,35 @@ void store_avrcp_profile_feature(tSDP_DISC_REC* sdp_rec);
}  // namespace legacy
}  // namespace bluetooth

class BtaDiscTest : public testing::Test {
class BtaInitializedTest : public BtaWithContextTest {
 protected:
  void SetUp() override {
    fake_osi_ = std::make_unique<test::fake::FakeOsi>();
    main_thread_start_up();
    BtaWithContextTest::SetUp();
    BTA_dm_init();
  }

  void TearDown() override {
    sync_main_handler();
    main_thread_shut_down();
    bta_sys_deregister(BTA_ID_DM_SEARCH);
    BtaWithContextTest::TearDown();
  }

  std::unique_ptr<test::fake::FakeOsi> fake_osi_;
};

TEST_F(BtaDiscTest, nop) {}
TEST_F(BtaInitializedTest, nop) {}

TEST_F(BtaDiscTest, DumpsysBtaDmDisc) {
TEST_F(BtaInitializedTest, DumpsysBtaDmDisc) {
  std::FILE* file = std::tmpfile();
  DumpsysBtaDmDisc(fileno(file));
}

TEST_F(BtaDiscTest, bta_dm_ble_csis_observe) {
TEST_F(BtaInitializedTest, bta_dm_ble_csis_observe) {
  bta_dm_ble_csis_observe(true, [](tBTA_DM_SEARCH_EVT, tBTA_DM_SEARCH*) {});
};

TEST_F(BtaDiscTest, bta_dm_ble_csis_observe__false) {
TEST_F(BtaInitializedTest, bta_dm_ble_csis_observe__false) {
  bta_dm_ble_csis_observe(false, [](tBTA_DM_SEARCH_EVT, tBTA_DM_SEARCH*) {});
};

TEST_F(BtaDiscTest, bta_dm_ble_scan) {
TEST_F(BtaInitializedTest, bta_dm_ble_scan) {
  // bool start, uint8_t duration_sec, bool low_latency_scan
  constexpr bool kStartLeScan = true;
  constexpr bool kStopLeScan = false;
@@ -115,41 +109,40 @@ TEST_F(BtaDiscTest, bta_dm_ble_scan) {
  bta_dm_ble_scan(kStopLeScan, duration_in_seconds, kHighLatencyScan);
}

TEST_F(BtaDiscTest, bta_dm_disc_discover_next_device) {
TEST_F(BtaInitializedTest, bta_dm_disc_discover_next_device) {
  bta_dm_disc_discover_next_device();
}

TEST_F(BtaDiscTest, bta_dm_disc_remove_device) {
TEST_F(BtaInitializedTest, bta_dm_disc_remove_device) {
  bta_dm_disc_remove_device(kRawAddress);
}

TEST_F(BtaDiscTest, bta_dm_discover_next_device) {
TEST_F(BtaInitializedTest, bta_dm_discover_next_device) {
  bluetooth::legacy::testing::bta_dm_discover_next_device();
}

TEST_F(BtaDiscTest, bta_dm_execute_queued_request) {
TEST_F(BtaInitializedTest, bta_dm_execute_queued_request) {
  bluetooth::legacy::testing::bta_dm_execute_queued_request();
}

TEST_F(BtaDiscTest, bta_dm_find_services) {
TEST_F(BtaInitializedTest, bta_dm_find_services) {
  bluetooth::legacy::testing::bta_dm_find_services(kRawAddress);
}

TEST_F(BtaDiscTest, bta_dm_inq_cmpl) {
  bluetooth::legacy::testing::bta_dm_inq_cmpl();
TEST_F(BtaInitializedTest, bta_dm_inq_cmpl) {
  bluetooth::legacy::testing::bta_dm_inq_cmpl();
}

TEST_F(BtaDiscTest, bta_dm_inq_cmpl_cb) {
TEST_F(BtaInitializedTest, bta_dm_inq_cmpl_cb) {
  tBTM_INQUIRY_CMPL complete;
  bluetooth::legacy::testing::bta_dm_inq_cmpl_cb(&complete);
}

TEST_F(BtaDiscTest, bta_dm_observe_cmpl_cb) {
TEST_F(BtaInitializedTest, bta_dm_observe_cmpl_cb) {
  tBTM_INQUIRY_CMPL complete;
  bluetooth::legacy::testing::bta_dm_observe_cmpl_cb(&complete);
}
TEST_F(BtaDiscTest, bta_dm_observe_results_cb) {
TEST_F(BtaInitializedTest, bta_dm_observe_results_cb) {
  tBTM_INQ_RESULTS result;
  const uint8_t p_eir[] = {0x0, 0x1, 0x2, 0x3};
  uint16_t eir_len = sizeof(p_eir);
@@ -157,7 +150,7 @@ TEST_F(BtaDiscTest, bta_dm_observe_results_cb) {
                                                        eir_len);
}

TEST_F(BtaDiscTest, bta_dm_opportunistic_observe_results_cb) {
TEST_F(BtaInitializedTest, bta_dm_opportunistic_observe_results_cb) {
  tBTM_INQ_RESULTS result;
  const uint8_t p_eir[] = {0x0, 0x1, 0x2, 0x3};
  uint16_t eir_len = sizeof(p_eir);
@@ -165,7 +158,7 @@ TEST_F(BtaDiscTest, bta_dm_opportunistic_observe_results_cb) {
      &result, p_eir, eir_len);
}

TEST_F(BtaDiscTest, bta_dm_queue_search) {
TEST_F(BtaInitializedTest, bta_dm_queue_search) {
  tBTA_DM_MSG msg = {
      .search = {},
  };
@@ -175,29 +168,29 @@ TEST_F(BtaDiscTest, bta_dm_queue_search) {
  bta_dm_disc_stop();
}

TEST_F(BtaDiscTest, bta_dm_read_remote_device_name) {
TEST_F(BtaInitializedTest, bta_dm_read_remote_device_name) {
  bluetooth::legacy::testing::bta_dm_read_remote_device_name(
      kRawAddress, BT_TRANSPORT_BR_EDR);
}

TEST_F(BtaDiscTest, bta_dm_search_result) {
TEST_F(BtaInitializedTest, bta_dm_search_result) {
  tBTA_DM_MSG msg = {
      .disc_result = {},
  };
  bluetooth::legacy::testing::bta_dm_search_result(&msg);
}

TEST_F(BtaDiscTest, bta_dm_search_sm_execute) {
TEST_F(BtaInitializedTest, bta_dm_search_sm_execute) {
  BT_HDR_RIGID bt_hdr = {};
  bta_dm_search_sm_execute(&bt_hdr);
}

TEST_F(BtaDiscTest, bta_dm_search_timer_cback) {
TEST_F(BtaInitializedTest, bta_dm_search_timer_cback) {
  constexpr void* kUnusedPointer = nullptr;
  bluetooth::legacy::testing::bta_dm_search_timer_cback(kUnusedPointer);
}

TEST_F(BtaDiscTest, bta_dm_service_search_remname_cback__expected_name) {
TEST_F(BtaInitializedTest, bta_dm_service_search_remname_cback__expected_name) {
  DEV_CLASS dc;
  BD_NAME bd_name;
  tBTA_DM_SEARCH_CB search_cb =
@@ -208,7 +201,8 @@ TEST_F(BtaDiscTest, bta_dm_service_search_remname_cback__expected_name) {
                                                                  dc, bd_name);
}

TEST_F(BtaDiscTest, bta_dm_service_search_remname_cback__unexpected_name) {
TEST_F(BtaInitializedTest,
       bta_dm_service_search_remname_cback__unexpected_name) {
  DEV_CLASS dc;
  BD_NAME bd_name;
  tBTA_DM_SEARCH_CB search_cb =
@@ -219,7 +213,7 @@ TEST_F(BtaDiscTest, bta_dm_service_search_remname_cback__unexpected_name) {
                                                                  dc, bd_name);
}

TEST_F(BtaDiscTest, bta_dm_start_scan) {
TEST_F(BtaInitializedTest, bta_dm_start_scan) {
  constexpr bool kLowLatencyScan = true;
  constexpr bool kHighLatencyScan = false;
  const uint8_t duration_sec = 5;
@@ -227,51 +221,57 @@ TEST_F(BtaDiscTest, bta_dm_start_scan) {
  bluetooth::legacy::testing::bta_dm_start_scan(duration_sec, kHighLatencyScan);
}

TEST_F(BtaDiscTest, store_avrcp_profile_feature) {
TEST_F(BtaInitializedTest, store_avrcp_profile_feature) {
  tSDP_DISC_REC sdp_rec = {};
  bluetooth::legacy::testing::store_avrcp_profile_feature(&sdp_rec);
}

TEST_F(BtaDiscTest, bta_dm_disc_start_device_discovery) {
TEST_F(BtaInitializedTest, bta_dm_disc_start_device_discovery) {
  bta_dm_disc_start_device_discovery(
      [](tBTA_DM_SEARCH_EVT event, tBTA_DM_SEARCH* p_data) {});
}

TEST_F(BtaDiscTest, bta_dm_disc_stop_device_discovery) {
TEST_F(BtaInitializedTest, bta_dm_disc_stop_device_discovery) {
  bta_dm_disc_stop_device_discovery();
}

TEST_F(BtaDiscTest, bta_dm_disc_start_service_discovery__BT_TRANSPORT_AUTO) {
TEST_F(BtaInitializedTest,
       bta_dm_disc_start_service_discovery__BT_TRANSPORT_AUTO) {
  bta_dm_disc_start_service_discovery(
      [](tBTA_DM_SEARCH_EVT event, tBTA_DM_SEARCH* p_data) {}, kRawAddress,
      BT_TRANSPORT_AUTO);
}

TEST_F(BtaDiscTest, bta_dm_disc_start_service_discovery__BT_TRANSPORT_BR_EDR) {
TEST_F(BtaInitializedTest,
       bta_dm_disc_start_service_discovery__BT_TRANSPORT_BR_EDR) {
  bta_dm_disc_start_service_discovery(
      [](tBTA_DM_SEARCH_EVT event, tBTA_DM_SEARCH* p_data) {}, kRawAddress,
      BT_TRANSPORT_BR_EDR);
}

TEST_F(BtaDiscTest, bta_dm_disc_start_service_discovery__BT_TRANSPORT_LE) {
TEST_F(BtaInitializedTest,
       bta_dm_disc_start_service_discovery__BT_TRANSPORT_LE) {
  bta_dm_disc_start_service_discovery(
      [](tBTA_DM_SEARCH_EVT event, tBTA_DM_SEARCH* p_data) {}, kRawAddress,
      BT_TRANSPORT_LE);
}

TEST_F(BtaDiscTest, bta_dm_disc_stop_service_discovery__BT_TRANSPORT_AUTO) {
TEST_F(BtaInitializedTest,
       bta_dm_disc_stop_service_discovery__BT_TRANSPORT_AUTO) {
  bta_dm_disc_stop_service_discovery(kRawAddress, BT_TRANSPORT_AUTO);
}

TEST_F(BtaDiscTest, bta_dm_disc_stop_service_discovery__BT_TRANSPORT_BR_EDR) {
TEST_F(BtaInitializedTest,
       bta_dm_disc_stop_service_discovery__BT_TRANSPORT_BR_EDR) {
  bta_dm_disc_stop_service_discovery(kRawAddress, BT_TRANSPORT_BR_EDR);
}

TEST_F(BtaDiscTest, bta_dm_disc_stop_service_discovery__BT_TRANSPORT_LE) {
TEST_F(BtaInitializedTest,
       bta_dm_disc_stop_service_discovery__BT_TRANSPORT_LE) {
  bta_dm_disc_stop_service_discovery(kRawAddress, BT_TRANSPORT_LE);
}

TEST_F(BtaDiscTest, init_bta_dm_search_cb__conn_id) {
TEST_F(BtaInitializedTest, init_bta_dm_search_cb__conn_id) {
  constexpr uint16_t kConnId = 123;

  // Set the global search block target field to some non-reset value
+2 −32
Original line number Diff line number Diff line
@@ -19,41 +19,11 @@
#include <gtest/gtest.h>

#include "bta/dm/bta_dm_int.h"
#include "bta/test/bta_base_test.h"
#include "osi/include/allocator.h"
#include "stack/include/bt_hdr.h"
#include "stack/include/btm_status.h"
#include "test/mock/mock_stack_btm_interface.h"
#include "bta/test/bta_test_fixtures.h"
#include "types/bluetooth/uuid.h"

using bluetooth::Uuid;

class BtaCustUuid : public BtaBaseTest {
 protected:
  void SetUp() override {
    BtaBaseTest::SetUp();
    bta_dm_cb = {};
    mock_btm_client_interface.eir.BTM_WriteEIR =
        [](BT_HDR* p_buf) -> tBTM_STATUS {
      osi_free(p_buf);
      return BTM_SUCCESS;
    };
    mock_btm_client_interface.eir.BTM_GetEirSupportedServices =
        [](uint32_t* p_eir_uuid, uint8_t** p, uint8_t max_num_uuid16,
           uint8_t* p_num_uuid16) -> uint8_t { return 0; };
    mock_btm_client_interface.eir.BTM_WriteEIR =
        [](BT_HDR* p_buf) -> tBTM_STATUS {
      osi_free(p_buf);
      return BTM_SUCCESS;
    };
    mock_btm_client_interface.local.BTM_ReadLocalDeviceNameFromController =
        [](tBTM_CMPL_CB* cb) -> tBTM_STATUS { return BTM_CMD_STARTED; };
    mock_btm_client_interface.security.BTM_SecRegister =
        [](const tBTM_APPL_INFO* p_cb_info) -> bool { return true; };
  }
  void TearDown() override { BtaBaseTest::TearDown(); }
};

namespace {
  uint32_t handle1 = 1;
  uint32_t handle2 = 2;
@@ -66,7 +36,7 @@ namespace {
}

// Test we can remove/add 128 bit custom UUID from/to bta_dm_cb.bta_custom_uuid
TEST_F(BtaCustUuid, test_add_remove_cust_uuid) {
TEST_F(BtaWithMocksTest, test_add_remove_cust_uuid) {
  tBTA_CUSTOM_UUID& curr0 = bta_dm_cb.bta_custom_uuid[0];
  tBTA_CUSTOM_UUID& curr1 = bta_dm_cb.bta_custom_uuid[1];
  tBTA_CUSTOM_UUID curr0_expect = {uuid1, handle1};
+7 −18
Original line number Diff line number Diff line
@@ -31,7 +31,7 @@
#include "bta/dm/bta_dm_sec_int.h"
#include "bta/hf_client/bta_hf_client_int.h"
#include "bta/include/bta_api.h"
#include "bta/test/bta_base_test.h"
#include "bta/test/bta_test_fixtures.h"
#include "osi/include/compat.h"
#include "osi/include/osi.h"
#include "stack/include/btm_status.h"
@@ -55,17 +55,12 @@ const RawAddress kRawAddress2({0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc});

constexpr char kRemoteName[] = "TheRemoteName";

bool bta_dm_search_sm_execute(const BT_HDR_RIGID* p_msg) { return true; }
void bta_dm_search_sm_disable() { bta_sys_deregister(BTA_ID_DM_SEARCH); }

const tBTA_SYS_REG bta_dm_search_reg = {bta_dm_search_sm_execute,
                                        bta_dm_search_sm_disable};

}  // namespace

namespace bluetooth {
namespace legacy {
namespace testing {
namespace bluetooth::legacy::testing {

const tBTA_DM_SEARCH_CB& bta_dm_disc_search_cb();
tBTA_DM_SEARCH_CB bta_dm_disc_get_search_cb();
@@ -75,18 +70,14 @@ 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
}  // namespace bluetooth
}  // namespace bluetooth::legacy::testing

class BtaDmTest : public BtaBaseTest {
class BtaDmTest : public BtaWithContextTest {
 protected:
  void SetUp() override {
    BtaBaseTest::SetUp();
    main_thread_start_up();
    post_on_bt_main([]() { log::info("Main thread started up"); });
    BtaWithContextTest::SetUp();

    bta_sys_register(BTA_ID_DM_SEARCH, &bta_dm_search_reg);
    BTA_dm_init();
    bluetooth::legacy::testing::bta_dm_init_cb();

    for (int i = 0; i < BTA_DM_NUM_PM_TIMER; i++) {
@@ -98,9 +89,7 @@ class BtaDmTest : public BtaBaseTest {
  void TearDown() override {
    bta_sys_deregister(BTA_ID_DM_SEARCH);
    bluetooth::legacy::testing::bta_dm_deinit_cb();
    post_on_bt_main([]() { log::info("Main thread shutting down"); });
    main_thread_shut_down();
    BtaBaseTest::TearDown();
    BtaWithContextTest::TearDown();
  }
};

+4 −34
Original line number Diff line number Diff line
@@ -20,7 +20,7 @@
#include <string>

#include "bta/dm/bta_dm_disc_int.h"
#include "bta/test/bta_base_test.h"
#include "bta/test/bta_test_fixtures.h"
#include "osi/include/allocator.h"
#include "test/common/main_handler.h"
#include "test/mock/mock_stack_btm_interface.h"
@@ -46,41 +46,11 @@ void bta_dm_sdp_result(tBTA_DM_MSG* p_data);
}  // namespace legacy
}  // namespace bluetooth

class BtaSdpTest : public BtaBaseTest {
class BtaSdpTest : public BtaWithHwOnTest {
 protected:
  void SetUp() override {
    BtaBaseTest::SetUp();
    test::mock::stack_gatt_api::GATT_Register.body =
        [](const bluetooth::Uuid& p_app_uuid128, const std::string name,
           tGATT_CBACK* p_cb_info, bool eatt_support) { return 5; };
    mock_btm_client_interface.eir.BTM_GetEirSupportedServices =
        [](uint32_t* p_eir_uuid, uint8_t** p, uint8_t max_num_uuid16,
           uint8_t* p_num_uuid16) -> uint8_t { return 0; };
    mock_btm_client_interface.eir.BTM_WriteEIR =
        [](BT_HDR* p_buf) -> tBTM_STATUS {
      osi_free(p_buf);
      return BTM_SUCCESS;
    };
    mock_btm_client_interface.local.BTM_ReadLocalDeviceNameFromController =
        [](tBTM_CMPL_CB* cb) -> tBTM_STATUS { return BTM_CMD_STARTED; };
    mock_btm_client_interface.security.BTM_SecRegister =
        [](const tBTM_APPL_INFO* p_cb_info) -> bool { return true; };

    main_thread_start_up();
    sync_main_handler();

    BTA_dm_on_hw_on();
  }
  void SetUp() override { BtaWithHwOnTest::SetUp(); }

  void TearDown() override {
    BTA_dm_on_hw_off();

    sync_main_handler();
    main_thread_shut_down();

    test::mock::stack_gatt_api::GATT_Register = {};
    BtaBaseTest::TearDown();
  }
  void TearDown() override { BtaWithHwOnTest::TearDown(); }
};

class BtaSdpRegisteredTest : public BtaSdpTest {
+4 −4
Original line number Diff line number Diff line
@@ -20,7 +20,7 @@
#include <sys/socket.h>

#include "bta/dm/bta_dm_sec_int.h"
#include "bta/test/bta_base_test.h"
#include "bta/test/bta_test_fixtures.h"
#include "test/mock/mock_stack_btm_inq.h"
#include "test/mock/mock_stack_btm_interface.h"
#include "types/raw_address.h"
@@ -48,11 +48,11 @@ void btm_set_local_io_caps(uint8_t io_caps);
}  // namespace legacy
}  // namespace bluetooth

class BtaSecTest : public BtaBaseTest {
class BtaSecTest : public BtaWithHwOnTest {
 protected:
  void SetUp() override { BtaBaseTest::SetUp(); }
  void SetUp() override { BtaWithHwOnTest::SetUp(); }

  void TearDown() override { BtaBaseTest::TearDown(); }
  void TearDown() override { BtaWithHwOnTest::TearDown(); }
};

TEST_F(BtaSecTest, bta_dm_sp_cback__BTM_SP_CFM_REQ_EVT_WithName) {
Loading