Freeze the package compatibility corpus: real .rsbank bytes proving both ladder directions, every truncation site, and the round trip
This commit is contained in:
@@ -94,6 +94,10 @@ belongs to its skin (`shell/actions/package_export_action`), not this seam.
|
||||
- `import_landing` — the import's two halves that decide anything: `landPackage` (decode, plan, verify EVERY payload's digest, then land through the journal) and `applyImportedBank` (the new bank's entries plus a birth record per landed file, in one straight-line block). REAPER-free deliberately — all-or-nothing, integrity and birth-record behaviour are assertable without a DAW.
|
||||
- `import_bank` — the promptless import verb over a live `ReaSamplerSession`: the project directory, the minted bank id, the `recordCreated` writer, and the one undo-batched persist. REAPER-facing, so it compiles into the extension module rather than into a library with a test target.
|
||||
|
||||
`package_round_trip_tests` is declared here with no library of its own: it drives the
|
||||
same frozen corpus (`tests/fixtures/package_compat/`) through both verbs, which is where
|
||||
export → import → export payload identity is proven.
|
||||
|
||||
## Gotchas
|
||||
|
||||
- A crash mid-export strands the `.rsbanktmp` sibling. It is not a `.rsbank` (no
|
||||
|
||||
@@ -33,6 +33,16 @@ reasampler_pure_library(import_landing
|
||||
LINK PUBLIC import_plan package_rollback bank_book PRIVATE bank_package wav_codec)
|
||||
reasampler_test(import_landing LINK import_landing bank_package app_version wav_codec origin_ledger)
|
||||
|
||||
# The frozen compatibility corpus driven through both verbs in one process — the round
|
||||
# trip is export -> import -> export, so its link set is export_bank's plus the import
|
||||
# half. Fixture path: see tests/package_fixtures.h.
|
||||
reasampler_test(package_round_trip
|
||||
LINK import_landing export_bank bank_package bank_book slot_map view_mode_model
|
||||
tail_control origin_ledger tracking_authority prune_reconcile app_version
|
||||
capture_paths wav_codec)
|
||||
target_compile_definitions(package_round_trip_tests PRIVATE
|
||||
REASAMPLER_PACKAGE_FIXTURE_DIR="${REASAMPLER_TESTS_DIR}/fixtures/package_compat")
|
||||
|
||||
# The pickers call the REAPER API, so no test target can exercise them; declared as a
|
||||
# library so the TU stays compiled. reaper_plugin.h pulls SWELL in on non-Windows.
|
||||
add_library(package_pickers STATIC package_pickers.cpp)
|
||||
|
||||
Reference in New Issue
Block a user