|
8 | 8 | process.load("FWCore.Services.DependencyGraph_cfi")
|
9 | 9 | process.DependencyGraph.fileName = "test_module_delete_dependencygraph.gv"
|
10 | 10 |
|
11 |
| -intEventProducer = cms.EDProducer("IntProducer", ivalue = cms.int32(1)) |
12 |
| -intEventProducerMustRun = cms.EDProducer("edmtest::MustRunIntProducer", ivalue = cms.int32(1), mustRunEvent = cms.bool(True)) |
13 |
| -intEventConsumer = cms.EDAnalyzer("IntTestAnalyzer", |
14 |
| - moduleLabel = cms.untracked.InputTag("producerEventConsumed"), |
15 |
| - valueMustMatch = cms.untracked.int32(1) |
16 |
| -) |
17 |
| -intGenericConsumer = cms.EDAnalyzer("edmtest::GenericIntsAnalyzer", |
18 |
| - srcEvent = cms.untracked.VInputTag(), |
19 |
| - inputShouldExist = cms.untracked.bool(True) |
20 |
| -) |
21 |
| - |
22 |
| -process.producerAEventConsumedInB = intEventProducer.clone(ivalue = 1) |
23 |
| -process.producerAEventConsumedInBA = intEventProducer.clone(ivalue = 10) |
24 |
| - |
| 11 | +# Each of these modules declares it produces a product that is not consumed. |
| 12 | +# The TestModuleDeleteAnalyzer will test in its beginJob transition that the |
| 13 | +# producer module was deleted. |
25 | 14 | process.producerEventNotConsumed = cms.EDProducer("edmtest::TestModuleDeleteProducer")
|
26 | 15 | process.producerBeginLumiNotConsumed = cms.EDProducer("edmtest::TestModuleDeleteInLumiProducer")
|
27 | 16 | process.producerBeginRunNotConsumed = cms.EDProducer("edmtest::TestModuleDeleteInRunProducer")
|
28 | 17 | process.producerBeginProcessNotConsumed = cms.EDProducer("edmtest::TestModuleDeleteInProcessProducer")
|
29 | 18 |
|
30 |
| -# These producers do not get the event transitions for the events |
31 |
| -# where the same-name producers in the SubProcesses produce a product. |
32 |
| -# Nevertheless, these producers must not be deleted early, because |
33 |
| -# their event transitions might get called. |
34 |
| -process.producerEventMaybeConsumedInB = intEventProducerMustRun.clone(mustRunEvent=False) |
35 |
| -process.producerEventMaybeConsumedInBA = intEventProducerMustRun.clone(mustRunEvent=False) |
36 |
| - |
37 |
| -process.producerAEventNotConsumedInB = cms.EDProducer("edmtest::TestModuleDeleteProducer") |
38 |
| -process.producerAEventNotConsumedInBA = cms.EDProducer("edmtest::TestModuleDeleteProducer") |
39 |
| - |
40 |
| -process.producerEventConsumedInB1 = intEventProducerMustRun.clone() |
41 |
| -process.producerEventConsumedInB2 = intEventProducerMustRun.clone() |
42 |
| -process.producerEventConsumedInBA1 = intEventProducerMustRun.clone() |
43 |
| -process.producerEventConsumedInBA2 = intEventProducerMustRun.clone() |
44 |
| - |
45 | 19 | process.intAnalyzerDelete = cms.EDAnalyzer("edmtest::TestModuleDeleteAnalyzer")
|
46 | 20 |
|
47 | 21 | process.t = cms.Task(
|
48 |
| - process.producerAEventConsumedInB, |
49 |
| - # |
50 |
| - process.producerAEventConsumedInBA, |
51 |
| - # |
52 | 22 | process.producerEventNotConsumed,
|
53 | 23 | process.producerBeginLumiNotConsumed,
|
54 | 24 | process.producerBeginRunNotConsumed,
|
55 |
| - process.producerBeginProcessNotConsumed, |
56 |
| - # |
57 |
| - process.producerEventMaybeConsumedInB, |
58 |
| - process.producerEventMaybeConsumedInBA, |
59 |
| - # |
60 |
| - process.producerAEventNotConsumedInB, |
61 |
| - process.producerAEventNotConsumedInBA, |
62 |
| - # |
63 |
| - process.producerEventConsumedInB1, |
64 |
| - process.producerEventConsumedInB2, |
65 |
| - process.producerEventConsumedInBA1, |
66 |
| - process.producerEventConsumedInBA2, |
| 25 | + process.producerBeginProcessNotConsumed |
67 | 26 | )
|
68 | 27 |
|
69 | 28 | process.p = cms.Path(process.intAnalyzerDelete, process.t)
|
70 |
| - |
71 |
| -#################### |
72 |
| -subprocessB = cms.Process("B") |
73 |
| -process.addSubProcess( cms.SubProcess( |
74 |
| - process = subprocessB, |
75 |
| - SelectEvents = cms.untracked.PSet(), |
76 |
| - outputCommands = cms.untracked.vstring() |
77 |
| -) ) |
78 |
| - |
79 |
| -subprocessB.consumerEventFromA = intEventConsumer.clone(moduleLabel = "producerAEventConsumedInB", valueMustMatch = 1) |
80 |
| - |
81 |
| -subprocessB.producerEventNotConsumed = cms.EDProducer("edmtest::TestModuleDeleteProducer") |
82 |
| - |
83 |
| -subprocessB.producerEventMaybeConsumedInB = intEventProducerMustRun.clone() |
84 |
| -subprocessB.producerEventMaybeConsumedInBA = intEventProducerMustRun.clone(mustRunEvent=False) |
85 |
| -subprocessB.consumerEventMaybeInB = intGenericConsumer.clone(srcEvent = ["producerEventMaybeConsumedInB"]) |
86 |
| - |
87 |
| -subprocessB.producerAEventNotConsumedInB = intEventProducerMustRun.clone() |
88 |
| -subprocessB.producerAEventNotConsumedInBA = cms.EDProducer("edmtest::TestModuleDeleteProducer") |
89 |
| -subprocessB.consumerAEventNotConsumedInB = intGenericConsumer.clone(srcEvent = ["producerAEventNotConsumedInB::B"]) |
90 |
| - |
91 |
| -subprocessB.producerEventConsumedInB1 = cms.EDProducer("edmtest::TestModuleDeleteProducer") |
92 |
| -subprocessB.producerEventConsumedInB2 = cms.EDProducer("edmtest::TestModuleDeleteProducer") |
93 |
| -subprocessB.consumerEventNotConsumedInB1 = intGenericConsumer.clone(srcEvent = ["producerEventConsumedInB1::A"]) |
94 |
| -subprocessB.consumerEventNotConsumedInB2 = intGenericConsumer.clone(srcEvent = [cms.InputTag("producerEventConsumedInB2", "", cms.InputTag.skipCurrentProcess())]) |
95 |
| -subprocessB.producerBEventConsumedInBA1 = intEventProducerMustRun.clone() |
96 |
| -subprocessB.producerBEventConsumedInBA2 = intEventProducerMustRun.clone() |
97 |
| - |
98 |
| -subprocessB.producerBEventConsumedInB1 = intEventProducerMustRun.clone() |
99 |
| -subprocessB.producerBEventConsumedInB2 = intEventProducerMustRun.clone() |
100 |
| -subprocessB.producerBEventConsumedInB3 = intEventProducerMustRun.clone() |
101 |
| -subprocessB.consumerBEventConsumedInB1 = intGenericConsumer.clone(srcEvent = ["producerBEventConsumedInB1"]) |
102 |
| -subprocessB.consumerBEventConsumedInB2 = intGenericConsumer.clone(srcEvent = ["producerBEventConsumedInB2::B"]) |
103 |
| -subprocessB.consumerBEventConsumedInB3 = intGenericConsumer.clone(srcEvent = [cms.InputTag("producerBEventConsumedInB3", "", cms.InputTag.currentProcess())]) |
104 |
| - |
105 |
| - |
106 |
| -subprocessB.t = cms.Task( |
107 |
| - subprocessB.producerEventNotConsumed, |
108 |
| - # |
109 |
| - subprocessB.producerEventMaybeConsumedInB, |
110 |
| - subprocessB.producerEventMaybeConsumedInBA, |
111 |
| - # |
112 |
| - subprocessB.producerAEventNotConsumedInB, |
113 |
| - subprocessB.producerAEventNotConsumedInBA, |
114 |
| - # |
115 |
| - subprocessB.producerEventConsumedInB1, |
116 |
| - subprocessB.producerEventConsumedInB2, |
117 |
| - subprocessB.producerBEventConsumedInBA1, |
118 |
| - subprocessB.producerBEventConsumedInBA2, |
119 |
| - # |
120 |
| - subprocessB.producerBEventConsumedInB1, |
121 |
| - subprocessB.producerBEventConsumedInB2, |
122 |
| - subprocessB.producerBEventConsumedInB3, |
123 |
| -) |
124 |
| -subprocessB.p = cms.Path( |
125 |
| - subprocessB.consumerEventFromA+ |
126 |
| - # |
127 |
| - subprocessB.consumerEventMaybeInB+ |
128 |
| - # |
129 |
| - subprocessB.consumerAEventNotConsumedInB+ |
130 |
| - subprocessB.consumerEventNotConsumedInB1+ |
131 |
| - subprocessB.consumerEventNotConsumedInB2+ |
132 |
| - # |
133 |
| - subprocessB.consumerBEventConsumedInB1+ |
134 |
| - subprocessB.consumerBEventConsumedInB2+ |
135 |
| - subprocessB.consumerBEventConsumedInB3 |
136 |
| - ,subprocessB.t |
137 |
| -) |
138 |
| - |
139 |
| -#################### |
140 |
| -subprocessBA = cms.Process("BA") |
141 |
| -subprocessB.addSubProcess( cms.SubProcess( |
142 |
| - process = subprocessBA, |
143 |
| - SelectEvents = cms.untracked.PSet(), |
144 |
| - outputCommands = cms.untracked.vstring() |
145 |
| -) ) |
146 |
| - |
147 |
| -subprocessBA.consumerEventFromA = intEventConsumer.clone(moduleLabel = "producerAEventConsumedInBA", valueMustMatch = 10) |
148 |
| - |
149 |
| -subprocessBA.producerEventMaybeConsumedInBA = intEventProducerMustRun.clone() |
150 |
| -subprocessBA.consumerEventMaybeInBA = intGenericConsumer.clone(srcEvent = ["producerEventMaybeConsumedInBA"]) |
151 |
| - |
152 |
| -subprocessBA.producerAEventNotConsumedInBA = intEventProducerMustRun.clone() |
153 |
| -subprocessBA.consumerAEventNotConsumedInBA = intGenericConsumer.clone(srcEvent = ["producerAEventNotConsumedInBA::BA"]) |
154 |
| - |
155 |
| -subprocessBA.producerEventConsumedInBA1 = cms.EDProducer("edmtest::TestModuleDeleteProducer") |
156 |
| -subprocessBA.producerEventConsumedInBA2 = cms.EDProducer("edmtest::TestModuleDeleteProducer") |
157 |
| -subprocessBA.producerBEventConsumedInBA1 = cms.EDProducer("edmtest::TestModuleDeleteProducer") |
158 |
| -subprocessBA.producerBEventConsumedInBA2 = cms.EDProducer("edmtest::TestModuleDeleteProducer") |
159 |
| -subprocessBA.consumerEventNotConsumedInBA1 = intGenericConsumer.clone(srcEvent = ["producerEventConsumedInBA1::A", |
160 |
| - "producerBEventConsumedInBA1::B"]) |
161 |
| -subprocessBA.consumerEventNotConsumedInBA2 = intGenericConsumer.clone(srcEvent = [ |
162 |
| - cms.InputTag("producerEventConsumedInBA2", "", cms.InputTag.skipCurrentProcess()), |
163 |
| - cms.InputTag("producerBEventConsumedInBA2", "", cms.InputTag.skipCurrentProcess()) |
164 |
| -]) |
165 |
| - |
166 |
| -subprocessBA.t = cms.Task( |
167 |
| - subprocessBA.producerEventMaybeConsumedInBA, |
168 |
| - # |
169 |
| - subprocessBA.producerAEventNotConsumedInBA, |
170 |
| - # |
171 |
| - subprocessBA.producerEventConsumedInBA1, |
172 |
| - subprocessBA.producerEventConsumedInBA2, |
173 |
| - subprocessBA.producerBEventConsumedInBA1, |
174 |
| - subprocessBA.producerBEventConsumedInBA2, |
175 |
| -) |
176 |
| -subprocessBA.p = cms.Path( |
177 |
| - subprocessBA.consumerEventFromA+ |
178 |
| - # |
179 |
| - subprocessBA.consumerEventMaybeInBA+ |
180 |
| - # |
181 |
| - subprocessBA.consumerAEventNotConsumedInBA+ |
182 |
| - # |
183 |
| - subprocessBA.consumerEventNotConsumedInBA1+ |
184 |
| - subprocessBA.consumerEventNotConsumedInBA2 |
185 |
| - , subprocessBA.t |
186 |
| -) |
0 commit comments