File indexing completed on 2024-04-06 12:12:50
0001 #include "FWCore/TestProcessor/interface/TestProcessor.h"
0002 #include "FWCore/Utilities/interface/Exception.h"
0003
0004 #include "catch.hpp"
0005
0006 static constexpr auto s_tag = "[Prescaler]";
0007 TEST_CASE("Check parameters of Prescaler", s_tag) {
0008 const std::string baseConfig{
0009 R"_(from FWCore.TestProcessor.TestProcess import *
0010 process = TestProcess()
0011 process.prescale = cms.EDFilter('Prescaler',
0012 prescaleFactor =cms.int32(3),
0013 prescaleOffset = cms.int32(offset))
0014 process.moduleToTest(process.prescale)
0015 )_"};
0016
0017 SECTION("prescaleFactor sets how many events to fail before success") {
0018 edm::test::TestProcessor::Config config{"offset=1\n" + baseConfig};
0019
0020 edm::test::TestProcessor tester(config);
0021 REQUIRE(tester.test().modulePassed());
0022 REQUIRE_FALSE(tester.test().modulePassed());
0023 REQUIRE_FALSE(tester.test().modulePassed());
0024 REQUIRE(tester.test().modulePassed());
0025 REQUIRE_FALSE(tester.test().modulePassed());
0026 REQUIRE_FALSE(tester.test().modulePassed());
0027 REQUIRE(tester.test().modulePassed());
0028 }
0029
0030 SECTION("prescaleOffset sets which event succeeds") {
0031 edm::test::TestProcessor::Config config{"offset=2\n" + baseConfig};
0032
0033 edm::test::TestProcessor tester(config);
0034 REQUIRE_FALSE(tester.test().modulePassed());
0035 REQUIRE(tester.test().modulePassed());
0036 REQUIRE_FALSE(tester.test().modulePassed());
0037 REQUIRE_FALSE(tester.test().modulePassed());
0038 REQUIRE(tester.test().modulePassed());
0039 }
0040 }
0041
0042 TEST_CASE("No default parameters of Prescaler", s_tag) {
0043 const std::string config{
0044 R"_(from FWCore.TestProcessor.TestProcess import *
0045 process = TestProcess()
0046 process.prescale = cms.EDFilter('Prescaler')
0047 process.moduleToTest(process.prescale)
0048 )_"};
0049
0050 REQUIRE_THROWS_AS(edm::test::TestProcessor(config), cms::Exception);
0051 }