Skip to content

AnalysisBase Fixes, master branch (2020.03.13.)

This might get a bit controversial, so people should have a careful look...

Unfortunately after !30933 (merged) the AnalysisBase nightlies broke. 😦 So now I set out to fix the issue that came up there, and (wishfully) all unit test errors still present in the AnalysisBase nightly. So that we could add standalone builds to the CI, and avoid nightly failures like this in the future.

The fix to the CMake configuration of the project is pretty non-controversial, I don't expect any issues around that.

In CxxUtils I just disabled one of the tests, as the stack traces can come out a bit differently on some of the platforms on which AnalysisBase is being printed. So I didn't see much value in running the log file comparison on that test.

The changes I made in AthContainers may very well be debated... I'm not sure why @krumnack didn't disable them in !31077 (merged), but two unit tests were still failing from that package in my local standalone build. Both of them because of log file differences. So I decided that I would make the printout coming from ATHCONTAINERS_ERROR(...) as similar between the two build modes as possible. But I had to realise that I can't make them identical without changing the "offline printout" a bit as well. You see, it turns out that __PRETTY_FUNCTION__ reports the name of one of the functions of the code just a bit differently with GCC 7 (which we use on Ubuntu 18.04 at the moment) and with GCC 8 (our production compiler on CentOS 7). (These were just the two platforms that I tested. But Clang may very well behave yet differently in this respect.) So I decided to remove the function name printout from ATHCONTAINERS_ERROR(...). It still prints the file name and line number though. So hopefully it should still be "enough" for debugging purposes. But I'm open to criticism on that one...

Finally, I had to re-write the unit test in xAODJet quite a bit. The "standalone" implementation of that test was... to say mildly... buggy. So I took the opportunity to clean up that code in general. I still saw a number of memory leaks that are made during the test, but at least those don't make the test fail in either project anymore... Still, a further cleanup in the code could be nice...

Merge request reports