Guard cam-nisley staging paths

This commit is contained in:
2026-06-13 07:56:32 +08:00
parent 03a994edca
commit 5f1d885d36
3 changed files with 67 additions and 3 deletions

View File

@@ -578,3 +578,45 @@ wasm-port/tests/host/verify_host_smokes.sh
`test.tbl`,可按本批模式补 file-list guard或者继续挑选短小单文件 direct-file
case。仍不要推进 blocked runtime promotion、browser full inventory 扩面或 JS CNC
语义实现。
十五、2026-06-13 继续执行记录cam-nisley file-list staging path guard
本批按“已有明确 file list 的 fixture staged path guard”推进完成
`cam-nisley` 目录现有 Node/browser coverage 使用的 2 个 staged 文件:
- `cam-nisley/cam.ngc`
- `cam-nisley/test.tbl`
完成内容:
- Node 侧新增 `camNisleyFiles` fixed manifest
- Node 侧用 `interpRegressionNgcFilesRecursive("cam-nisley")` 与 upstream vendored
`.ngc` fixture 精确对账;
- Node 侧检查 `writeInterpRegressionFiles(...)` 目标 staged path 与 fixed manifest
一致;
- browser 侧增加 fixed-count 与 duplicate-free guard
- browser 侧检查 staged path 去掉 `/work/browser-interp/cam-nisley/` 前缀后与
fixed manifest 一致;
- 仅校验文件清单与 staging 路径,不改变工具表/INI 语义;
- 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。优先候选`rotation`
组三项已有 fixed manifest可补 staged path 对账;或者继续挑选短小单文件
direct-file case。仍不要推进 blocked runtime promotion、browser full inventory
扩面或 JS CNC 语义实现。

View File

@@ -6536,10 +6536,18 @@
].join("\n"),
);
const camNisleyDir = await writeInterpRegressionFiles(interp, "cam-nisley", [
const camNisleyFiles = [
"cam.ngc",
"test.tbl",
]);
];
if (camNisleyFiles.length !== 2 || new Set(camNisleyFiles).size !== camNisleyFiles.length) {
throw new Error("browser_interp_cam_nisley_fixture_coverage: list drift");
}
const camNisleyDir = await writeInterpRegressionFiles(interp, "cam-nisley", camNisleyFiles);
const camNisleyStagedRelativeFiles = camNisleyFiles.map((file) => `${camNisleyDir}/${file}`.replace("/work/browser-interp/cam-nisley/", ""));
if (camNisleyStagedRelativeFiles.join(",") !== camNisleyFiles.join(",")) {
throw new Error("browser_interp_cam_nisley_staging_manifest: list drift");
}
interp.writeTextFile(
`${camNisleyDir}/test.ini`,
[

View File

@@ -1491,7 +1491,21 @@ verifyExpectedOutput(
].join("\n"),
);
const camNisleyDir = writeInterpRegressionFiles("cam-nisley", ["cam.ngc", "test.tbl"]);
const camNisleyFiles = [
"cam.ngc",
"test.tbl",
];
assert.deepEqual(
camNisleyFiles.filter((file) => file.endsWith(".ngc")),
interpRegressionNgcFilesRecursive("cam-nisley"),
"interp cam-nisley fixture coverage drift",
);
const camNisleyDir = writeInterpRegressionFiles("cam-nisley", camNisleyFiles);
assert.deepEqual(
camNisleyFiles.map((file) => `${camNisleyDir}/${file}`),
camNisleyFiles.map((file) => `/work/interp/cam-nisley/${file}`),
"interp cam-nisley staging manifest drift",
);
interp.writeTextFile(
`${camNisleyDir}/test.ini`,
[