Files
MapLibreParticleLab/docs/40_任务/STEP-071A_V3-07_Linux综合冻结_测试Fixture修正_Codex任务_v1.md
OpenAI Codex a4bf6b7aea
Some checks failed
validate-scripts / validate-scripts (push) Has been cancelled
test: close V3 Linux freeze
2026-09-11 11:51:34 +08:00

2.3 KiB
Raw Blame History

STEP-071A V3-07 Linux 综合冻结:测试 Fixture 修正

基线

  • 仓库:/mnt/sda1/MapLibreParticleLab
  • 分支:particle/main
  • 基线 HEAD:fcc533dc9518395d0c25794131f53f0fae20d51c
  • 只允许修改:test/style/source.test.cpp

已确认问题 1:Host duplicate 测试数据错误

HostFieldSubmissionRejectsInvalidWithoutChangingLastValidField 当前用同一份 uniform-east payload 提交 T0/T1。 Runtime 先按 GPU content identity 返回 Duplicate 是正确行为;测试预期 InitialWindowReady 已过时。

修正要求:

  • T0 使用 uniform-east/field.f32。
  • T1 使用兼容但内容不同的 uniform-north/field.f32。
  • 后续 invalid/non-monotonic 检查使用不会与当前 lastValid 重复的 payload;尤其 non-monotonic 必须真正到达 non-monotonic 判定,而不是先命中 Duplicate。
  • 不修改 sameFieldGpuContent、Duplicate 顺序或任何 Runtime 生产逻辑。

已确认问题 2:Timeline 测试时间重复

RasterArrayTimelineCandidatesReachReadyThroughFieldAdapter 使用 east/north/vortex 三份旧 fixture;三份 metadata 的 timeIndex 均为 0。 当前 OfflineFixtureParticleAdapter 保留 validTime = timeIndex + 1,因此旧测试会形成重复时间,Timeline 正确 fail-closed,而测试无限等待。 修正要求:

  • 不改共享 fixture 文件。
  • 仅在该测试内部把 north/vortex metadata 的 timeIndex 调整为严格递增值,例如 east=0、north=1、vortex=2。
  • 保持 grid/bounds/vector semantics/encoding 不变。
  • 保持测试仍通过真实 OfflineFixtureParticleAdapter / Source preload / Timeline 路径验证,不改成绕过适配器的伪测试。
  • 若需要小型局部 helper,只能放在 test/style/source.test.cpp,不得扩散生产 API。

禁止事项

  • 不修改 src/、include/、shader、JNI、Android、RN、WeatherV2、NavSea。
  • 不修改 STEP-062 用户 dirty 文件。
  • 不执行编译、测试、代码审计、搜索、Android Gradle、ADB、Jest。
  • 不执行 git add/commit/push。
  • 不创建额外完成报告;验证与 Git 收尾由 ChatGPT 在 tmux rdc 中直接完成。

完成输出

修改完成后只报告:

  1. 修改了 test/style/source.test.cpp 哪两个测试;
  2. 每处如何避免 Duplicate / 重复 validTime;
  3. 是否修改了任何生产代码(必须为“否”)。