Guard g33 and g6164 staging paths

This commit is contained in:
2026-06-13 07:34:29 +08:00
parent 5f3e9757fe
commit f27793abe7
3 changed files with 97 additions and 0 deletions

View File

@@ -327,3 +327,46 @@ wasm-port/tests/host/verify_host_smokes.sh
无 INI/工具表依赖的 case。下一批可考虑 `g33.1/g33.1.ngc`、`g6164/test.ngc` 无 INI/工具表依赖的 case。下一批可考虑 `g33.1/g33.1.ngc`、`g6164/test.ngc`
再搭配一个已明确 expected-error 或 direct-file loop case如果 case 属于目录集合 再搭配一个已明确 expected-error 或 direct-file loop case如果 case 属于目录集合
或带参数化循环,先检查是否已有固定 manifest 风格,避免扩大执行面。 或带参数化循环,先检查是否已有固定 manifest 风格,避免扩大执行面。
九、2026-06-13 继续执行记录g33/g6164 staging path guard
本批继续按“小批量 direct-file fixture staged path guard”推进完成 2 个短小、
单文件、无 INI/工具表依赖的 interp fixture
- `g33.1/g33.1.ngc`
- `g6164/test.ngc`
完成内容:
- Node 侧为上述 2 个 fixture 增加 fixed `.ngc` manifest
- Node 侧用 `interpRegressionNgcFilesRecursive(...)` 与 upstream vendored fixture
精确对账;
- Node 侧检查 staged path 与 fixed manifest 一致;
- browser 侧增加 fixed-count 与 duplicate-free guard
- browser 侧检查 staged path 去掉 `/work/browser-interp/.../` 前缀后与 fixed
manifest 一致;
- browser 仍不依赖目录枚举。
本批没有纳入 `g72` loop 组;该组在测试代码中是参数化循环,后续应按整组或
明确固定 manifest 风格处理,避免为了凑数量拆出不自然的单项 guard。
已运行验证:
```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
```
结果:全部通过。
下一步建议:
继续推进时优先处理已经有固定 manifest 或自然成组的 direct-file fixtures。候选
`good` arc 6 项可按已有 fixed fixture list 补 staged path 对账;或者 `g72` 两项、
`g71` 四项按 loop manifest 成组补 guard。继续避免 blocked runtime promotion、
browser full inventory 扩面,以及任何 JS CNC 语义实现。

View File

@@ -7012,6 +7012,18 @@
} }
const g33_1Path = await writeInterpRegressionFile(interp, "g33.1", "g33.1.ngc"); const g33_1Path = await writeInterpRegressionFile(interp, "g33.1", "g33.1.ngc");
const g33_1NgcFiles = [
"g33.1.ngc",
];
if (g33_1NgcFiles.length !== 1 || new Set(g33_1NgcFiles).size !== g33_1NgcFiles.length) {
throw new Error("browser_interp_g33_1_fixture_coverage: list drift");
}
const g33_1StagedNgcFiles = [
g33_1Path,
].map((path) => path.replace("/work/browser-interp/g33.1/", ""));
if (g33_1StagedNgcFiles.join(",") !== g33_1NgcFiles.join(",")) {
throw new Error("browser_interp_g33_1_staging_manifest: list drift");
}
verifyExpectedOutput( verifyExpectedOutput(
"browser_interp_g33_1", "browser_interp_g33_1",
interp.runFile(g33_1Path), interp.runFile(g33_1Path),
@@ -7096,6 +7108,18 @@
} }
const g6164Path = await writeInterpRegressionFile(interp, "g6164", "test.ngc"); const g6164Path = await writeInterpRegressionFile(interp, "g6164", "test.ngc");
const g6164NgcFiles = [
"test.ngc",
];
if (g6164NgcFiles.length !== 1 || new Set(g6164NgcFiles).size !== g6164NgcFiles.length) {
throw new Error("browser_interp_g6164_fixture_coverage: list drift");
}
const g6164StagedNgcFiles = [
g6164Path,
].map((path) => path.replace("/work/browser-interp/g6164/", ""));
if (g6164StagedNgcFiles.join(",") !== g6164NgcFiles.join(",")) {
throw new Error("browser_interp_g6164_staging_manifest: list drift");
}
verifyExpectedOutput( verifyExpectedOutput(
"browser_interp_g6164", "browser_interp_g6164",
interp.runFile(g6164Path), interp.runFile(g6164Path),

View File

@@ -1947,6 +1947,21 @@ for (const badFixture of badInterpFixtures) {
} }
const g33_1Path = writeInterpRegressionFile("g33.1", "g33.1.ngc"); const g33_1Path = writeInterpRegressionFile("g33.1", "g33.1.ngc");
const g33_1NgcFiles = [
"g33.1.ngc",
];
assert.deepEqual(
g33_1NgcFiles,
interpRegressionNgcFilesRecursive("g33.1"),
"interp g33.1 fixture coverage drift",
);
assert.deepEqual(
[
g33_1Path,
],
g33_1NgcFiles.map((file) => `/work/interp/g33.1/${file}`),
"interp g33.1 staging manifest drift",
);
verifyExpectedOutput( verifyExpectedOutput(
"interp_g33_1_wasm", "interp_g33_1_wasm",
interp.runFile(g33_1Path), interp.runFile(g33_1Path),
@@ -2033,6 +2048,21 @@ for (const goodArcFixture of goodArcFixtures) {
} }
const g6164Path = writeInterpRegressionFile("g6164", "test.ngc"); const g6164Path = writeInterpRegressionFile("g6164", "test.ngc");
const g6164NgcFiles = [
"test.ngc",
];
assert.deepEqual(
g6164NgcFiles,
interpRegressionNgcFilesRecursive("g6164"),
"interp g6164 fixture coverage drift",
);
assert.deepEqual(
[
g6164Path,
],
g6164NgcFiles.map((file) => `/work/interp/g6164/${file}`),
"interp g6164 staging manifest drift",
);
verifyExpectedOutput( verifyExpectedOutput(
"interp_g6164_wasm", "interp_g6164_wasm",
interp.runFile(g6164Path), interp.runFile(g6164Path),