fix: checkpoint STEP-097 A1 renderer correctness
This commit is contained in:
@@ -830,6 +830,33 @@ TEST(RenderSegmentDiagnostics, VisibilityChangesMetadataButNotTopologyRevision)
|
||||
EXPECT_EQ(hidden.segments[1].beginIndex, 2);
|
||||
}
|
||||
|
||||
TEST(RenderSegmentDiagnostics, OldCacheReleaseCannotChargeReplacementAtSameIndex) {
|
||||
RetainedUnderlayRuntimeState state;
|
||||
RenderSegmentPlan configured;
|
||||
configured.segments = {{RenderSegmentStrategy::Retained, std::nullopt},
|
||||
{RenderSegmentStrategy::Continuous, "weather"}};
|
||||
ASSERT_TRUE(state.setRenderSegmentPlan(configured));
|
||||
const auto oldPlan = resolveRenderSegmentPlan(state.renderSegmentPlanConfig(), segmentLayerIds(), true);
|
||||
state.recordRenderSegmentResolution(oldPlan, {});
|
||||
const auto oldRevision = state.renderSegmentSnapshot().topologyRevision;
|
||||
|
||||
configured.segments = {{RenderSegmentStrategy::Retained, std::nullopt},
|
||||
{RenderSegmentStrategy::Continuous, "land"}};
|
||||
ASSERT_TRUE(state.setRenderSegmentPlan(configured));
|
||||
const auto newPlan = resolveRenderSegmentPlan(state.renderSegmentPlanConfig(), segmentLayerIds(), true);
|
||||
state.recordRenderSegmentResolution(newPlan, {});
|
||||
const auto newRevision = state.renderSegmentSnapshot().topologyRevision;
|
||||
ASSERT_NE(oldRevision, newRevision);
|
||||
|
||||
state.recordSegmentResourceRelease(0, oldRevision);
|
||||
auto snapshot = state.renderSegmentSnapshot();
|
||||
ASSERT_TRUE(snapshot.segments[0].cache);
|
||||
EXPECT_EQ(snapshot.segments[0].cache->resourceRelease, 0u);
|
||||
state.recordSegmentResourceRelease(0, newRevision);
|
||||
snapshot = state.renderSegmentSnapshot();
|
||||
EXPECT_EQ(snapshot.segments[0].cache->resourceRelease, 1u);
|
||||
}
|
||||
|
||||
TEST(RenderSegmentDiagnostics, CacheOffKeepsResolvedTopology) {
|
||||
RetainedUnderlayRuntimeState state;
|
||||
RenderSegmentPlan configured;
|
||||
|
||||
Reference in New Issue
Block a user