From 1c6ab98015e350e7c4259343837bfe0ceecbd62e Mon Sep 17 00:00:00 2001 From: Chris Manton <cmanton@google.com> Date: Mon, 6 Mar 2023 16:16:19 +0000 Subject: [PATCH] enum-ify bta::dm::tBTA_DM_SEARCH_EVT Bug: 259118978 Test: bt_host_test_bta Change-Id: I1cdb2669acf80135253b3efc2c25e889be17f167 --- system/bta/include/bta_api.h | 45 +++++++++++++++++++++++++--------- system/bta/test/bta_dm_test.cc | 26 ++++++++++++++++++++ system/btif/src/btif_dm.cc | 6 +++++ 3 files changed, 66 insertions(+), 11 deletions(-) diff --git a/system/bta/include/bta_api.h b/system/bta/include/bta_api.h index 462043facee..6b979a0f4eb 100644 --- a/system/bta/include/bta_api.h +++ b/system/bta/include/bta_api.h @@ -451,17 +451,40 @@ typedef void(tBTA_DM_SEC_CBACK)(tBTA_DM_SEC_EVT event, tBTA_DM_SEC* p_data); #define BTA_DM_BLE_PF_FILT_LOGIC_OR 0 /* Search callback events */ -#define BTA_DM_INQ_RES_EVT 0 /* Inquiry result for a peer device. */ -#define BTA_DM_INQ_CMPL_EVT 1 /* Inquiry complete. */ -#define BTA_DM_DISC_RES_EVT 2 /* Discovery result for a peer device. */ -#define BTA_DM_GATT_OVER_LE_RES_EVT \ - 3 /* GATT services over LE transport discovered */ -#define BTA_DM_DISC_CMPL_EVT 4 /* Discovery complete. */ -#define BTA_DM_SEARCH_CANCEL_CMPL_EVT 6 /* Search cancelled */ -#define BTA_DM_DID_RES_EVT 7 /* Vendor/Product ID search result */ -#define BTA_DM_GATT_OVER_SDP_RES_EVT 8 /* GATT services over SDP discovered */ - -typedef uint8_t tBTA_DM_SEARCH_EVT; +typedef enum : uint8_t { + BTA_DM_INQ_RES_EVT = 0, /* Inquiry result for a peer device. */ + BTA_DM_INQ_CMPL_EVT = 1, /* Inquiry complete. */ + BTA_DM_DISC_RES_EVT = 2, /* Discovery result for a peer device. */ + BTA_DM_GATT_OVER_LE_RES_EVT = + 3, /* GATT services over LE transport discovered */ + BTA_DM_DISC_CMPL_EVT = 4, /* Discovery complete. */ + BTA_DM_SEARCH_CANCEL_CMPL_EVT = 5, /* Search cancelled */ + BTA_DM_DID_RES_EVT = 6, /* Vendor/Product ID search result */ + BTA_DM_GATT_OVER_SDP_RES_EVT = 7, /* GATT services over SDP discovered */ +} tBTA_DM_SEARCH_EVT; + +#ifndef CASE_RETURN_TEXT +#define CASE_RETURN_TEXT(code) \ + case code: \ + return #code +#endif + +inline std::string bta_dm_search_evt_text(const tBTA_DM_SEARCH_EVT& event) { + switch (event) { + CASE_RETURN_TEXT(BTA_DM_INQ_RES_EVT); + CASE_RETURN_TEXT(BTA_DM_INQ_CMPL_EVT); + CASE_RETURN_TEXT(BTA_DM_DISC_RES_EVT); + CASE_RETURN_TEXT(BTA_DM_GATT_OVER_LE_RES_EVT); + CASE_RETURN_TEXT(BTA_DM_DISC_CMPL_EVT); + CASE_RETURN_TEXT(BTA_DM_SEARCH_CANCEL_CMPL_EVT); + CASE_RETURN_TEXT(BTA_DM_DID_RES_EVT); + CASE_RETURN_TEXT(BTA_DM_GATT_OVER_SDP_RES_EVT); + default: + return base::StringPrintf("UNKNOWN[%hhu]", event); + } +} + +#undef CASE_RETURN_TEXT /* Structure associated with BTA_DM_INQ_RES_EVT */ typedef struct { diff --git a/system/bta/test/bta_dm_test.cc b/system/bta/test/bta_dm_test.cc index b7f83afef5b..86dbec24376 100644 --- a/system/bta/test/bta_dm_test.cc +++ b/system/bta/test/bta_dm_test.cc @@ -501,3 +501,29 @@ TEST_F(BtaDmTest, bta_dm_determine_discovery_transport__BT_TRANSPORT_AUTO) { bluetooth::legacy::testing::bta_dm_determine_discovery_transport( bd_addr)); } + +TEST_F(BtaDmTest, bta_dm_search_evt_text) { + std::vector<std::pair<tBTA_DM_SEARCH_EVT, std::string>> events = { + std::make_pair(BTA_DM_INQ_RES_EVT, "BTA_DM_INQ_RES_EVT"), + std::make_pair(BTA_DM_INQ_CMPL_EVT, "BTA_DM_INQ_CMPL_EVT"), + std::make_pair(BTA_DM_DISC_RES_EVT, "BTA_DM_DISC_RES_EVT"), + std::make_pair(BTA_DM_GATT_OVER_LE_RES_EVT, + "BTA_DM_GATT_OVER_LE_RES_EVT"), + std::make_pair(BTA_DM_DISC_CMPL_EVT, "BTA_DM_DISC_CMPL_EVT"), + std::make_pair(BTA_DM_SEARCH_CANCEL_CMPL_EVT, + "BTA_DM_SEARCH_CANCEL_CMPL_EVT"), + std::make_pair(BTA_DM_DID_RES_EVT, "BTA_DM_DID_RES_EVT"), + std::make_pair(BTA_DM_GATT_OVER_SDP_RES_EVT, + "BTA_DM_GATT_OVER_SDP_RES_EVT"), + }; + for (const auto& event : events) { + ASSERT_STREQ(event.second.c_str(), + bta_dm_search_evt_text(event.first).c_str()); + } + ASSERT_STREQ( + base::StringPrintf("UNKNOWN[%hhu]", std::numeric_limits<uint8_t>::max()) + .c_str(), + bta_dm_search_evt_text( + static_cast<tBTA_DM_SEARCH_EVT>(std::numeric_limits<uint8_t>::max())) + .c_str()); +} diff --git a/system/btif/src/btif_dm.cc b/system/btif/src/btif_dm.cc index 56e98ffb80d..4facbbe589b 100644 --- a/system/btif/src/btif_dm.cc +++ b/system/btif/src/btif_dm.cc @@ -1581,6 +1581,12 @@ static void btif_dm_search_devices_evt(tBTA_DM_SEARCH_EVT event, BT_DISCOVERY_STOPPED); } } break; + case BTA_DM_GATT_OVER_LE_RES_EVT: + case BTA_DM_DID_RES_EVT: + case BTA_DM_GATT_OVER_SDP_RES_EVT: + default: + LOG_WARN("Unhandled event:%s", bta_dm_search_evt_text(event).c_str()); + break; } } -- GitLab