PyUtils + PROCTools: Add regex support to diff-root and add diff-root exclusion list support to RunTier0Tests.py
This MR is very much a WIP
and based on how sensitive this subject is (in general) I'm sure there'll be loads of discussion. This is one of the possible ways we can implement selective Performance Freeze checks in the CI w/ minimum code update. There are two aspects:
-
diff-root: The script already accepts, via
--ignore-leaves
, a list of branch names that it ignores while comparing the input files. The catch here is that this list has to contain the exact names of the branches (despite what the help text claims). There, I added regex support. -
RunTier0Tests.py: Here, I added new functionality to better take advantage of the
--ignore-leaves
ofdiff-root
. One can now point the script to a folder, where we keep one text file per output type (AOD, ESD, etc.) that contains a list of variables to be omitted while comparing the outputs. The script simply parses this file and passes it todiff-root
.
How does all this come together? In the CI we run RunTier0Tests.py -n
. We already keep the reference files under:
/eos/atlas/atlascerngroupdisk/data-art/grid-input/Tier0ChainTests/${q-test}/${branch}/${version}/my{AOD,ESD}.pool.root
now we're adding a set of files that contain the variables to be omitted in:
/eos/atlas/atlascerngroupdisk/data-art/grid-input/Tier0ChainTests/${q-test}/${branch}/${q-test}_{AOD,ESD}_diff-exclusion-list.txt
Then when the script runs, it reads the latter, parses the content and uses it. If nothing is found, it uses a default list of variables.
This way we have minimal code change that's also backward compatible. It keeps the interface to the qTestsTier0_required that we've been running in 21.0 for quite a while now intact. So, in principle, all we need to do is:
- Make sure the exclusion files are OK (currently I have dummy ones where we ignore everything)
- Turn this test on for the MR that go into Athena/master
I guess we can discuss this in detail tomorrow.
cc: @wlampl @emoyse @akraszna @fwinkl @christos @mhodgkin @goetz
Merge request reports
Activity
added Tools master review-pending-level-1 labels
This MR might pick a conflict w/ !35907 (merged) but which one ever goes first the other can fix anything that comes up. Let me cc @tadej just in case.
CI Result SUCCESS (hash b2c48d83)Athena AthSimulation AthGeneration AnalysisBase externals cmake make required tests optional tests Full details available on this CI monitor view
Athena: number of compilation errors 0, warnings 0
AthSimulation: number of compilation errors 0, warnings 0
AthGeneration: number of compilation errors 0, warnings 0
AnalysisBase: number of compilation errors 0, warnings 0
For experts only: Jenkins output [CI-MERGE-REQUEST-CC7 21454]added review-pending-level-2 label and removed review-pending-level-1 label
added review-pending-expert label and removed review-pending-level-2 label
added review-approved label and removed review-pending-expert label
mentioned in commit 4b413fc5
added sweep:ignore label
mentioned in merge request !37189 (closed)
mentioned in merge request !53740 (merged)