File indexing completed on 2024-04-06 12:12:40
0001 import FWCore.ParameterSet.Config as cms
0002
0003 import sys
0004 import argparse
0005
0006 parser = argparse.ArgumentParser(prog=sys.argv[0], description='Test TryToContinue exception handling.')
0007
0008 parser.add_argument("--indirect", help="Apply shouldTryToContinue to module dependent on module that fails. Else apply to failing module.", action="store_true")
0009 parser.add_argument("--inRun", action = "store_true", help="Throw exception in Run")
0010 parser.add_argument("--inLumi", action = "store_true", help="Throw exception in Lumi")
0011
0012 args = parser.parse_args()
0013
0014 process = cms.Process("TEST")
0015
0016 process.source = cms.Source("EmptySource")
0017
0018 process.options.TryToContinue = ['NotFound']
0019 process.maxEvents.input = 3
0020
0021 if args.inRun:
0022 process.fail = cms.EDProducer("edmtest::FailingInRunProducer")
0023 elif args.inLumi:
0024 process.fail = cms.EDProducer("edmtest::FailingInLumiProducer")
0025 else:
0026 process.fail = cms.EDProducer("FailingProducer")
0027 process.intProd = cms.EDProducer("IntProducer", ivalue = cms.int32(10))
0028 process.dependentAnalyzer = cms.EDAnalyzer("TestFindProduct",
0029 inputTags = cms.untracked.VInputTag(["intProd"]),
0030 inputTagsNotFound = cms.untracked.VInputTag( cms.InputTag("fail")),
0031 expectedSum = cms.untracked.int32(30)
0032 )
0033
0034 process.dependent2 = cms.EDAnalyzer("TestFindProduct",
0035 inputTags = cms.untracked.VInputTag(["intProd"]),
0036 inputTagsNotFound = cms.untracked.VInputTag( cms.InputTag("fail")),
0037 expectedSum = cms.untracked.int32(30)
0038 )
0039
0040 process.independent = cms.EDAnalyzer("TestFindProduct",
0041 inputTags = cms.untracked.VInputTag(["intProd"]),
0042 expectedSum = cms.untracked.int32(30)
0043 )
0044
0045 process.f = cms.EDFilter("IntProductFilter", label = cms.InputTag("intProd"))
0046
0047 if args.inRun:
0048 process.dependentAnalyzer.inputTagsEndRun = cms.untracked.VInputTag(cms.InputTag("fail"))
0049 if args.inLumi:
0050 process.dependentAnalyzer.inputTagsEndLumi = cms.untracked.VInputTag(cms.InputTag("fail"))
0051 if args.inRun or args.inLumi:
0052 process.dependentAnalyzer.expectedSum = 0
0053 process.dependent2.expectedSum = 0
0054 process.independent.expectedSum = 0
0055
0056 if args.indirect:
0057 process.options.modulesToCallForTryToContinue = [process.dependentAnalyzer.label_(), process.dependent2.label_()]
0058 else:
0059 process.options.modulesToCallForTryToContinue = [process.fail.label_()]
0060
0061 process.p = cms.Path(process.dependentAnalyzer, cms.Task(process.fail,process.intProd))
0062 process.p2 = cms.Path(cms.wait(process.dependent2)+process.f+process.independent)
0063