Skip to content

Commit 53098ed

Browse files
committed
Add a FastTimerService unit test
1 parent 911d07f commit 53098ed

File tree

2 files changed

+137
-0
lines changed

2 files changed

+137
-0
lines changed

HLTrigger/Timer/test/BuildFile.xml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,3 +17,6 @@
1717
<use name="jemalloc"/>
1818
<use name="HLTrigger/Timer"/>
1919
</bin>
20+
21+
<test name="TestFastTimerService" command="cmsRun ${LOCALTOP}/src/HLTrigger/Timer/test/testFastTimerService_cfg.py"/>
22+
Lines changed: 134 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,134 @@
1+
# The purpose of this unit test is to execute the code
2+
# in the FastTimerService and at least verify that it
3+
# runs without crashing. There is output in the log
4+
# file and also a json file.
5+
6+
# The output times and memory usage values may vary from
7+
# one job to the next. We do not want a test that can
8+
# occasionally fail and require investigation when
9+
# nothing is wrong, so we choose not to require certain
10+
# values in the output.
11+
12+
# Besides the FastTimerService, the rest of the
13+
# configuration is of no significance. This is
14+
# just copied from another test configuration.
15+
# We just needed some modules and paths to run
16+
# in order to exercise the service.
17+
18+
import FWCore.ParameterSet.Config as cms
19+
20+
process = cms.Process("PROD1")
21+
22+
process.load('DQMServices.Core.DQMStore_cfi')
23+
24+
from HLTrigger.Timer.FastTimerService_cfi import *
25+
26+
process.FastTimerService = FastTimerService
27+
28+
process.FastTimerService.printEventSummary = True
29+
process.FastTimerService.writeJSONSummary = True
30+
process.FastTimerService.dqmTimeRange = 2000
31+
process.FastTimerService.enableDQM = True
32+
process.FastTimerService.enableDQMTransitions = True
33+
process.FastTimerService.enableDQMbyLumiSection = True
34+
process.FastTimerService.enableDQMbyModule = True
35+
process.FastTimerService.enableDQMbyPath = True
36+
process.FastTimerService.enableDQMbyProcesses = True
37+
38+
process.MessageLogger = cms.Service("MessageLogger",
39+
cerr = cms.untracked.PSet(
40+
FastReport = cms.untracked.PSet(
41+
limit = cms.untracked.int32(1000000)
42+
),
43+
threshold = cms.untracked.string('INFO')
44+
)
45+
)
46+
47+
process.options = cms.untracked.PSet(
48+
numberOfStreams = cms.untracked.uint32(1),
49+
numberOfConcurrentRuns = cms.untracked.uint32(1),
50+
numberOfConcurrentLuminosityBlocks = cms.untracked.uint32(1)
51+
)
52+
53+
process.source = cms.Source("IntSource")
54+
process.maxEvents = cms.untracked.PSet(
55+
input = cms.untracked.int32(3)
56+
)
57+
58+
process.out = cms.OutputModule("PoolOutputModule",
59+
fileName = cms.untracked.string('testFastTimerService.root')
60+
)
61+
62+
process.dqmOutput = cms.OutputModule('DQMRootOutputModule',
63+
fileName = cms.untracked.string('dqmOutput.root')
64+
)
65+
66+
process.busy1 = cms.EDProducer("BusyWaitIntProducer",ivalue = cms.int32(1), iterations = cms.uint32(10*1000*1000))
67+
68+
process.a1 = cms.EDAnalyzer("TestFindProduct",
69+
inputTags = cms.untracked.VInputTag( cms.InputTag("source") ),
70+
expectedSum = cms.untracked.int32(530021),
71+
inputTagsNotFound = cms.untracked.VInputTag(
72+
cms.InputTag("source", processName=cms.InputTag.skipCurrentProcess()),
73+
cms.InputTag("intProducer", processName=cms.InputTag.skipCurrentProcess()),
74+
cms.InputTag("intProducerU", processName=cms.InputTag.skipCurrentProcess())
75+
),
76+
inputTagsBeginProcessBlock = cms.untracked.VInputTag(
77+
cms.InputTag("intProducerBeginProcessBlock"),
78+
),
79+
inputTagsEndProcessBlock = cms.untracked.VInputTag(
80+
cms.InputTag("intProducerEndProcessBlock"),
81+
),
82+
inputTagsEndProcessBlock2 = cms.untracked.VInputTag(
83+
cms.InputTag("intProducerEndProcessBlock", "two"),
84+
),
85+
inputTagsEndProcessBlock3 = cms.untracked.VInputTag(
86+
cms.InputTag("intProducerEndProcessBlock", "three"),
87+
),
88+
inputTagsEndProcessBlock4 = cms.untracked.VInputTag(
89+
cms.InputTag("intProducerEndProcessBlock", "four"),
90+
),
91+
testGetterOfProducts = cms.untracked.bool(True)
92+
)
93+
94+
process.a2 = cms.EDAnalyzer("TestFindProduct",
95+
inputTags = cms.untracked.VInputTag( cms.InputTag("intProducerA") ),
96+
expectedSum = cms.untracked.int32(300)
97+
)
98+
99+
process.intProducer = cms.EDProducer("IntProducer", ivalue = cms.int32(1))
100+
101+
process.intProducerDeleted = cms.EDProducer("IntProducer", ivalue = cms.int32(10))
102+
103+
process.intProducerU = cms.EDProducer("IntProducer", ivalue = cms.int32(10))
104+
105+
process.intProducerA = cms.EDProducer("IntProducer", ivalue = cms.int32(100))
106+
107+
process.intVectorProducer = cms.EDProducer("IntVectorProducer",
108+
count = cms.int32(9),
109+
ivalue = cms.int32(11)
110+
)
111+
112+
process.intProducerB = cms.EDProducer("IntProducer", ivalue = cms.int32(1000))
113+
114+
process.thingProducer = cms.EDProducer("ThingProducer")
115+
116+
process.intProducerBeginProcessBlock = cms.EDProducer("IntProducerBeginProcessBlock", ivalue = cms.int32(10000))
117+
118+
process.intProducerEndProcessBlock = cms.EDProducer("IntProducerEndProcessBlock", ivalue = cms.int32(100000))
119+
120+
process.t = cms.Task(process.intProducerDeleted,
121+
process.intProducerU,
122+
process.intProducerA,
123+
process.intProducerB,
124+
process.intVectorProducer,
125+
process.intProducerBeginProcessBlock,
126+
process.intProducerEndProcessBlock
127+
)
128+
129+
process.p1 = cms.Path(process.intProducer * process.a1 * process.a2, process.t)
130+
131+
process.p2 = cms.Path(process.busy1 * process.thingProducer)
132+
133+
#process.e = cms.EndPath(process.out * process.dqmOutput)
134+

0 commit comments

Comments
 (0)