ATLAS Offline Software
Loading...
Searching...
No Matches
python.TrigValSteering.CheckSteps Namespace Reference

Classes

class  ChainCompStep
class  ChainDumpStep
class  CheckFileStep
class  CheckLogStep
class  DownloadRefStep
class  HistCountStep
class  InputDependentStep
class  LogMergeStep
class  MessageCountStep
class  PerfMonStep
class  RefComparisonStep
class  RegTestStep
class  RootCompStep
class  RootMergeStep
class  TailStep
class  TrigTestJsonStep
class  ZeroCountsStep
class  ZipStep

Functions

 produces_log (step)
 default_check_steps (test, checkfile_input='AOD.pool.root, ESD.pool.root, RDO_TRIG.pool.root, DAOD_PHYS.DAOD.pool.root')
 add_step_after_type (step_list, ref_type, step_to_add)

Detailed Description

Definitions of post-exec check steps in Trigger ART tests

Function Documentation

◆ add_step_after_type()

python.TrigValSteering.CheckSteps.add_step_after_type ( step_list,
ref_type,
step_to_add )
Insert step_to_add into step_list after the last step of type ref_type.
If the list has no steps of type ref_type, append step_to_add at the end of the list.

Definition at line 833 of file CheckSteps.py.

833def add_step_after_type(step_list, ref_type, step_to_add):
834 '''
835 Insert step_to_add into step_list after the last step of type ref_type.
836 If the list has no steps of type ref_type, append step_to_add at the end of the list.
837 '''
838 index_to_add = -1
839 for index, step in enumerate(step_list):
840 if isinstance(step, ref_type):
841 index_to_add = index+1
842 if index_to_add > 0:
843 step_list.insert(index_to_add, step_to_add)
844 else:
845 step_list.append(step_to_add)

◆ default_check_steps()

python.TrigValSteering.CheckSteps.default_check_steps ( test,
checkfile_input = 'AOD.pool.root,ESD.pool.root,RDO_TRIG.pool.root,DAOD_PHYS.DAOD.pool.root' )
Create the default list of check steps for a test. The configuration
depends on the package name and the type of exec steps (athena or
athenaHLT or transforms).

Definition at line 714 of file CheckSteps.py.

