Complete internal submodule smoke closure
Some checks failed
M6 deployable RC / quick (push) Has been cancelled
M6 deployable RC / chromium (push) Has been cancelled
M6 deployable RC / release (push) Has been cancelled

This commit is contained in:
mes123456
2026-09-07 12:58:28 +08:00
parent f87a72732c
commit b940b8bac8
30 changed files with 4176 additions and 17 deletions

View File

@@ -4,6 +4,8 @@
对已完成的 34 个产品功能各执行一次最小生产路径烟测。烟测只回答“入口是否可达、主路径是否能完成、失败边界是否保持关闭”,不替代完整 API、性能、安全或跨浏览器验收。
功能内部的命令/子模块使用独立的一次性计划 [`WEB_INTERNAL_SUBMODULE_SMOKE_PLAN.md`](WEB_INTERNAL_SUBMODULE_SMOKE_PLAN.md),两层合计覆盖 34 个产品功能、101 个唯一子模块和 111 条功能绑定。
唯一执行清单是 [`tests/golden/WBV2/feature-smoke-plan.json`](../tests/golden/WBV2/feature-smoke-plan.json)。清单为每个功能分配唯一 `featureId`、唯一 `smokeId` 和 `maxAttempts=1`;运行器拒绝重复功能、重复烟测或隐式重试。
## 执行分层
@@ -57,6 +59,7 @@ IO 修复按既定顺序完成:修复 Blender WebEngine 源码/API 编译一
## 范围与边界
- 覆盖:16 个工作流模块、34 个产品实现功能、WEB_MAIN、SERVER_NATIVE、BROWSER_EQUIVALENT 三类入口。
- 内部覆盖:101 个唯一子模块各一次,失败只进入独立定点修复,不重跑已通过子模块。
- 不重复:每个产品功能仅有一个烟测 ID、一次尝试预算和一个代表性生产入口。
- 不混入:完整行为矩阵、性能 soak、安全/fuzz、Firefox/WebKit、全量历史 6900 条回归项。
- 历史源码单元的 `1025 verified / 2720 unverified` 仍单独记录;路由分类不被烟测结果冒充为逐单元行为证明。

View File

@@ -0,0 +1,47 @@
# Web Blender 内部子模块一次性烟测计划
## 范围
本计划承接 34 个产品功能烟测,继续覆盖功能内部的命令和运行时子模块。唯一执行清单是 [`tests/golden/WBV2/internal-submodule-smoke-plan.json`](../tests/golden/WBV2/internal-submodule-smoke-plan.json):12 个业务模块、111 条功能绑定归并为 101 个唯一子模块,其中 72 个编辑命令、22 个 JSON 路由、7 个运行时路由。
每个子模块拥有唯一 `smokeId`,固定 `runOnce=true`、`maxAttempts=1`。计划禁止重复 ID、自动重试和全量二次执行;已经通过的子模块只能复用现有证据。
## 执行顺序
1. 复用 34 个产品功能的一次性烟测结果,不重启完整浏览器矩阵。
2. 加载一次当前 source-matched WebEngine 构件和最小 `.blend` fixture。
3. 对 72 个编辑命令和 22 个 JSON 路由各发送一次最小请求;成功或按命令自身错误关闭均表示入口已识别,通用 `not implemented` 表示失败。
4. 对 7 个运行时路由检查其生产入口,不重复调用浏览器或服务。
5. 将失败项移入独立定点修复验证;原始报告保持只读,已通过子模块不重跑。
6. 用闭环 checker 核对唯一性、尝试次数、失败集合、修复证据、构件摘要和最终完成数。
## 一次性约束
- 计划检查:`node tools/web/run-wbv2-submodule-smoke.mjs`
- 首次执行入口:`node tools/web/run-wbv2-submodule-smoke.mjs --execute`
- 已有报告时,执行入口必须拒绝再次运行。
- 中断只允许从尚未尝试的用例继续;checkpoint 中 `attempts=1` 的用例必须跳过。
- 定点修复验证只处理首次失败集合,不得转化为第二次全量烟测。
- 完整 API、性能、安全、跨浏览器和发布矩阵不在本次烟测范围内。
## 执行结果
首次执行共 101 次且无重试:92 项通过,9 项进入定点处理。问题包括 C++ 异常捕获构建选项、Worker NLA 适配识别、相机/渲染外层分发遗漏、五个物理高层命令缺口。
定点处理首次验证解决 8 项;`addModifier` 进一步暴露 UI 使用 RNA 标识 `SUBSURF`、原生入口只接受内部标识 `Subdivision` 的契约不一致。原生入口改为复用快照序列化的同一类型映射后,单独一次回归通过。最终闭环为 101/101,原始烟测次数仍为 101,烟测重试为 0,未解决项为 0。
现有 NLA 生产证据 [`tests/golden/WBV2-P1112-000/nla-production.json`](../tests/golden/WBV2-P1112-000/nla-production.json) 证明 `moveNLAStrip` 经 Worker 适配后支持移动、撤销、重做、保存重开和求值;本轮直接复用该证据,没有重复执行浏览器烟测。
## 证据
- 首次计划:[`internal-submodule-smoke-plan.json`](../tests/golden/WBV2/internal-submodule-smoke-plan.json)
- 首次报告:[`internal-submodule-smoke-report.json`](../tests/golden/WBV2/internal-submodule-smoke-report.json)
- 定点修复:[`internal-submodule-smoke-fix-report.json`](../tests/golden/WBV2/internal-submodule-smoke-fix-report.json)
- 单点回归:[`internal-submodule-smoke-regression-report.json`](../tests/golden/WBV2/internal-submodule-smoke-regression-report.json)
- 闭环 manifest:[`internal-submodule-smoke-manifest.json`](../tests/golden/WBV2/internal-submodule-smoke-manifest.json)
闭环检查命令:
```bash
node tools/web/check-wbv2-submodule-smoke-plan.mjs
```