Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2025-02-27 07:20:00

0001 #define CATCH_CONFIG_MAIN
0002 #include "catch.hpp"
0003 #include "DataFormats/Provenance/interface/ProcessConfiguration.h"
0004 #include "DataFormats/Provenance/interface/ParameterSetID.h"
0005 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0006 #include "FWCore/Utilities/interface/Exception.h"
0007 
0008 #include <cassert>
0009 #include <iostream>
0010 #include <string>
0011 
0012 TEST_CASE("test ProcessConfiguration", "[ProcessConfiguration]") {
0013   edm::ParameterSet dummyPset;
0014   dummyPset.registerIt();
0015   edm::ParameterSetID id = dummyPset.id();
0016   SECTION("default initialize") {
0017     SECTION("self operator==") {
0018       edm::ProcessConfiguration pc1;
0019       pc1.setParameterSetID(id);
0020       REQUIRE(pc1 == pc1);
0021     }
0022     SECTION("equivalence") {
0023       edm::ProcessConfiguration pc1;
0024       edm::ProcessConfiguration pc2;
0025       pc1.setParameterSetID(id);
0026       pc2.setParameterSetID(id);
0027       REQUIRE(pc1 == pc2);
0028     }
0029   }
0030   SECTION("non-default initialized") {
0031     edm::ProcessConfiguration pc1;
0032     edm::ProcessConfiguration pc2("reco2", edm::ParameterSetID(), "", edm::HardwareResourcesDescription());
0033     edm::ProcessConfiguration pc3("reco3", edm::ParameterSetID(), "", edm::HardwareResourcesDescription());
0034     pc1.setParameterSetID(id);
0035     pc2.setParameterSetID(id);
0036     pc3.setParameterSetID(id);
0037     edm::ProcessConfigurationID id1 = pc1.id();
0038     edm::ProcessConfigurationID id2 = pc2.id();
0039     edm::ProcessConfigurationID id3 = pc3.id();
0040 
0041     SECTION("non-equivalence") {
0042       REQUIRE(id1 != id2);
0043       REQUIRE(id2 != id3);
0044       REQUIRE(id3 != id1);
0045     }
0046 
0047     SECTION("equivalence") {
0048       edm::ProcessConfiguration pc4("reco2", edm::ParameterSetID(), "", edm::HardwareResourcesDescription());
0049       pc4.setParameterSetID(id);
0050       edm::ProcessConfigurationID id4 = pc4.id();
0051       REQUIRE(pc4 == pc2);
0052       REQUIRE(id4 == id2);
0053     }
0054   }
0055 
0056   SECTION("reduced") {
0057     SECTION("Release version") {
0058       edm::ProcessConfiguration pc1("reco", id, "CMSSW_15_0_0", edm::HardwareResourcesDescription());
0059       edm::ProcessConfiguration pc2("reco", id, "CMSSW_15_1_0", edm::HardwareResourcesDescription());
0060       edm::ProcessConfiguration pc3("reco", id, "CMSSW_15_0_1", edm::HardwareResourcesDescription());
0061 
0062       REQUIRE(pc1.id() != pc2.id());
0063       REQUIRE(pc1.id() != pc3.id());
0064       REQUIRE(pc2.id() != pc3.id());
0065 
0066       pc1.reduce();
0067       pc2.reduce();
0068       pc3.reduce();
0069 
0070       CHECK(pc1.id() != pc2.id());
0071       CHECK(pc1.id() == pc3.id());
0072 
0073       // following behavior was originally tested in ProcessHistory_t
0074       edm::ProcessConfiguration pc1Expected("reco", id, "CMSSW_15_0", edm::HardwareResourcesDescription());
0075       CHECK(pc1 == pc1Expected);
0076       CHECK(pc1.id() == pc1Expected.id());
0077     }
0078 
0079     SECTION("Hardware resources") {
0080       edm::HardwareResourcesDescription hrd;
0081       edm::ProcessConfiguration pc1("reco", id, "CMSSW_15_0_0", hrd);
0082       hrd.microarchitecture = "fred";
0083       edm::ProcessConfiguration pc2("reco", id, "CMSSW_15_0_0", hrd);
0084 
0085       REQUIRE(pc1.id() != pc2.id());
0086 
0087       pc1.reduce();
0088       pc2.reduce();
0089 
0090       CHECK(pc1.id() == pc2.id());
0091 
0092       // following behavior was originally tested in ProcessHistory_t
0093       edm::ProcessConfiguration pc2Expected("reco", id, "CMSSW_15_0", edm::HardwareResourcesDescription());
0094       CHECK(pc2 == pc2Expected);
0095       CHECK(pc2.id() == pc2Expected.id());
0096     }
0097   }
0098 }