|
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