File indexing completed on 2023-03-17 11:03:44
0001 #include "FWCore/Framework/interface/global/EDAnalyzer.h"
0002 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0003 #include "FWCore/ServiceRegistry/interface/Service.h"
0004 #include "FWCore/Catalog/interface/SiteLocalConfig.h"
0005 #include "FWCore/Catalog/interface/InputFileCatalog.h"
0006 #include "FWCore/Framework/interface/MakerMacros.h"
0007 #include "FWCore/Utilities/interface/Exception.h"
0008
0009 #include <string>
0010
0011 namespace edmtest {
0012 class SiteLocalConfigServiceCatalogTester : public edm::global::EDAnalyzer<> {
0013 public:
0014 SiteLocalConfigServiceCatalogTester(const edm::ParameterSet& iPSet);
0015
0016 void analyze(edm::StreamID, const edm::Event&, const edm::EventSetup&) const override {}
0017 };
0018
0019 SiteLocalConfigServiceCatalogTester::SiteLocalConfigServiceCatalogTester(const edm::ParameterSet& iPSet) {
0020 std::string const overrideCatalog;
0021
0022 auto const& files = iPSet.getUntrackedParameter<std::vector<edm::ParameterSet>>("files");
0023 for (auto const& filePSet : files) {
0024 auto const& fileName = filePSet.getUntrackedParameter<std::string>("file");
0025 unsigned int catalogIndex = filePSet.getUntrackedParameter<unsigned int>("catalogIndex");
0026 auto const& expectResult = filePSet.getUntrackedParameter<std::string>("expectResult");
0027
0028 edm::InputFileCatalog catalog{std::vector{fileName}, overrideCatalog};
0029 edm::FileCatalogItem const& item = catalog.fileCatalogItems()[0];
0030 if (catalogIndex >= item.fileNames().size()) {
0031 throw cms::Exception("Assert") << "Asked catalog " << catalogIndex << " from InputFileCatalog that had only "
0032 << item.fileNames().size() << " entries";
0033 }
0034 auto const& result = item.fileName(catalogIndex);
0035
0036 if (result != expectResult) {
0037 throw cms::Exception("Assert") << "InputFileCatalog gave '" << result << "' for catalog " << catalogIndex
0038 << ", expected '" << expectResult << "'";
0039 }
0040 }
0041 }
0042 }
0043
0044 using SiteLocalConfigServiceCatalogTester = edmtest::SiteLocalConfigServiceCatalogTester;
0045 DEFINE_FWK_MODULE(SiteLocalConfigServiceCatalogTester);