Add PPBR compatibility fixtures

This commit is contained in:
2026-06-15 19:37:06 +02:00
parent ce169a3fd6
commit 328a793dd2
2 changed files with 17 additions and 9 deletions

View File

@@ -18,6 +18,11 @@ agent or engineer to remove them without reconstructing context from chat.
## Recent Reductions
- 2026-06-15: `DEBT-0049` was narrowed again. `pp_assets_brush_package_tests`
now names the currently accepted legacy PPBR version matrix explicitly:
canonical `0.1`, tolerated `0.2`, tolerated `1.1`, and rejected `1.2`. The
live parser still preserves the legacy tolerance until broader compatibility
fixtures prove strict canonical enforcement is safe.
- 2026-06-15: `DEBT-0063` was narrowed again. Sidebar stroke/color/layer/grid
popups, file/about/layer menu popups in `src/app_layout.cpp`, quick
brush/color popup+ticker overlays in `src/legacy_quick_ui_services.cpp`,

View File

@@ -31,15 +31,18 @@ void parses_ppbr_header_and_legacy_version_tolerance(pp::tests::Harness& harness
PP_EXPECT(harness, canonical.value().major == 0U);
PP_EXPECT(harness, canonical.value().minor == 1U);
const auto minor_tolerated_bytes = ppbr_header(0, 2);
const auto major_tolerated_bytes = ppbr_header(1, 1);
const auto rejected_bytes = ppbr_header(1, 2);
const auto legacy_minor_tolerated = pp::assets::parse_ppbr_header(minor_tolerated_bytes);
const auto legacy_major_tolerated = pp::assets::parse_ppbr_header(major_tolerated_bytes);
const auto rejected = pp::assets::parse_ppbr_header(rejected_bytes);
PP_EXPECT(harness, legacy_minor_tolerated);
PP_EXPECT(harness, legacy_major_tolerated);
PP_EXPECT(harness, !rejected);
const auto tolerated_minor = pp::assets::parse_ppbr_header(ppbr_header(0, 2));
const auto tolerated_major = pp::assets::parse_ppbr_header(ppbr_header(1, 1));
const auto rejected_both = pp::assets::parse_ppbr_header(ppbr_header(1, 2));
PP_EXPECT(harness, tolerated_minor);
PP_EXPECT(harness, tolerated_minor.value().major == 0U);
PP_EXPECT(harness, tolerated_minor.value().minor == 2U);
PP_EXPECT(harness, tolerated_major);
PP_EXPECT(harness, tolerated_major.value().major == 1U);
PP_EXPECT(harness, tolerated_major.value().minor == 1U);
PP_EXPECT(harness, !rejected_both);
PP_EXPECT(harness, rejected_both.status().code == pp::foundation::StatusCode::invalid_argument);
}
void rejects_truncated_and_bad_magic_headers(pp::tests::Harness& harness)