Guard rotation staging paths

This commit is contained in:
2026-06-13 08:00:35 +08:00
parent 5f1d885d36
commit 10cae98a9e
3 changed files with 59 additions and 0 deletions

View File

@@ -620,3 +620,45 @@ wasm-port/tests/host/verify_host_smokes.sh
组三项已有 fixed manifest可补 staged path 对账;或者继续挑选短小单文件
direct-file case。仍不要推进 blocked runtime promotion、browser full inventory
扩面或 JS CNC 语义实现。
十六、2026-06-13 继续执行记录rotation staging path guard
本批按“已有 fixed manifest 的 direct-file fixture staged path guard”推进完成
`rotation` 组现有 Node/browser coverage 使用的 3 个 staged `.ngc` 文件:
- `rotation/abs-pts/test.ngc`
- `rotation/g28/g28.ngc`
- `rotation/g53/g53.ngc`
完成内容:
- Node 侧复用既有 `rotationRegressionFiles` fixed manifest
- Node 侧继续用 `interpRegressionNgcFilesRecursive("rotation")` 与 upstream
vendored `.ngc` fixture 精确对账;
- Node 侧检查实际 staged path 与 fixed manifest 一致;
- browser 侧复用既有 fixed-count 与 duplicate-free guard
- browser 侧检查 staged path 去掉 `/work/browser-interp/rotation/` 前缀后与
fixed manifest 一致;
- 不扩大 staging 到 `rotation/abs-pts/test.tbl`,保持现有 direct-file coverage
- browser 仍不依赖目录枚举。
已运行验证:
```bash
git diff --check
SKIP_INTERP_BUILD=1 wasm-port/tests/wasm/node/verify_interp_wasm.sh
SKIP_INI_BUILD=1 SKIP_INTERP_BUILD=1 wasm-port/tests/browser/verify_interp_browser.sh
wasm-port/tools/verify_vendor_sync.sh
wasm-port/tools/verify_no_standalone_cnc_semantics.sh
SKIP_INTERP_BUILD=1 wasm-port/tests/wasm/node/verify_sim_configs_inventory_wasm.sh
wasm-port/tests/host/verify_host_smokes.sh
```
结果:全部通过。
下一步建议:
继续选择已有 Node/browser coverage 且清单稳定的 fixture。优先候选`g10`、`g52`
之外的 remaining direct-file 单项,或已经有 fixed list 的分组;若涉及工具表/INI
只按现有 `writeInterpRegressionFiles(...)` 或 staging helper 输出做路径 guard。
继续避免 blocked runtime promotion、browser full inventory 扩面和 JS CNC 语义实现。

View File

@@ -7386,6 +7386,14 @@
}
const rotationG53Path = await writeInterpRegressionFile(interp, "rotation/g53", "g53.ngc");
const rotationStagedNgcFiles = [
rotationAbsPtsPath,
rotationG28Path,
rotationG53Path,
].map((path) => path.replace("/work/browser-interp/rotation/", ""));
if (rotationStagedNgcFiles.join(",") !== rotationRegressionFiles.join(",")) {
throw new Error("browser_interp_rotation_staging_manifest: list drift");
}
const rotationG53Output = interp.runFile(rotationG53Path);
verifyExpectedOutput(
"browser_interp_rotation_g53",

View File

@@ -2344,6 +2344,15 @@ assert.match(
);
const rotationG53Path = writeInterpRegressionFile("rotation/g53", "g53.ngc");
assert.deepEqual(
[
rotationAbsPtsPath,
rotationG28Path,
rotationG53Path,
],
rotationRegressionFiles.map((file) => `/work/interp/rotation/${file}`),
"interp rotation staging manifest drift",
);
const rotationG53Output = interp.runFile(rotationG53Path);
verifyExpectedOutput(
"interp_rotation_g53_wasm",