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
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
0093 edm::ProcessConfiguration pc2Expected("reco", id, "CMSSW_15_0", edm::HardwareResourcesDescription());
0094 CHECK(pc2 == pc2Expected);
0095 CHECK(pc2.id() == pc2Expected.id());
0096 }
0097 }
0098 }