-
Notifications
You must be signed in to change notification settings - Fork 4.4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
New schema evolution unit test #42825
Conversation
argv = sys.argv[:] | ||
if '--' in argv: | ||
argv.remove("--") | ||
args, unknown = parser.parse_known_args(argv) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The part above is going to need to be modified if #42650 gets merged before this one.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@wddgit This part can be modifier now.
+code-checks Logs: https://cmssdt.cern.ch/SDT/code-checks/cms-sw-PR-42825/36951
|
please test with cms-data/IOPool-Input#1 |
A new Pull Request was created by @wddgit (W. David Dagenhart) for master. It involves the following packages:
@makortel, @smuzaffar, @Dr15Jones can you please review it and eventually sign? Thanks. cms-bot commands are listed here |
3f5bd8d
to
517288c
Compare
+code-checks Logs: https://cmssdt.cern.ch/SDT/code-checks/cms-sw-PR-42825/36952
|
Pull request #42825 was updated. @cmsbuild, @smuzaffar, @Dr15Jones, @makortel can you please check and sign again. |
please test with cms-data/IOPool-Input#1 try again, I deleted the unused variable that clang found, squashed and force pushed |
+code-checks Logs: https://cmssdt.cern.ch/SDT/code-checks/cms-sw-PR-42825/37191
|
Pull request #42825 was updated. @smuzaffar, @cmsbuild, @makortel, @Dr15Jones can you please check and sign again. |
please test with cms-data/IOPool-Input#1 The last commit now adjusts the test to use the new cmsRun command line interface recently merged. Also rebased. Nothing else was changed in the last force push of modified code. |
+1 Summary: https://cmssdt.cern.ch/SDT/jenkins-artifacts/pull-request-integration/PR-0e0441/35190/summary.html The following merge commits were also included on top of IB + this PR after doing git cms-merge-topic: You can see more details here: Comparison SummarySummary:
|
+core |
This pull request is fully signed and it will be integrated in one of the next master IBs (tests are also fine). This pull request will now be reviewed by the release team before it's merged. @sextonkennedy, @rappoccio, @antoniovilela (and backports should be raised in the release meeting by the corresponding L2) |
+1 |
PR description:
Add a new unit test that verifies the performance of schema evolution algorithms in ROOT. This also tests that StreamerInfo objects are written for classes nested in other classes that have a StreamerInfo.
In the test, an input file is read that contains products containing known values. We verify we can read the product and that the values match values we know were written into the product. The input file was created in a separate process that was built with modified data format classes. This process was prepared manually by editing the code in this pull request and rebuilding. Then that output was saved in the cms-data IOPool-Input repository in GitHub.
The modifications test each of the 12 kinds of schema evolution listed in ROOT's documentation. At the moment, 2 of these fail and the related tests are commented out in this PR. These do not appear to be cases that are important to CMS (both involve raw pointers as data members), but we'll inform ROOT developers about this.
This is what the ROOT documentation says at the current time (9/19/2023, https://root.cern/manual/io/#automatic-schema-evolution):
Automatic schema evolution supports the following scenarios:
There is one test case for each of the 12 items listed above (one could imagine writing many test cases for each item above). I could add more test cases if anyone can think of a particular case worth testing.
Currently, the input file was generated with CMSSW_13_2_3. I could add more input files from other releases if requested. We had discussed adding a new input file each time there is a major change in ROOT in the future.
There is also a commented out test for CMSSW_13_0_0. This release has a bug and the test is commented out because it fails for that release. This particular bug is what motivated this PR. See discussion in issues #41246 and #41348. The StreamerInfo test in this PR would have detected that particular bug. This may be useful if we have to do further work to deal with data files that were written by code with the bug.
PR validation:
The new unit test passes.