Back to home page

Project CMSSW displayed by LXR

 
 

    


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 }  // namespace edmtest
0043 
0044 using SiteLocalConfigServiceCatalogTester = edmtest::SiteLocalConfigServiceCatalogTester;
0045 DEFINE_FWK_MODULE(SiteLocalConfigServiceCatalogTester);