From 599a2167fb9bfdfce4ea4bdf22b2e36b0eef8719 Mon Sep 17 00:00:00 2001 From: li-tiangang4 Date: Wed, 23 Apr 2025 11:12:25 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=91=8A=E8=AD=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: li-tiangang4 --- .../resourcemanager/capability_info_manager.h | 7 +- .../capability_info_manager.cpp | 64 ------- .../capabilityinfomanager_fuzzer.cpp | 27 --- .../resourcemanager/resource_manager_test.cpp | 173 ------------------ 4 files changed, 1 insertion(+), 270 deletions(-) diff --git a/services/distributedhardwarefwkservice/include/resourcemanager/capability_info_manager.h b/services/distributedhardwarefwkservice/include/resourcemanager/capability_info_manager.h index 6474dbae..d9bfe80a 100644 --- a/services/distributedhardwarefwkservice/include/resourcemanager/capability_info_manager.h +++ b/services/distributedhardwarefwkservice/include/resourcemanager/capability_info_manager.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2021-2024 Huawei Device Co., Ltd. + * Copyright (c) 2021-2025 Huawei Device Co., Ltd. * 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 @@ -56,11 +56,6 @@ public: int32_t RemoveCapabilityInfoByKey(const std::string &key); /* Delete data from memory cache */ int32_t RemoveCapabilityInfoInMem(const std::string &deviceId); - /* Queries distributed hardware information based on filter criteria. */ - std::map> QueryCapabilityByFilters( - const std::map &filters); - bool IsCapabilityMatchFilter(const std::shared_ptr cap, const CapabilityInfoFilter &filter, - const std::string &value); bool HasCapability(const std::string &deviceId, const std::string &dhId); void GetCapabilitiesByDeviceId(const std::string &deviceId, std::vector> &resInfos); diff --git a/services/distributedhardwarefwkservice/src/resourcemanager/capability_info_manager.cpp b/services/distributedhardwarefwkservice/src/resourcemanager/capability_info_manager.cpp index 057d5e54..6f42e03c 100644 --- a/services/distributedhardwarefwkservice/src/resourcemanager/capability_info_manager.cpp +++ b/services/distributedhardwarefwkservice/src/resourcemanager/capability_info_manager.cpp @@ -310,26 +310,6 @@ int32_t CapabilityInfoManager::RemoveCapabilityInfoInMem(const std::string &devi return DH_FWK_SUCCESS; } -std::map> CapabilityInfoManager::QueryCapabilityByFilters( - const std::map &filters) -{ - std::lock_guard lock(capInfoMgrMutex_); - std::map> capMap; - for (auto &info : globalCapInfoMap_) { - bool isMatch = true; - for (auto &filter : filters) { - if (!IsCapabilityMatchFilter(info.second, filter.first, filter.second)) { - isMatch = false; - break; - } - } - if (isMatch) { - capMap.emplace(info.first, info.second); - } - } - return capMap; -} - void CapabilityInfoManager::OnChange(const DistributedKv::ChangeNotification &changeNotification) { DHLOGI("CapabilityInfoManager: DB data OnChange"); @@ -495,50 +475,6 @@ void CapabilityInfoManager::HandleCapabilityDeleteChange(const std::vector cap, - const CapabilityInfoFilter &filter, const std::string &value) -{ - if (cap == nullptr) { - DHLOGE("cap is null"); - return false; - } - - bool isMatch = false; - switch (filter) { - case CapabilityInfoFilter::FILTER_DH_ID: { - isMatch = cap->GetDHId().compare(value) == 0; - break; - } - case CapabilityInfoFilter::FILTER_DEVICE_ID: { - isMatch = cap->GetDeviceId().compare(value) == 0; - break; - } - case CapabilityInfoFilter::FILTER_DEVICE_NAME: { - isMatch = cap->GetDeviceName().compare(value) == 0; - break; - } - case CapabilityInfoFilter::FILTER_DEVICE_TYPE: { - auto devType = static_cast(std::stoi(value)); - isMatch = cap->GetDeviceType() == devType; - break; - } - case CapabilityInfoFilter::FILTER_DH_TYPE: { - DHType dhType = (DHType)std::stoi(value); - isMatch = cap->GetDHType() == dhType; - break; - } - case CapabilityInfoFilter::FILTER_DH_ATTRS: { - isMatch = cap->GetDHAttrs().compare(value) == 0; - break; - } - default: { - isMatch = false; - break; - } - } - return isMatch; -} - void CapabilityInfoManager::GetCapabilitiesByDeviceId(const std::string &deviceId, std::vector> &resInfos) { diff --git a/services/distributedhardwarefwkservice/test/fuzztest/capabilityinfomanager_fuzzer/capabilityinfomanager_fuzzer.cpp b/services/distributedhardwarefwkservice/test/fuzztest/capabilityinfomanager_fuzzer/capabilityinfomanager_fuzzer.cpp index 79d7edbc..caac7096 100644 --- a/services/distributedhardwarefwkservice/test/fuzztest/capabilityinfomanager_fuzzer/capabilityinfomanager_fuzzer.cpp +++ b/services/distributedhardwarefwkservice/test/fuzztest/capabilityinfomanager_fuzzer/capabilityinfomanager_fuzzer.cpp @@ -127,32 +127,6 @@ void AddCapabilityInMemFuzzTest(const uint8_t* data, size_t size) CapabilityInfoManager::GetInstance()->AddCapabilityInMem(resInfos1); } -void IsCapabilityMatchFilterFuzzTest(const uint8_t* data, size_t size) -{ - if ((data == nullptr) || (size == 0)) { - return; - } - std::shared_ptr cap = nullptr; - CapabilityInfoFilter filter = CapabilityInfoFilter::FILTER_DH_ID; - std::string value(reinterpret_cast(data), size); - CapabilityInfoManager::GetInstance()->IsCapabilityMatchFilter(cap, filter, value); - - std::string dhId(reinterpret_cast(data), size); - std::string deviceId(reinterpret_cast(data), size); - std::string deviceName(reinterpret_cast(data), size); - std::string dhAttrs(reinterpret_cast(data), size); - std::string dhSubtype(reinterpret_cast(data), size); - std::shared_ptr capInfo = std::make_shared( - dhId, deviceId, deviceName, TEST_DEV_TYPE_PAD, DHType::AUDIO, dhAttrs, dhSubtype); - CapabilityInfoManager::GetInstance()->IsCapabilityMatchFilter(capInfo, filter, value); - filter = CapabilityInfoFilter::FILTER_DEVICE_ID; - CapabilityInfoManager::GetInstance()->IsCapabilityMatchFilter(capInfo, filter, value); - filter = CapabilityInfoFilter::FILTER_DEVICE_NAME; - CapabilityInfoManager::GetInstance()->IsCapabilityMatchFilter(capInfo, filter, value); - filter = CapabilityInfoFilter::FILTER_DH_ATTRS; - CapabilityInfoManager::GetInstance()->IsCapabilityMatchFilter(capInfo, filter, value); -} - void GetDataByKeyFuzzTest(const uint8_t* data, size_t size) { if ((data == nullptr) || (size == 0)) { @@ -311,7 +285,6 @@ extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) OHOS::DistributedHardware::RemoveCapabilityInfoInDBFuzzTest(data, size); OHOS::DistributedHardware::SyncDeviceInfoFromDBFuzzTest(data, size); OHOS::DistributedHardware::AddCapabilityInMemFuzzTest(data, size); - OHOS::DistributedHardware::IsCapabilityMatchFilterFuzzTest(data, size); OHOS::DistributedHardware::GetDataByKeyFuzzTest(data, size); OHOS::DistributedHardware::CapabilityInfoManagerOnChangeInsertFuzzTest(data, size); OHOS::DistributedHardware::CapabilityInfoManagerOnChangeUpdateFuzzTest(data, size); diff --git a/services/distributedhardwarefwkservice/test/unittest/common/resourcemanager/resource_manager_test.cpp b/services/distributedhardwarefwkservice/test/unittest/common/resourcemanager/resource_manager_test.cpp index b58916dd..e256e86d 100644 --- a/services/distributedhardwarefwkservice/test/unittest/common/resourcemanager/resource_manager_test.cpp +++ b/services/distributedhardwarefwkservice/test/unittest/common/resourcemanager/resource_manager_test.cpp @@ -57,13 +57,7 @@ const string DH_SUBTYPE_2 = "gps"; const string DH_SUBTYPE_3 = "screen"; const string DH_SUBTYPE_4 = "input"; constexpr uint16_t TEST_DEV_TYPE_PAD = 0x11; -constexpr uint32_t TEST_DH_TYPE_CAMERA = 0x01; -constexpr uint32_t TEST_DH_TYPE_MIC = 0x02; -constexpr uint32_t TEST_DH_TYPE_GPS = 0x10; -constexpr uint32_t TEST_DH_TYPE_DISPLAY = 0x08; -constexpr uint32_t TEST_DH_TYPE_BUTTON = 0x20; constexpr uint32_t TEST_SIZE_0 = 0; -constexpr uint32_t TEST_SIZE_2 = 2; constexpr uint32_t TEST_SIZE_5 = 5; constexpr uint32_t TEST_SIZE_10 = 10; constexpr uint32_t MAX_DB_RECORD_LENGTH = 10005; @@ -220,50 +214,6 @@ HWTEST_F(ResourceManagerTest, resource_manager_test_007, TestSize.Level0) EXPECT_EQ(CapabilityInfoManager::GetInstance()->globalCapInfoMap_.size(), TEST_SIZE_0); } -/** - * @tc.name: resource_manager_test_008 - * @tc.desc: Verify the CapabilityInfoManager QueryCapabilityByFilters function. - * @tc.type: FUNC - * @tc.require: AR000GHSJE - */ -HWTEST_F(ResourceManagerTest, resource_manager_test_008, TestSize.Level0) -{ - map queryMap0 { { CapabilityInfoFilter::FILTER_DEVICE_ID, DEV_ID_0 } }; - map queryMap1 { { CapabilityInfoFilter::FILTER_DEVICE_ID, DEV_ID_1 } }; - map queryMap2 { { CapabilityInfoFilter::FILTER_DEVICE_NAME, TEST_DEV_NAME } }; - map queryMap3 { { CapabilityInfoFilter::FILTER_DH_ID, DH_ID_0 } }; - map queryMap4 { { CapabilityInfoFilter::FILTER_DH_ID, DH_ID_1 } }; - map queryMap5 { { CapabilityInfoFilter::FILTER_DH_ID, DH_ID_2 } }; - map queryMap6 { { CapabilityInfoFilter::FILTER_DH_ID, DH_ID_3 } }; - map queryMap7 { { CapabilityInfoFilter::FILTER_DH_ID, DH_ID_4 } }; - map queryMap8 { { CapabilityInfoFilter::FILTER_DEVICE_TYPE, - to_string(TEST_DEV_TYPE_PAD) } }; - map queryMap9 { { CapabilityInfoFilter::FILTER_DH_TYPE, - to_string(TEST_DH_TYPE_CAMERA) } }; - map queryMap10 { { CapabilityInfoFilter::FILTER_DH_TYPE, - to_string(TEST_DH_TYPE_MIC) } }; - map queryMap11 { { CapabilityInfoFilter::FILTER_DH_TYPE, - to_string(TEST_DH_TYPE_GPS) } }; - map queryMap12 { { CapabilityInfoFilter::FILTER_DH_TYPE, - to_string(TEST_DH_TYPE_DISPLAY) } }; - map queryMap13 { { CapabilityInfoFilter::FILTER_DH_TYPE, - to_string(TEST_DH_TYPE_BUTTON) } }; - EXPECT_EQ(CapabilityInfoManager::GetInstance()->QueryCapabilityByFilters(queryMap0).size(), TEST_SIZE_5); - EXPECT_EQ(CapabilityInfoManager::GetInstance()->QueryCapabilityByFilters(queryMap1).size(), TEST_SIZE_5); - EXPECT_EQ(CapabilityInfoManager::GetInstance()->QueryCapabilityByFilters(queryMap2).size(), TEST_SIZE_10); - EXPECT_EQ(CapabilityInfoManager::GetInstance()->QueryCapabilityByFilters(queryMap3).size(), TEST_SIZE_2); - EXPECT_EQ(CapabilityInfoManager::GetInstance()->QueryCapabilityByFilters(queryMap4).size(), TEST_SIZE_2); - EXPECT_EQ(CapabilityInfoManager::GetInstance()->QueryCapabilityByFilters(queryMap5).size(), TEST_SIZE_2); - EXPECT_EQ(CapabilityInfoManager::GetInstance()->QueryCapabilityByFilters(queryMap6).size(), TEST_SIZE_2); - EXPECT_EQ(CapabilityInfoManager::GetInstance()->QueryCapabilityByFilters(queryMap7).size(), TEST_SIZE_2); - EXPECT_EQ(CapabilityInfoManager::GetInstance()->QueryCapabilityByFilters(queryMap8).size(), TEST_SIZE_10); - EXPECT_EQ(CapabilityInfoManager::GetInstance()->QueryCapabilityByFilters(queryMap9).size(), TEST_SIZE_2); - EXPECT_EQ(CapabilityInfoManager::GetInstance()->QueryCapabilityByFilters(queryMap10).size(), TEST_SIZE_2); - EXPECT_EQ(CapabilityInfoManager::GetInstance()->QueryCapabilityByFilters(queryMap11).size(), TEST_SIZE_2); - EXPECT_EQ(CapabilityInfoManager::GetInstance()->QueryCapabilityByFilters(queryMap12).size(), TEST_SIZE_2); - EXPECT_EQ(CapabilityInfoManager::GetInstance()->QueryCapabilityByFilters(queryMap13).size(), TEST_SIZE_2); -} - /** * @tc.name: resource_manager_test_010 * @tc.desc: Verify the GetCapabilitiesByDeviceId function. @@ -609,129 +559,6 @@ HWTEST_F(ResourceManagerTest, HandleCapabilityChange_003, TestSize.Level0) cJSON_Delete(jsonObj); } -/** - * @tc.name: IsCapabilityMatchFilter_001 - * @tc.desc: Verify the IsCapabilityMatchFilter function - * @tc.type: FUNC - * @tc.require: AR000GHSJM - */ -HWTEST_F(ResourceManagerTest, IsCapabilityMatchFilter_001, TestSize.Level0) -{ - std::shared_ptr cap = nullptr; - CapabilityInfoFilter filter = CapabilityInfoFilter::FILTER_DH_ID; - std::string value; - bool ret = CapabilityInfoManager::GetInstance()->IsCapabilityMatchFilter(cap, filter, value); - EXPECT_EQ(false, ret); -} - -/** - * @tc.name: IsCapabilityMatchFilter_002 - * @tc.desc: Verify the IsCapabilityMatchFilter function - * @tc.type: FUNC - * @tc.require: AR000GHSJM - */ -HWTEST_F(ResourceManagerTest, IsCapabilityMatchFilter_002, TestSize.Level0) -{ - std::shared_ptr cap = std::make_shared("", "", "", 0, DHType::UNKNOWN, "", ""); - CapabilityInfoFilter filter = CapabilityInfoFilter::FILTER_DH_ID; - std::string value; - bool ret = CapabilityInfoManager::GetInstance()->IsCapabilityMatchFilter(cap, filter, value); - EXPECT_EQ(true, ret); -} - -/** - * @tc.name: IsCapabilityMatchFilter_003 - * @tc.desc: Verify the IsCapabilityMatchFilter function - * @tc.type: FUNC - * @tc.require: AR000GHSJM - */ -HWTEST_F(ResourceManagerTest, IsCapabilityMatchFilter_003, TestSize.Level0) -{ - std::shared_ptr cap = std::make_shared("", "", "", 0, DHType::UNKNOWN, "", ""); - CapabilityInfoFilter filter = CapabilityInfoFilter::FILTER_DEVICE_ID; - std::string value; - bool ret = CapabilityInfoManager::GetInstance()->IsCapabilityMatchFilter(cap, filter, value); - EXPECT_EQ(true, ret); -} - -/** - * @tc.name: IsCapabilityMatchFilter_004 - * @tc.desc: Verify the IsCapabilityMatchFilter function - * @tc.type: FUNC - * @tc.require: AR000GHSJM - */ -HWTEST_F(ResourceManagerTest, IsCapabilityMatchFilter_004, TestSize.Level0) -{ - std::shared_ptr cap = std::make_shared("", "", "", 0, DHType::UNKNOWN, "", ""); - CapabilityInfoFilter filter = CapabilityInfoFilter::FILTER_DEVICE_NAME; - std::string value; - bool ret = CapabilityInfoManager::GetInstance()->IsCapabilityMatchFilter(cap, filter, value); - EXPECT_EQ(true, ret); -} - -/** - * @tc.name: IsCapabilityMatchFilter_005 - * @tc.desc: Verify the IsCapabilityMatchFilter function - * @tc.type: FUNC - * @tc.require: AR000GHSJM - */ -HWTEST_F(ResourceManagerTest, IsCapabilityMatchFilter_005, TestSize.Level0) -{ - std::shared_ptr cap = std::make_shared("", "", "", 0, DHType::UNKNOWN, "", ""); - CapabilityInfoFilter filter = CapabilityInfoFilter::FILTER_DEVICE_TYPE; - uint16_t devType = 123; - std::string value = std::to_string(devType); - bool ret = CapabilityInfoManager::GetInstance()->IsCapabilityMatchFilter(cap, filter, value); - EXPECT_EQ(false, ret); -} - -/** - * @tc.name: IsCapabilityMatchFilter_006 - * @tc.desc: Verify the IsCapabilityMatchFilter function - * @tc.type: FUNC - * @tc.require: AR000GHSJM - */ -HWTEST_F(ResourceManagerTest, IsCapabilityMatchFilter_006, TestSize.Level0) -{ - std::shared_ptr cap = std::make_shared("", "", "", 0, DHType::UNKNOWN, "", ""); - CapabilityInfoFilter filter = CapabilityInfoFilter::FILTER_DH_TYPE; - DHType dhType = DHType::AUDIO; - std::string value = std::to_string(static_cast(dhType)); - bool ret = CapabilityInfoManager::GetInstance()->IsCapabilityMatchFilter(cap, filter, value); - EXPECT_EQ(false, ret); -} - -/** - * @tc.name: IsCapabilityMatchFilter_007 - * @tc.desc: Verify the IsCapabilityMatchFilter function - * @tc.type: FUNC - * @tc.require: AR000GHSJM - */ -HWTEST_F(ResourceManagerTest, IsCapabilityMatchFilter_007, TestSize.Level0) -{ - std::shared_ptr cap = std::make_shared("", "", "", 0, DHType::UNKNOWN, "", ""); - CapabilityInfoFilter filter = CapabilityInfoFilter::FILTER_DH_ATTRS; - std::string value; - bool ret = CapabilityInfoManager::GetInstance()->IsCapabilityMatchFilter(cap, filter, value); - EXPECT_EQ(true, ret); -} - -/** - * @tc.name: IsCapabilityMatchFilter_008 - * @tc.desc: Verify the IsCapabilityMatchFilter function - * @tc.type: FUNC - * @tc.require: AR000GHSJM - */ -HWTEST_F(ResourceManagerTest, IsCapabilityMatchFilter_008, TestSize.Level0) -{ - std::shared_ptr cap = std::make_shared("", "", "", 0, DHType::UNKNOWN, "", ""); - uint32_t invalid = 6; - CapabilityInfoFilter filter = static_cast(invalid); - std::string value; - bool ret = CapabilityInfoManager::GetInstance()->IsCapabilityMatchFilter(cap, filter, value); - EXPECT_EQ(false, ret); -} - /** * @tc.name: GetCapabilitiesByDeviceId_001 * @tc.desc: Verify the GetCapabilitiesByDeviceId function -- Gitee