1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
|
#include "FWCore/TestProcessor/interface/TestProcessor.h"
#include "FWCore/Utilities/interface/Exception.h"
#include "catch.hpp"
static constexpr auto s_tag = "[Prescaler]";
TEST_CASE("Check parameters of Prescaler", s_tag) {
const std::string baseConfig{
R"_(from FWCore.TestProcessor.TestProcess import *
process = TestProcess()
process.prescale = cms.EDFilter('Prescaler',
prescaleFactor =cms.int32(3),
prescaleOffset = cms.int32(offset))
process.moduleToTest(process.prescale)
)_"};
SECTION("prescaleFactor sets how many events to fail before success") {
edm::test::TestProcessor::Config config{"offset=1\n" + baseConfig};
edm::test::TestProcessor tester(config);
REQUIRE(tester.test().modulePassed());
REQUIRE_FALSE(tester.test().modulePassed());
REQUIRE_FALSE(tester.test().modulePassed());
REQUIRE(tester.test().modulePassed());
REQUIRE_FALSE(tester.test().modulePassed());
REQUIRE_FALSE(tester.test().modulePassed());
REQUIRE(tester.test().modulePassed());
}
SECTION("prescaleOffset sets which event succeeds") {
edm::test::TestProcessor::Config config{"offset=2\n" + baseConfig};
edm::test::TestProcessor tester(config);
REQUIRE_FALSE(tester.test().modulePassed());
REQUIRE(tester.test().modulePassed());
REQUIRE_FALSE(tester.test().modulePassed());
REQUIRE_FALSE(tester.test().modulePassed());
REQUIRE(tester.test().modulePassed());
}
}
TEST_CASE("No default parameters of Prescaler", s_tag) {
const std::string config{
R"_(from FWCore.TestProcessor.TestProcess import *
process = TestProcess()
process.prescale = cms.EDFilter('Prescaler')
process.moduleToTest(process.prescale)
)_"};
REQUIRE_THROWS_AS(edm::test::TestProcessor(config), cms::Exception);
}
|