diff --git a/Trigger/TrigValidation/TrigValTools/python/TrigValSteering/CheckSteps.py b/Trigger/TrigValidation/TrigValTools/python/TrigValSteering/CheckSteps.py index 50145813001271ea001fdf55037be8f3bc06e9b9..a95790e796f3f0db078e2521e1b70499f93fd626 100644 --- a/Trigger/TrigValidation/TrigValTools/python/TrigValSteering/CheckSteps.py +++ b/Trigger/TrigValidation/TrigValTools/python/TrigValSteering/CheckSteps.py @@ -566,6 +566,7 @@ class MessageCountStep(Step): self.log_regex = r'(athena\..*log$|athenaHLT:.*\.out$|^log\..*to.*)' self.start_pattern = r'(HltEventLoopMgr|AthenaHiveEventLoopMgr).*INFO Starting loop on events' self.end_pattern = r'(HltEventLoopMgr.*INFO All events processed|AthenaHiveEventLoopMgr.*INFO.*Loop Finished)' + self.warning_threshold = None self.info_threshold = None self.debug_threshold = None self.verbose_threshold = None @@ -575,6 +576,8 @@ class MessageCountStep(Step): def configure(self, test): self.args += ' -s "{:s}"'.format(self.start_pattern) self.args += ' -e "{:s}"'.format(self.end_pattern) + if self.warning_threshold is None: + self.warning_threshold = 0 if self.info_threshold is None: self.info_threshold = test.exec_steps[0].max_events if self.debug_threshold is None: @@ -600,17 +603,23 @@ class MessageCountStep(Step): if self.auto_report_result: self.report_result() return self.result, cmd - (num_info, num_debug, num_verbose, num_other) = (0, 0, 0, 0) + (num_warning, num_info, num_debug, num_verbose, num_other) = (0, 0, 0, 0, 0) for log_file in log_files: json_file = 'MessageCount.{:s}.json'.format(log_file) if not os.path.isfile(json_file): self.log.warning('%s cannot open file %s', self.name, json_file) with open(json_file) as f: summary = json.load(f) + num_warning += summary['WARNING'] num_info += summary['INFO'] num_debug += summary['DEBUG'] num_verbose += summary['VERBOSE'] num_other += summary['other'] + if num_warning > self.warning_threshold: + self.log.info( + '%s Number of WARNING messages %s is higher than threshold %s', + self.name, num_warning, self.warning_threshold) + self.result += 1 if num_info > self.info_threshold: self.log.info( '%s Number of INFO messages %s is higher than threshold %s', diff --git a/Trigger/TrigValidation/TriggerTest/test/test_trig_data_v1Dev_build.py b/Trigger/TrigValidation/TriggerTest/test/test_trig_data_v1Dev_build.py index e216367b5daf148533d0ab96ff671775f5ab5f10..944198e03f0a78ef14436f3d66fa83f87b68de00 100755 --- a/Trigger/TrigValidation/TriggerTest/test/test_trig_data_v1Dev_build.py +++ b/Trigger/TrigValidation/TriggerTest/test/test_trig_data_v1Dev_build.py @@ -27,10 +27,13 @@ test.art_type = 'build' test.exec_steps = [ex] test.check_steps = CheckSteps.default_check_steps(test) -#Overwrite default msgcount steps +# Overwrite default MessageCount settings +# We are trying to lower the limits step by step +# Ultimately there should be no per-event messages msgcount = test.get_step("MessageCount") +msgcount.warning_threshold = 500 msgcount.info_threshold = 1200 -msgcount.other_threshold = 100 +msgcount.other_threshold = 80 msgcount.required = True # make the test exit code depend on this step # Add a step comparing counts in the log against reference diff --git a/Trigger/TrigValidation/TriggerTest/test/test_trig_data_v1Dev_emptyMenu_build.py b/Trigger/TrigValidation/TriggerTest/test/test_trig_data_v1Dev_emptyMenu_build.py index e45d152c1f8371729e7ad08bba6d480aaaaec268..3985766c50c9aabaa822451989333685a22b7151 100755 --- a/Trigger/TrigValidation/TriggerTest/test/test_trig_data_v1Dev_emptyMenu_build.py +++ b/Trigger/TrigValidation/TriggerTest/test/test_trig_data_v1Dev_emptyMenu_build.py @@ -36,8 +36,9 @@ test.check_steps.remove(test.get_step("ZeroCounts")) # Overwrite default MessageCount settings msgcount = test.get_step("MessageCount") +msgcount.warning_threshold = 40 msgcount.info_threshold = 600 -msgcount.other_threshold = 50 +msgcount.other_threshold = 40 msgcount.required = True # make the test exit code depend on this step import sys