Count messages printed inside event loop
Definition at line 622 of file CheckSteps.py.
◆ __init__()
def python.TrigValSteering.CheckSteps.MessageCountStep.__init__ |
( |
|
self, |
|
|
|
name = 'MessageCount' |
|
) |
| |
Definition at line 625 of file CheckSteps.py.
625 def __init__(self, name='MessageCount'):
626 super(MessageCountStep, self).
__init__(name)
627 self.executable =
'messageCounter.py'
628 self.log_regex =
r'(athena\.(?!.*tail).*log$|athenaHLT:.*\.out$|^log\.(.*to.*|Derivation))'
630 self.start_pattern =
r'(HltEventLoopMgr|AthenaHiveEventLoopMgr).*INFO Starting loop on events'
631 self.end_pattern =
r'(HltEventLoopMgr.*INFO All events processed|AthenaHiveEventLoopMgr.*INFO.*Loop Finished)'
632 self.print_on_fail =
None
634 self.auto_report_result =
True
635 self.depends_on_exec =
True
◆ configure()
def python.TrigValSteering.CheckSteps.MessageCountStep.configure |
( |
|
self, |
|
|
|
test |
|
) |
| |
Definition at line 637 of file CheckSteps.py.
638 self.args +=
' -s "{:s}"'.
format(self.start_pattern)
639 self.args +=
' -e "{:s}"'.
format(self.end_pattern)
640 if self.print_on_fail
is None:
641 self.print_on_fail = self.required
642 if self.print_on_fail:
643 self.args +=
' --saveAll'
645 max_events = test.exec_steps[0].max_events
if isinstance(test.exec_steps[0], ExecStep)
else 0
646 if 'WARNING' not in self.thresholds:
647 self.thresholds[
'WARNING'] = 0
648 if 'INFO' not in self.thresholds:
649 self.thresholds[
'INFO'] = max_events
650 if 'DEBUG' not in self.thresholds:
651 self.thresholds[
'DEBUG'] = 0
652 if 'VERBOSE' not in self.thresholds:
653 self.thresholds[
'VERBOSE'] = 0
654 if 'other' not in self.thresholds:
655 self.thresholds[
'other'] = max_events
656 super(MessageCountStep, self).
configure(test)
◆ run()
def python.TrigValSteering.CheckSteps.MessageCountStep.run |
( |
|
self, |
|
|
|
dry_run = False |
|
) |
| |
Definition at line 658 of file CheckSteps.py.
658 def run(self, dry_run=False):
659 files = os.listdir(
'.')
660 r = re.compile(self.log_regex)
661 log_files = [f
for f
in filter(r.match, files)
if f
not in self.skip_logs]
662 if not log_files
and not dry_run:
663 self.log.
error(
'%s found no log files matching the pattern %s', self.name, self.log_regex)
665 if self.auto_report_result:
667 return self.result,
'# (internal) {} -> failed'.
format(self.name)
668 self.args +=
' ' +
' '.
join(log_files)
669 auto_report = self.auto_report_result
670 self.auto_report_result =
False
671 ret, cmd = super(MessageCountStep, self).
run(dry_run)
672 self.auto_report_result = auto_report
674 self.log.
error(
'%s failed', self.name)
676 if self.auto_report_result:
678 return self.result, cmd
680 for log_file
in log_files:
681 json_file =
'MessageCount.{:s}.json'.
format(log_file)
682 if self.print_on_fail:
683 all_json_file =
'Messages.{:s}.json'.
format(log_file)
684 if not os.path.isfile(json_file):
685 self.log.warning(
'%s cannot open file %s', self.name, json_file)
686 with open(json_file)
as f:
687 summary = json.load(f)
688 for level, threshold
in self.thresholds.
items():
689 if summary[level] > threshold:
692 '%s Number of %s messages %s in %s is higher than threshold %s',
693 self.name, level, summary[level], log_file, threshold)
694 if self.print_on_fail:
695 self.log.
info(
'%s Printing all %s messages from %s', self.name, level, log_file)
696 with open(all_json_file)
as af:
697 all_msg = json.load(af)
698 for msg
in all_msg[level]:
701 if self.auto_report_result:
703 return self.result, cmd
◆ auto_report_result
python.TrigValSteering.CheckSteps.MessageCountStep.auto_report_result |
◆ depends_on_exec
python.TrigValSteering.CheckSteps.MessageCountStep.depends_on_exec |
◆ end_pattern
python.TrigValSteering.CheckSteps.MessageCountStep.end_pattern |
◆ executable
python.TrigValSteering.CheckSteps.MessageCountStep.executable |
◆ log_regex
python.TrigValSteering.CheckSteps.MessageCountStep.log_regex |
◆ print_on_fail
python.TrigValSteering.CheckSteps.MessageCountStep.print_on_fail |
◆ result
python.TrigValSteering.CheckSteps.MessageCountStep.result |
◆ skip_logs
python.TrigValSteering.CheckSteps.MessageCountStep.skip_logs |
◆ start_pattern
python.TrigValSteering.CheckSteps.MessageCountStep.start_pattern |
◆ thresholds
python.TrigValSteering.CheckSteps.MessageCountStep.thresholds |
The documentation for this class was generated from the following file:
bool configure(asg::AnaToolHandle< ITrigGlobalEfficiencyCorrectionTool > &tool, ToolHandleArray< IAsgElectronEfficiencyCorrectionTool > &electronEffToolsHandles, ToolHandleArray< IAsgElectronEfficiencyCorrectionTool > &electronSFToolsHandles, ToolHandleArray< CP::IMuonTriggerScaleFactors > &muonToolsHandles, ToolHandleArray< IAsgPhotonEfficiencyCorrectionTool > &photonEffToolsHandles, ToolHandleArray< IAsgPhotonEfficiencyCorrectionTool > &photonSFToolsHandles, const std::string &triggers, const std::map< std::string, std::string > &legsPerTool, unsigned long nToys, bool debug)