Guard bad error direct-file staging

This commit is contained in:
2026-06-13 09:11:03 +08:00
parent 0ea8402247
commit be9fd7e17a
3 changed files with 44 additions and 13 deletions

View File

@@ -1299,3 +1299,45 @@ wasm-port/tests/host/verify_host_smokes.sh
适合复用 `assertInterpRegressionFileStaging(...)` 替换当前 aggregate staged path
guard。继续避免 blocked runtime promotion、browser full inventory 扩面和 JS CNC
语义实现。
三十一、2026-06-13 继续执行记录bad error direct-file staging guard
本批处理 `bad` error fixture loop复用 `assertInterpRegressionFileStaging(...)`
替换 aggregate staged path guard。
完成内容:
- Node 侧保留 `badInterpFixtures` 与 upstream `.ngc` manifest 的覆盖检查;
- Node 侧删除 `badStagedNgcFiles` aggregate staged path 对账;
- Node 侧在 loop 内为 21 个 bad fixture 调用 single-file staging helper
- browser 侧保留 fixed fixture list duplicate-free guard
- browser 侧删除 `badStagedRelativeNgcFiles` aggregate staged path 对账;
- browser 侧在 loop 内为 21 个 bad fixture 调用 single-file staging helper
- browser 侧仍不枚举目录;
- 仅整理 host/filesystem staging guard不改变 bad fixture error expected output。
已运行验证:
```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 aggregate guard。优先候选
- `g33.1/g33.1.ngc`
- `g6164/test.ngc`
- `g52/offsets.ngc`
这些都是小型 single-file case适合复用 `assertInterpRegressionFileStaging(...)`
替换内联 staged path 对账。之后再处理 `g10` 初始/最终 aggregate guard。继续避免
blocked runtime promotion、browser full inventory 扩面和 JS CNC 语义实现。

View File

@@ -7077,10 +7077,9 @@
if (badInterpFixtures.length !== 21 || new Set(badInterpFixtures.map((fixture) => fixture.file)).size !== badInterpFixtures.length) {
throw new Error("browser_interp_bad_fixture_coverage: list drift");
}
const badStagedNgcFiles = [];
for (const badFixture of badInterpFixtures) {
const badPath = await writeInterpRegressionFile(interp, "bad", badFixture.file);
badStagedNgcFiles.push(badPath);
assertInterpRegressionFileStaging("bad", badFixture.file, badPath);
verifyExpectedOutput(
`browser_interp_bad_${badFixture.name}`,
interp.runFile(badPath),
@@ -7094,10 +7093,6 @@
].join("\n"),
);
}
const badStagedRelativeNgcFiles = badStagedNgcFiles.map((path) => path.replace("/work/browser-interp/bad/", ""));
if (badStagedRelativeNgcFiles.join(",") !== badInterpFixtures.map((fixture) => fixture.file).join(",")) {
throw new Error("browser_interp_bad_staging_manifest: list drift");
}
const g33_1Path = await writeInterpRegressionFile(interp, "g33.1", "g33.1.ngc");
const g33_1NgcFiles = [

View File

@@ -2042,10 +2042,9 @@ assert.deepEqual(
interpRegressionNgcFiles("bad"),
"interp bad fixture coverage drift",
);
const badStagedNgcFiles = [];
for (const badFixture of badInterpFixtures) {
const badPath = writeInterpRegressionFile("bad", badFixture.file);
badStagedNgcFiles.push(badPath);
assertInterpRegressionFileStaging("bad", badFixture.file, badPath);
verifyExpectedOutput(
`interp_bad_${badFixture.name}_wasm`,
interp.runFile(badPath),
@@ -2059,11 +2058,6 @@ for (const badFixture of badInterpFixtures) {
].join("\n"),
);
}
assert.deepEqual(
badStagedNgcFiles,
badInterpFixtures.map((fixture) => `/work/interp/bad/${fixture.file}`),
"interp bad staging manifest drift",
);
const g33_1Path = writeInterpRegressionFile("g33.1", "g33.1.ngc");
const g33_1NgcFiles = [