Skip to content

Wip/slim recovery tests - #132

Draft
Vindaar wants to merge 4 commits into
masterfrom
wip/slim-recovery-tests
Draft

Vindaar wants to merge 4 commits into
masterfrom
wip/slim-recovery-tests

Conversation

@Vindaar

@Vindaar Vindaar commented Sep 7, 2026

Copy link
Copy Markdown
Member

Vindaar Large: 481 Powered by Pull Request Badge

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.

Vindaar and others added 4 commits August 25, 2026 20:41
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.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant