62def setup_parser() -> ArgumentParser:
63 parser = ArgumentParser()
64 common = parser.add_argument_group("common")
65 common.add_argument("-e", "--extra", type=str, dest="extra_args", default="",
66 help="Define additional args to pass e.g. --preExec 'r2e':'...' ")
67 common.add_argument("-f", "--fast", action="store_true", dest="fast_mode", default=False,
68 help="""Fast option will run all q tests simultaneously,
69 such that it will run faster if you have 4 cpu core slots on which to run. Be
70 warned! Only recommended when running on a high performance machine, not
71 lxplus!""")
72 common.add_argument("-v", "--validation", action="store_true", dest="validation_only", default=False,
73 help=f"""Run validation only.
74 File output comparisons will only be performed against pre-defined
75 reference files stored in the directory
76 {references_CVMFS_path}
77 and performance comparison tests will not be run.""")
78 common.add_argument("--run-only", action="store_true", dest="run_only", default=False,
79 help="Run only the main command(s).")
80 common.add_argument("--checks-only", type=str, dest="unique_ID", nargs="?", default=None, const='local',
81 help="Re-run only the checks.")
82
83 advanced = parser.add_argument_group("advanced")
84 advanced.add_argument("--CI", action="store_true", dest="ci_mode", default=False,
85 help="Will not setup Athena - only for CI tests!")
86 advanced.add_argument("--threads", type=int, dest="threads", default=None,
87 help="Override the number of threads to run the test with.")
88 advanced.add_argument("--ref", type=str, dest="reference_release", default=None,
89 help="Define a particular reference release.")
90 advanced.add_argument("--val", type=str, dest="validation_release", default=None,
91 help="Define a particular validation release")
92 advanced.add_argument("--output-path", type=str, dest="validation_run_path", default="",
93 help="Specify the head directory for running the validation tests. The default is ${PWD}")
94 advanced.add_argument("--reference-path", type=str, dest="reference_run_path", default="",
95 help="Specify the head directory for running the reference tests. The default is /tmp/${USER}")
96 advanced.add_argument("-z", "--exclusion-lists", "--interest-lists", type=str, dest="diff_rules_path", default=None,
97 help="""Specify the directory that contains the lists of variables that will be omitted
98 while comparing the outputs. The default is ./ and the format of the files is
99 ${test}_${format}_diff-exclusion-list.txt, e.g. q445_AOD_diff-exclusion-list.txt or
100 ${test}_${format}_diff-interest-list.txt, e.g. q445_AOD_diff-interest-list.txt.
101 The file should contain one regexp per line.""")
102 advanced.add_argument("--no-output-checks", action="store_true", dest="disable_output_checks", default=False,
103 help="Disable output checks")
104 advanced.add_argument("--detailed-comparison", action="store_true", dest="detailed_comparison", default=False,
105 help="Detailed output comparison")
106 advanced.add_argument("--allow-tolerance", action="store_true", dest="allow_tolerance", default=False,
107 help="Allow tolerance in output comparison")
108
109 tests = parser.add_argument_group("tests")
110 tests.add_argument("-t", "--test", type=str, dest="test", default=None,
111 help="Specify a test to run. Supported options are: sim, overlay, pileup, reco")
112 tests.add_argument("-a", "--tag", type=str, dest="ami_tag", default=None,
113 help="Override the AMI tag of the test.")
114 tests.add_argument("-w", "--workflow", type=WorkflowType, dest="workflow", choices=list(WorkflowType), default=None,
115 help="Specify the workflow that is being run (required for AMI tags or if you want to run only one workflow)")
116 tests.add_argument("--dsid", type=str, dest="dsid", default=None,
117 help="Override the DSID of the test (only for generation).")
118
119
120 tests.add_argument("-g", "--gen", action="store_true", dest="generation", default=False,
121 help="Run generation test using Gen_tf.py")
122 tests.add_argument("-s", "--sim", action="store_true", dest="simulation", default=False,
123 help="Run simulation test using Sim_tf.py")
124 tests.add_argument("-o", "--overlay", action="store_true", dest="overlay", default=False,
125 help="Run overlay test using Overlay_tf.py")
126 tests.add_argument("-p", "--pileup", action="store_true", dest="pileup", default=False,
127 help="Run MC reconstruction chain with pile-up")
128 tests.add_argument("-r", "--reco", action="store_true", dest="reco", default=False,
129 help="Run MC reconstruction (in case the default execution also runs simulation)")
130 tests.add_argument("-d", "--derivation", action="store_true", dest="derivation", default=False,
131 help="Run derivation test using Derivation_tf.py")
132
133 return parser
134
135