|
| 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