714def default_check_steps(test, checkfile_input='AOD.pool.root,ESD.pool.root,RDO_TRIG.pool.root,DAOD_PHYS.DAOD.pool.root'):
715 '''
716 Create the default list of check steps for a test. The configuration
717 depends on the package name and the type of exec steps (athena or
718 athenaHLT or transforms).
719 '''
720
721 check_steps = []
722
723 # Log merging
724 if len(test.exec_steps) == 1:
725 exec_step = test.exec_steps[0]
726 if exec_step.type == 'athenaHLT' and produces_log(exec_step):
727 logmerge = LogMergeStep()
728 logmerge.merged_name = 'athena.log'
729 logmerge.log_files = ['athenaHLT.log']
730 nforks = 1 if exec_step.forks is None else exec_step.forks
731 for n in range(1, 1+nforks):
732 logmerge.log_files.append('athenaHLT:{:02d}.out'.format(n))
733 logmerge.log_files.append('athenaHLT:{:02d}.err'.format(n))
734 check_steps.append(logmerge)
735 else:
736 logmerge = LogMergeStep()
737 logmerge.merged_name = 'athena.log'
738 logmerge.log_files = []
739 for exec_step in test.exec_steps:
740 if not produces_log(exec_step):
741 continue
742 logmerge.log_files.append(exec_step.get_log_file_name())
743 if exec_step.type == 'athenaHLT':
744 logmerge.extra_log_regex = 'athenaHLT:.*(.out|.err)'
745 check_steps.append(logmerge)
746 log_to_check = None
747 log_to_zip = None
748 if len(check_steps) > 0 and isinstance(check_steps[-1], LogMergeStep):
749 log_to_check = check_steps[-1].merged_name
750 log_to_zip = check_steps[-1].merged_name
751
752 # Reco_tf log merging
753 reco_tf_steps = [step for step in test.exec_steps if step.type in ['Reco_tf', 'Trig_reco_tf', 'Derivation_tf']]
754 if len(reco_tf_steps) > 0:
755 reco_tf_logmerge = LogMergeStep('LogMerge_Reco_tf')
756 reco_tf_logmerge.warn_if_missing = False
757 # FIXME: drop AODtoDAOD once test_trigAna_AODtoDAOD_run2_build.py is migrated to Derivation_tf
758 tf_names = ['HITtoRDO', 'Overlay', 'RDOtoRDOTrigger', 'RAWtoESD', 'ESDtoAOD',
759 'PhysicsValidation', 'RAWtoALL',
760 'BSRDOtoRAW', 'DRAWCOSTtoNTUPCOST', 'AODtoNTUPRATE', 'Derivation', 'AODtoDAOD']
761 reco_tf_logmerge.log_files = ['log.'+tf_name for tf_name in tf_names]
762 if not get_step_from_list('LogMerge', check_steps):
763 for step in reco_tf_steps:
764 reco_tf_logmerge.log_files.append(step.get_log_file_name())
765 reco_tf_logmerge.merged_name = 'athena.merged.log'
766 log_to_zip = reco_tf_logmerge.merged_name
767 if log_to_check is not None:
768 reco_tf_logmerge.log_files.append(log_to_check)
769 log_to_check = reco_tf_logmerge.merged_name
770 log_to_check = reco_tf_logmerge.merged_name
771 check_steps.append(reco_tf_logmerge)
772
773 # Histogram merging for athenaHLT forks
774 num_athenaHLT_steps = sum([1 for step in test.exec_steps if step.type == 'athenaHLT'])
775 if num_athenaHLT_steps > 0:
776 histmerge = RootMergeStep('HistMerge')
777 histmerge.merged_file = 'expert-monitoring.root'
778 histmerge.input_file = 'athenaHLT_workers/*/expert-monitoring.root expert-monitoring-mother.root'
779 histmerge.rename_suffix = '-mother'
780 check_steps.append(histmerge)
781
782 # CheckLog for errors
783 checklog = CheckLogStep('CheckLog')
784 if log_to_check is not None:
785 checklog.log_file = log_to_check
786 check_steps.append(checklog)
787
788 # CheckLog for warnings
789 checkwarn = CheckLogStep('Warnings')
790 checkwarn.check_errors = False
791 checkwarn.check_warnings = True
792 if log_to_check is not None:
793 checkwarn.log_file = log_to_check
794 check_steps.append(checkwarn)
795
796 # MessageCount
797 msgcount = MessageCountStep('MessageCount')
798 for logmerge in [step for step in check_steps if isinstance(step, LogMergeStep)]:
799 msgcount.skip_logs.append(logmerge.merged_name)
800 check_steps.append(msgcount)
801
802 # Tail (probably not so useful these days)
803 tail = TailStep()
804 if log_to_check is not None:
805 tail.log_file = log_to_check
806 check_steps.append(tail)
807
808 # Histogram-based steps
809 check_steps.append(RootCompStep())
810 check_steps.append(ChainDumpStep())
811 check_steps.append(HistCountStep())
812
813 # ZeroCounts
814 check_steps.append(ZeroCountsStep())
815
816 # Extra JSON
817 check_steps.append(TrigTestJsonStep())
818
819 # CheckFile
820 check_steps.append(CheckFileStep(input_file=checkfile_input))
821
822 # Zip the merged log (can be large and duplicates information)
823 if log_to_zip is not None:
824 zip_step = ZipStep()
825 zip_step.zip_input = log_to_zip
826 zip_step.zip_output = log_to_zip+'.tar.gz'
827 check_steps.append(zip_step)
828
829 # return the steps
830 return check_steps
831
832

◆ produces_log()

python.TrigValSteering.CheckSteps.produces_log ( step)
Helper function checking whether a Step output_stream value
indicates that it will produce a log file

Definition at line 705 of file CheckSteps.py.

705def produces_log(step):
706 '''
707 Helper function checking whether a Step output_stream value
708 indicates that it will produce a log file
709 '''
710 return step.output_stream == Step.OutputStream.FILE_ONLY or \
711 step.output_stream == Step.OutputStream.FILE_AND_STDOUT
712
713