Guard good arc staging paths

This commit is contained in:
2026-06-13 07:37:33 +08:00
parent f27793abe7
commit a4ce6dc3c6
3 changed files with 58 additions and 0 deletions

View File

@@ -370,3 +370,48 @@ wasm-port/tests/host/verify_host_smokes.sh
`good` arc 6 项可按已有 fixed fixture list 补 staged path 对账;或者 `g72` 两项、
`g71` 四项按 loop manifest 成组补 guard。继续避免 blocked runtime promotion、
browser full inventory 扩面,以及任何 JS CNC 语义实现。
十、2026-06-13 继续执行记录good arc staging path guard
本批按“自然成组 direct-file fixture staged path guard”推进完成 `good` arc 目录
6 个已有 Node/browser coverage 的 `.ngc` fixture
- `good/good-arc.big.imperial.center-format.ngc`
- `good/good-arc.big.metric.center-format.ngc`
- `good/good-arc.medium.imperial.center-format.ngc`
- `good/good-arc.medium.metric.center-format.ngc`
- `good/good-arc.small.imperial.center-format.ngc`
- `good/good-arc.small.metric.center-format.ngc`
完成内容:
- Node 侧复用既有 `goodArcFixtures` fixed manifest
- Node 侧继续用 `interpRegressionNgcFiles("good")` 与 upstream vendored fixture
精确对账;
- Node 侧收集实际 staged path并检查与 fixed manifest 一致;
- browser 侧复用既有 fixed-count 与 duplicate-free guard
- browser 侧收集实际 staged path去掉 `/work/browser-interp/good/` 前缀后与
fixed manifest 一致;
- 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
```
结果:全部通过。
下一步建议:
继续处理自然成组 direct-file fixtures。优先候选`g72` 两项或 `g71` 四项按
loop manifest 成组补 staged path guard如果选择 `bad` expected-error 目录,
需要按现有 `badInterpFixtures` fixed list 做 staged path 对账,不改变 expected-error
语义。继续避免 blocked runtime promotion、browser full inventory 扩面和 JS CNC
语义实现。

View File

@@ -7089,8 +7089,10 @@
if (goodArcFixtures.length !== 6 || new Set(goodArcFixtures.map((fixture) => fixture.file)).size !== goodArcFixtures.length) {
throw new Error("browser_interp_good_fixture_coverage: list drift");
}
const goodArcStagedNgcFiles = [];
for (const goodArcFixture of goodArcFixtures) {
const goodArcPath = await writeInterpRegressionFile(interp, "good", goodArcFixture.file);
goodArcStagedNgcFiles.push(goodArcPath);
verifyExpectedOutput(
`browser_interp_good_arc_${goodArcFixture.name}`,
interp.runFile(goodArcPath),
@@ -7106,6 +7108,10 @@
].join("\n"),
);
}
const goodArcStagedRelativeNgcFiles = goodArcStagedNgcFiles.map((path) => path.replace("/work/browser-interp/good/", ""));
if (goodArcStagedRelativeNgcFiles.join(",") !== goodArcFixtures.map((fixture) => fixture.file).join(",")) {
throw new Error("browser_interp_good_staging_manifest: list drift");
}
const g6164Path = await writeInterpRegressionFile(interp, "g6164", "test.ngc");
const g6164NgcFiles = [

View File

@@ -2029,8 +2029,10 @@ assert.deepEqual(
interpRegressionNgcFiles("good"),
"interp good fixture coverage drift",
);
const goodArcStagedNgcFiles = [];
for (const goodArcFixture of goodArcFixtures) {
const goodArcPath = writeInterpRegressionFile("good", goodArcFixture.file);
goodArcStagedNgcFiles.push(goodArcPath);
verifyExpectedOutput(
`interp_good_arc_${goodArcFixture.name}_wasm`,
interp.runFile(goodArcPath),
@@ -2046,6 +2048,11 @@ for (const goodArcFixture of goodArcFixtures) {
].join("\n"),
);
}
assert.deepEqual(
goodArcStagedNgcFiles,
goodArcFixtures.map((fixture) => `/work/interp/good/${fixture.file}`),
"interp good staging manifest drift",
);
const g6164Path = writeInterpRegressionFile("g6164", "test.ngc");
const g6164NgcFiles = [