From be9fd7e17ac4276bb56f4e8d77b805cf89bf662a Mon Sep 17 00:00:00 2001 From: wangdequan Date: Sat, 13 Jun 2026 09:11:03 +0800 Subject: [PATCH] Guard bad error direct-file staging --- text6.txt | 42 +++++++++++++++++++ wasm-port/tests/browser/interp_smoke.html | 7 +--- .../tests/wasm/node/verify_interp_wasm.mjs | 8 +--- 3 files changed, 44 insertions(+), 13 deletions(-) diff --git a/text6.txt b/text6.txt index d9790b8..25664a6 100644 --- a/text6.txt +++ b/text6.txt @@ -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 语义实现。 diff --git a/wasm-port/tests/browser/interp_smoke.html b/wasm-port/tests/browser/interp_smoke.html index 4ad34c2..1ff8067 100644 --- a/wasm-port/tests/browser/interp_smoke.html +++ b/wasm-port/tests/browser/interp_smoke.html @@ -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 = [ diff --git a/wasm-port/tests/wasm/node/verify_interp_wasm.mjs b/wasm-port/tests/wasm/node/verify_interp_wasm.mjs index affd387..4a9b7a2 100644 --- a/wasm-port/tests/wasm/node/verify_interp_wasm.mjs +++ b/wasm-port/tests/wasm/node/verify_interp_wasm.mjs @@ -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 = [