Conversation
Add a plain-ROOT fixture writer that produces a version-3 detector signal event beside an unsplit event branch and top-level metadata whose dictionaries are deliberately unavailable to the recovery process. The fixture also carries unrelated tree aliases, user information, and a separate analysis tree. Exercise exact float-to-double signal conversion, raw compressed basket preservation, unchanged opaque keys, source byte identity, rejection of modern inputs and mismatched intermediates, read-only source handling, and no-overwrite output safety. The tests invoke the real restRoot command and keep the legacy writer isolated from modern REST dictionaries so they cover the required process boundary.
Assert that unavailable top-level metadata is represented by ROOT as a non-null emulated TClass without a loaded dictionary, then verify that recovery preserves its original key opaquely. This captures the condition behind the canonical zS2Raw crash without asking the test process to deserialize the object. Also invoke restRoot with a leading -l launcher flag, matching the alias installed by thisREST.sh and guarding the documented one-command workflow.
Build the legacy fixture on the real TRestEvent base and give it authentic TRestRun and TRestAnalysisTree metadata. The writer can now produce either a normal v3 file with its signal StreamerInfo or the narrow unsafe variant in which only the signal schema records are omitted. Add a current-REST reader and exercise all three supported outcomes: ROOT reads v3 data normally when StreamerInfo is present, TRestRun exits before reading an unsafe file, and the one-time recovery output reads with the modern detector-signal schema. This keeps the regression focused on the actual float-to-double failure rather than a generic partial-file policy.
for more information, see https://pre-commit.ci
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This is a few additions for tests for a new version of PR 566 in REST to make sure all the
vector<float> -> vector<double>changes produce the expected behavior. I'll add more details here later.