Commit d2a6ad3
ITSMFTTracking: add Gate 4 B3.1 ownership/reset/transactional-load acceptance tests
New testGate4B31OwnershipContract.cxx, covering the acceptance criteria the
TimeFrame/LegacyTrackerScratch<NLayers> split's design requires and that
were not already incidental coverage elsewhere:
1. resetScratch() clears scratch-owned state only; a populated TimeFrame's
CommonTracks/vertices survive untouched.
2. resetTimeFrameEvent() -- the helper ITSMFTTrackingInterface<NLayers>::
resetEvent() trivially wraps -- clears both owners.
3. Two scratches (<7>, <10>) bound to one shared TimeFrame: resetting one
never touches the other scratch or the shared frame.
4. An allocation failure injected into the scratch-side legacy backfill
staging, after the TimeFrame-side normalized decode has already
succeeded, leaves both live owners exactly at their pre-load state.
5. Compile-time proof (static_assert) that TimeFrame is the plain,
non-templated owner this slice introduced, not a surviving
TimeFrame<NLayers> template.
6. mPropagatorDevice, relocated unchanged onto TimeFrame, remains inert
through the base class's own getDevicePropagator()/
setDevicePropagator() hooks.
Registered as gate4-b31-ownership-contract in test/CMakeLists.txt.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>1 parent ff565ea commit d2a6ad3
2 files changed
Lines changed: 420 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
257 | 257 | | |
258 | 258 | | |
259 | 259 | | |
| 260 | + | |
| 261 | + | |
| 262 | + | |
| 263 | + | |
| 264 | + | |
| 265 | + | |
260 | 266 | | |
261 | 267 | | |
262 | 268 | | |
| |||
0 commit comments