/* * Copyright 2022 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include #include #include #include #include "bta/dm/bta_dm_int.h" #include "test/common/main_handler.h" #include "test/mock/mock_osi_alarm.h" #include "test/mock/mock_osi_allocator.h" #include "test/mock/mock_stack_gatt_api.h" void BTA_dm_on_hw_on(); void BTA_dm_on_hw_off(); struct alarm_t { alarm_t(const char* name){}; int any_value; }; class BtaSdpTest : public testing::Test { protected: void SetUp() override { test::mock::osi_allocator::osi_calloc.body = [](size_t size) -> void* { return calloc(1, size); }; test::mock::osi_allocator::osi_free.body = [](void* ptr) { free(ptr); }; test::mock::osi_alarm::alarm_new.body = [](const char* name) -> alarm_t* { return new alarm_t(name); }; test::mock::osi_alarm::alarm_free.body = [](alarm_t* alarm) { delete alarm; }; 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; }; main_thread_start_up(); sync_main_handler(); BTA_dm_on_hw_on(); } void TearDown() override { BTA_dm_on_hw_off(); sync_main_handler(); main_thread_shut_down(); test::mock::stack_gatt_api::GATT_Register = {}; test::mock::osi_allocator::osi_calloc = {}; test::mock::osi_allocator::osi_free = {}; test::mock::osi_alarm::alarm_new = {}; test::mock::osi_alarm::alarm_free = {}; } }; class BtaSdpRegisteredTest : public BtaSdpTest { protected: void SetUp() override { BtaSdpTest::SetUp(); bta_sys_register(BTA_ID_DM_SEARCH, &bta_sys_reg); } void TearDown() override { bta_sys_deregister(BTA_ID_DM_SEARCH); BtaSdpTest::TearDown(); } tBTA_SYS_REG bta_sys_reg = { .evt_hdlr = [](BT_HDR_RIGID* p_msg) -> bool { osi_free(p_msg); return false; }, .disable = []() {}, }; }; 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_MSG msg = { .sdp_event = { .sdp_result = SDP_SUCCESS, }, }; bta_dm_sdp_result(&msg); }