/
githubmirror
/
cmssw
Обзор
Документация
Войти
/
githubmirror
/
cmssw
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
FWStorage/Services/test/SiteLocalConfigServiceCatalogTester.cc
59 строк
3 KB
W. David Dagenhart
Reduce the memory usage of the InputFileCatalog
18 май 2026, 23:53
18 май 2026, 23:53
7e6433c
Код
Авторство
О чём код?
#include "FWCore/Framework/interface/global/EDAnalyzer.h" #include "FWCore/ParameterSet/interface/ParameterSet.h" #include "FWCore/ParameterSet/interface/ConfigurationDescriptions.h" #include "FWCore/ParameterSet/interface/ParameterSetDescription.h" #include "FWCore/ServiceRegistry/interface/Service.h" #include "FWCore/Framework/interface/MakerMacros.h" #include "FWCore/Utilities/interface/Exception.h" #include "FWStorage/Catalog/interface/SiteLocalConfig.h" #include "FWStorage/Catalog/interface/InputFileCatalog.h" #include <string> namespace edmtest { class SiteLocalConfigServiceCatalogTester : public edm::global::EDAnalyzer<> { public: SiteLocalConfigServiceCatalogTester(const edm::ParameterSet& iPSet); void analyze(edm::StreamID, const edm::Event&, const edm::EventSetup&) const override {} static void fillDescriptions(edm::ConfigurationDescriptions& descriptions); }; SiteLocalConfigServiceCatalogTester::SiteLocalConfigServiceCatalogTester(const edm::ParameterSet& iPSet) { std::string const overrideCatalog; auto const& files = iPSet.getUntrackedParameter<std::vector<edm::ParameterSet>>("files"); for (auto const& filePSet : files) { auto const& fileName = filePSet.getUntrackedParameter<std::string>("file"); unsigned int catalogIndex = filePSet.getUntrackedParameter<unsigned int>("catalogIndex"); auto const& expectResult = filePSet.getUntrackedParameter<std::string>("expectResult"); edm::InputFileCatalog catalog{std::vector{fileName}, overrideCatalog}; auto pfns = catalog.physicalFileNames(catalog.configuredFileNames()[0]); if (catalogIndex >= pfns.size()) { throw cms::Exception("Assert") << "Asked catalog " << catalogIndex << " from InputFileCatalog that had only " << pfns.size() << " entries"; } auto const& result = pfns[catalogIndex]; if (result != expectResult) { throw cms::Exception("Assert") << "InputFileCatalog gave '" << result << "' for catalog " << catalogIndex << ", expected '" << expectResult << "'"; } } } void SiteLocalConfigServiceCatalogTester::fillDescriptions(edm::ConfigurationDescriptions& descriptions) { edm::ParameterSetDescription desc; edm::ParameterSetDescription fileDesc; fileDesc.addUntracked<std::string>("file"); fileDesc.addUntracked<unsigned int>("catalogIndex"); fileDesc.addUntracked<std::string>("expectResult"); desc.addVPSetUntracked("files", fileDesc, {}); descriptions.addDefault(desc); } } // namespace edmtest using SiteLocalConfigServiceCatalogTester = edmtest::SiteLocalConfigServiceCatalogTester; DEFINE_FWK_MODULE(SiteLocalConfigServiceCatalogTester);