diff --git a/text6.txt b/text6.txt index c3c46ac..7f087ef 100644 --- a/text6.txt +++ b/text6.txt @@ -1207,3 +1207,51 @@ wasm-port/tests/host/verify_host_smokes.sh 建议先选 `g71/g72`,因为 file list 较短且已有 Node/browser coverage,适合继续复用 single-file helper 收敛 staging path guard。继续避免 blocked runtime promotion、 browser full inventory 扩面和 JS CNC 语义实现。 + +二十九、2026-06-13 继续执行记录:g71/g72 direct-file staging guard + +本批按上一条建议处理 `g71/g72` direct-file loop,复用 +`assertInterpRegressionFileStaging(...)` 替换 loop 内联 staged path 检查: + +- `g72-facing/g72-iterations-present.ngc` +- `g72-missing-iteration/g72-iterations-missing.ngc` +- `g71-endless-loop/g71-endless-loop.ngc` +- `g71-endless-loop2/g71-endless-loop2.ngc` +- `g71-endless-loop_2/g71-endless-loop_2.ngc` +- `g71-with-g70/g71-with-g70.ngc` + +完成内容: + +- Node 侧保留每个 fixture 目录的 upstream `.ngc` coverage check; +- Node 侧将 loop 内联 staged path `deepEqual` 替换为 + `assertInterpRegressionFileStaging(...)`; +- browser 侧保留 fixed fixture list duplicate-free guard; +- browser 侧将 loop 内联 `replace("/work/browser-interp/", "")` 对账替换为 + `assertInterpRegressionFileStaging(...)`; +- browser 侧仍不枚举目录; +- 仅整理 host/filesystem staging guard,不改变 G71/G72 canned cycle 执行语义。 + +已运行验证: + +```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 +``` + +结果:全部通过。 + +下一步建议: + +继续处理 `writeInterpRegressionFile(...)` aggregate direct-file loop。优先候选: + +- `good` arc fixture loop; +- `bad` error fixture loop。 + +建议先选 `good`,因为固定 6 个 arc fixture,Node/browser coverage 已成型,适合继续 +用 single-file helper 替换 aggregate staged path 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 4a9c86d..c10bc5b 100644 --- a/wasm-port/tests/browser/interp_smoke.html +++ b/wasm-port/tests/browser/interp_smoke.html @@ -7251,10 +7251,7 @@ } for (const g72Fixture of g72Fixtures) { const g72Path = await writeInterpRegressionFile(interp, g72Fixture.dir, g72Fixture.file); - const g72StagedRelativeNgcFile = g72Path.replace("/work/browser-interp/", ""); - if (g72StagedRelativeNgcFile !== `${g72Fixture.dir}/${g72Fixture.file}`) { - throw new Error(`browser_interp_g72_${g72Fixture.name}_staging_manifest: list drift`); - } + assertInterpRegressionFileStaging(g72Fixture.dir, g72Fixture.file, g72Path); verifyExpectedOutput( `browser_interp_g72_${g72Fixture.name}`, interp.runFile(g72Path), @@ -7331,10 +7328,7 @@ } for (const g71Fixture of g71Fixtures) { const g71Path = await writeInterpRegressionFile(interp, g71Fixture.dir, g71Fixture.file); - const g71StagedRelativeNgcFile = g71Path.replace("/work/browser-interp/", ""); - if (g71StagedRelativeNgcFile !== `${g71Fixture.dir}/${g71Fixture.file}`) { - throw new Error(`browser_interp_g71_${g71Fixture.name}_staging_manifest: list drift`); - } + assertInterpRegressionFileStaging(g71Fixture.dir, g71Fixture.file, g71Path); verifyExpectedOutput( `browser_interp_g71_${g71Fixture.name}`, interp.runFile(g71Path), diff --git a/wasm-port/tests/wasm/node/verify_interp_wasm.mjs b/wasm-port/tests/wasm/node/verify_interp_wasm.mjs index 8ae3de9..7cc68d0 100644 --- a/wasm-port/tests/wasm/node/verify_interp_wasm.mjs +++ b/wasm-port/tests/wasm/node/verify_interp_wasm.mjs @@ -2228,11 +2228,7 @@ for (const g72Fixture of g72Fixtures) { `interp ${g72Fixture.dir} fixture coverage drift`, ); const g72Path = writeInterpRegressionFile(g72Fixture.dir, g72Fixture.file); - assert.deepEqual( - [g72Path], - [`/work/interp/${g72Fixture.dir}/${g72Fixture.file}`], - `interp ${g72Fixture.dir} staging manifest drift`, - ); + assertInterpRegressionFileStaging(g72Fixture.dir, g72Fixture.file, g72Path); verifyExpectedOutput( `interp_g72_${g72Fixture.name}_wasm`, interp.runFile(g72Path), @@ -2311,11 +2307,7 @@ for (const g71Fixture of g71Fixtures) { `interp ${g71Fixture.dir} fixture coverage drift`, ); const g71Path = writeInterpRegressionFile(g71Fixture.dir, g71Fixture.file); - assert.deepEqual( - [g71Path], - [`/work/interp/${g71Fixture.dir}/${g71Fixture.file}`], - `interp ${g71Fixture.dir} staging manifest drift`, - ); + assertInterpRegressionFileStaging(g71Fixture.dir, g71Fixture.file, g71Path); verifyExpectedOutput( `interp_g71_${g71Fixture.name}_wasm`, interp.runFile(g71Path),