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