Files
MapLibreParticleLab/docs/60_测试/STEP-097_V13修复后集中验证清单_v1.md
tei be5b9080ed
Some checks failed
validate-scripts / validate-scripts (push) Has been cancelled
docs: validate STEP-097 cache diagnostics on FZG1
2026-09-26 08:21:42 +09:00

5.5 KiB
Raw Blame History

STEP-097 V13 修复后集中验证清单 v1

状态:PARTIAL:FZG1 A1 既有场景冒烟已执行,其余 NOT RUN。下方原清单编写于 Codex A1 部分交付时;后续 RDC 实际执行事实与边界见文末。A1 专用 stencil 像素、Metal 附件、render 异常注入与 19 GTest 仍待完成;A2/B/C 未实施,不得以设备冒烟替代正式验收。

通用 Core 与现有测试入口(RDC)

在本仓 Mac 当前 checkout,使用已配置的现有 build 目录;若目录不存在,先按当前构建规范配置。此处不自动运行:

cmake --build build-step088-opengl --target mbgl-test-runner -j3
build-step088-opengl/mbgl-test-runner --gtest_filter='RenderSegmentPlan.*:RenderSegmentDiagnostics.*:RetainedUnderlayCache.*:RetainedUnderlayRevision.*:ParticleFastPath.*'

新入口 RenderSegmentDiagnostics.OldCacheReleaseCannotChargeReplacementAtSameIndex 预期同 index 的旧 revision release 不计入新 topology,当前 revision release 计 1。RetainedUnderlayCache.UnsupportedAndResourceFailureFallBackSafely 为旧入口,用于资源失败后的基础状态;尚不能替代真实 layer render 异常注入。失败保留完整日志,回传首个错误和日志路径。

Android OpenGL(Particle-Android / RDC,NOT RUN)

./tools/particle_android_validation/build_validation_apk.sh

RDC 应使用同一 commit 生成 APK,再由后续授权的 Win11/模拟器操作按标准流水线安装。现有 Test Host 仅有 C-R 控制,尚缺同一 vector source/same tiles 的 R-R、R-C-R、C-R-R fixture,故该 APK 即使构建成功也不能关闭 01/03。需比较 cache ON/OFF 的首帧、重建、reuse、主目标与离屏目标像素;失败后 diagnostics 不得 Ready,下帧可恢复。记录 Renderer、ABI、SHA-256、截图与日志。不得引用 STEP-094 历史 43/43 作为本轮结果。

iOS Metal(Particle-iOS / RDC,NOT RUN)

cmake --build build-ios --target ios-sdk-static -- -quiet

同 commit 的 iOS simulator 与真机需开启 Metal API Validation,捕获 retained R-R/R-C-R 的 color/depth/stencil texture、load/clear/store,特别确认 simulator 的 Depth32Float_Stencil8 同时绑定 depth 和 stencil。故障注入覆盖附件创建失败、encoder 创建失败及 layer render 异常;预期不发布 Ready cache、后续能 fallback/retry。专用自动测试入口尚缺,不能因静态修改或 ios-sdk-static 成功就宣称 Metal runtime PASS。

后续 GPU 性能(粒子负责人协调,NOT RUN)

完成 A1/A2/B/C 代码与平台测试入口后,以相同设备、commit、Style、视口和场数据采样 cache ON/OFF、R×viewport×fieldKey 阶梯,记录 30/60 FPS、p50/p95/p99、GPU/CPU frame time、纹理创建/释放、峰值/长稳内存、方向/缩放/状态恢复。Metal capture 记录 waitUntilCompleted 的实际同步点及资源依赖。未经运行不填写数字;F06 multi-C 与 F08 精细失效另行设计。

Test Host 依赖(B 阶段后,NOT RUN)

目前默认 RN .10 与 Native .13 错配,阶段 B 未开始,不得运行安装并声称配对成功。B 修正 package/lock/SPM 后,RDC 再在 Test Host 目录执行:

npm ci
npm run typecheck

必须同时检查实际已安装 RN tgz、Android Gradle substitution、iOS SPM exactVersion 与 lockfile;不得以 node_modules 临时软链代替默认安装结果。本清单不含 Jest 命令。

2026-09-25 FZG1 A1 部分执行结果(覆盖上方 Codex 交付时的 NOT RUN 状态)

  • 标准构建脚本已由 Mac RDC 实际执行;HEAD 91c2491b0,x86_64 OpenGL Debug APK BUILD SUCCESSFUL,SHA-256 8677197c5f83a22747cb51f0c261edffc5db4678fc25b3f366474f6ecb94dc99。冻结于 artifacts/maplibre-particle/step097-fzg1/。
  • ADB 192.168.200.139:5555 对 FZG1-2 实际执行覆盖安装、20 组截图/UI XML、既有 STEP-093 topology、CACHE OFF/ON、相机、非法范围恢复与 mutation/fail-closed,日志见 docs/报告/STEP-097_A1_FZG1测试APK与实机验证报告_v1.md。
  • 此处只是设备冒烟;A1 的同 tile stencil fixture、Metal 附件验证、真正 LayerGroup exception 注入与 OldCacheReleaseCannotChargeReplacementAtSameIndex GTest 仍 NOT RUN/缺专用入口;A2/B/C 和软件发布亦未执行。

2026-09-26 第 19 项原生 GTest 已执行

  • RDC 使用当前源码 HEAD 0d13552bed84f427dd43cae9856391bd26622179 增量重编译 mbgl-test-runner:95/95 steps,exit 0;第 19 项 OldCacheReleaseCannotChargeReplacementAtSameIndex 1/1 PASS;RenderSegmentDiagnostics.* 5/5 PASS,两次退出码均为 0。原始日志和分析见 docs/报告/STEP-097_A1_第19项GTest运行验证报告_v1.md。
  • 上方第 19 项“NOT RUN”是 2026-09-25 FZG1 冒烟时点的历史事实,现已由本条更新。01 同 tile、02 Metal、03 render exception 测试仍未闭合;A1 不得整体标 PASS。

2026-09-26 第 19 项 FZG1 设备辅助测试结果

  • 经 RDC 在 FZG1-2 重新覆盖安装与 hash 复核,执行两轮 topology 轮换和资源诊断场景,20 个截图检查点;18 个有效配置均 valid=true/fallback=false,缺失 START fail-closed 后恢复。B/T 的粗粒度 create-release 差额 0/1,实时日志中无应用崩溃记录。详见 docs/报告/STEP-097_A1_第19项FZG1运行验证报告_v1.md 与 Mac 忽略目录 artifacts/maplibre-particle/step097-fzg1-gtest19-device/。
  • 这次是 Android Runtime 冒烟,前述第 19 项精确计数归属 GTest 由 Mac 原生测试覆盖;01 同 source/tile stencil、02 Metal、03 绘制异常注入仍缺,A1 整体 PARTIAL,A2/B/C 未实施。