3.6 KiB
3.6 KiB
STEP-097 A1 第 19 项 GTest 运行验证报告 v1
1. 执行结论
第 19 项 F09/O01 的现有原生单元测试:PASS。 专项 RenderSegmentDiagnostics.OldCacheReleaseCannotChargeReplacementAtSameIndex 实测 1/1 通过、退出码 0;相关 RenderSegmentDiagnostics.* 5/5 通过、退出码 0。这是 Core 诊断计数验证,并非 GPU 内存泄漏测试或 A1 整体验收。
- 执行机器:
Mac-mini-tei.lan,日期 2026-09-26(日本时间);仓库/Users/tei/dev/MapLibreParticleLab;分支particle/main。 - 实测源码 HEAD:
0d13552bed84f427dd43cae9856391bd26622179;其中第 19 项生产/测试源码提交e67e4961b5b1a1ff8fa7c1e3263799d63f89cadc;开始时工作树 clean。 - Integration
main已由 RDC 同步核实至318f8ccf911ac3136c3086a1d14e61f83e2d4bce。本次无公共契约或生产源码修改。
2. 构建和运行
在已有、可追踪源码的 build-step088-opengl CMake/Ninja 配置中,针对 mbgl-test-runner 增量重编译:
cmake --build build-step088-opengl --target mbgl-test-runner --parallel 3
build-step088-opengl/mbgl-test-runner --gtest_filter=RenderSegmentDiagnostics.OldCacheReleaseCannotChargeReplacementAtSameIndex --gtest_color=no
build-step088-opengl/mbgl-test-runner '--gtest_filter=RenderSegmentDiagnostics.*' --gtest_color=no
- 构建:exit 0,95/95 Ninja steps,实际耗时 261.74 秒;测试程序确实重新链接且新增测试列在
--gtest_list_tests输出中,未复用旧二进制代替新测试。 - 编译有 Boost header 未使用形参与 vendor 静态库 macOS deployment target 链接警告;无构建失败,本次未更改工具链/警告规则。
- 产物:
build-step088-opengl/mbgl-test-runner;SHA-2569fbbc08c44d8445114040ef3a127f5efdad29d0e6d0d1437617421c8a392de52。
3. 测试和断言证据
专项用例源码:test/renderer/retained_underlay_cache.test.cpp,RenderSegmentDiagnostics.OldCacheReleaseCannotChargeReplacementAtSameIndex。
测试先配置旧 Segment 拓扑并取得 oldRevision,再将 Continuous 边界由 weather 改为 land,要求 newRevision != oldRevision。对相同 index=0 分别发送两种资源释放:
recordSegmentResourceRelease(0, oldRevision):新 topology 第 0 段的resourceRelease必须仍为 0。recordSegmentResourceRelease(0, newRevision):同一当前段的resourceRelease必须变为 1。
本轮真实输出:
[ RUN ] RenderSegmentDiagnostics.OldCacheReleaseCannotChargeReplacementAtSameIndex
[ OK ] RenderSegmentDiagnostics.OldCacheReleaseCannotChargeReplacementAtSameIndex (0 ms)
[==========] 1 test from 1 test suite ran.
[ PASSED ] 1 test.
相邻诊断组的 5 个用例亦全部通过:可见性元数据、旧缓存释放、缓存关闭保持拓扑、非法计划的 Style 顺序、快照序列化。全部无失败和跳过。
4. 事实边界、证据与后续
- 该测试仅验证当前 topology 的按段释放计数不被旧 revision 污染;不证明底层 GPU 纹理的实际释放、总分配平衡、没有显存泄漏或 FZG1/iOS 运行态表现。Aggregate release 仍由源码语义保证,本用例未单独断言 aggregate 数值。
- 第 19 项的已有 GTest 执行检查点可标为 PASS;STEP-097 A1 仍 PARTIAL:01 同 vector source/same tiles stencil、02 Metal 附件、03 真正 LayerGroup 绘制异常注入均没有被此测试覆盖。
- 保存日志:忽略目录
artifacts/maplibre-particle/step097-gtest19/build.log、gtest19.log、diagnostics-suite.log、build-metadata.txt。本轮没有执行 Jest、APK 构建/重装、性能或新版本发布。