From b84dfbdcf0359e902d9843ac1399923456253ac1 Mon Sep 17 00:00:00 2001 From: wangdequan Date: Fri, 12 Jun 2026 23:06:07 +0800 Subject: [PATCH] Guard g10 interpreter fixture coverage --- text5.txt | 60 +++++++++++++++++++ wasm-port/tests/browser/interp_smoke.html | 11 ++++ .../tests/wasm/node/verify_interp_wasm.mjs | 13 ++++ 3 files changed, 84 insertions(+) diff --git a/text5.txt b/text5.txt index 3830843..67e47f0 100644 --- a/text5.txt +++ b/text5.txt @@ -6392,3 +6392,63 @@ Add blocked runtime gate review coverage 2. 若目标是“review 逻辑更清楚”:按上面的 2 个 review unit 审查,但提交时 可以合并为单提交; 3. 不建议现在做 4 个 hunk-level 提交,除非明确愿意承担拆分和重复验证成本。 + +六十六、2026-06-12 继续执行记录:g10 pure interpreter fixture coverage guard + +本轮在提交 `dcab5ea Add blocked runtime gate review coverage` 后继续推进。当前 +host 仍缺 `halcmd`、`halrun`、`linuxcnc`、`milltask`,因此不执行任何 +`ENABLE_*_RUNTIME_PROBE=1` opt-in native probe。 + +1. 候选选择。 + +由于 blocked runtime 仍不能推进,本轮选择不需要 host runtime 的 pure +interpreter coverage guard。对账发现 `tests/interp/g10` 当前 5 个 `.ngc` 已在 +Node/browser 中执行覆盖,但尚未像 `good`、`bad`、`m98m99`、`magic_comments`、 +`rotation` 那样锁定 upstream manifest。 + +当前 upstream `tests/interp/g10/**/*.ngc`: + +```text +g10-l1-l10/test.ngc +g10-l11/test.ngc +g10-l2-while-active/test.ngc +g10-l20-while-active/test.ngc +g10-with-g92/test.ngc +``` + +2. 更新。 + +更新: + +- `wasm-port/tests/wasm/node/verify_interp_wasm.mjs` +- `wasm-port/tests/browser/interp_smoke.html` + +Node 新增: + +- `g10RegressionFiles` 固定 5 个当前 upstream `.ngc`; +- Node smoke 要求该 manifest 与 + `interpRegressionNgcFilesRecursive("g10")` 完全一致。 + +Browser 新增: + +- `g10RegressionFiles` 固定 `length=5` 且 duplicate-free; +- browser representative 不枚举目录,但会防止 g10 manifest 被静默删减或重复。 + +3. 下一步工作建议。 + +先复跑: + +```bash +git diff --check +wasm-port/tests/wasm/node/verify_interp_wasm.sh +wasm-port/tests/browser/verify_interp_browser.sh +wasm-port/tests/host/verify_host_smokes.sh +``` + +如果通过,做一个小提交,建议 message: + +```text +Guard g10 interpreter fixture coverage +``` + +提交后再复跑同一组 gate。 diff --git a/wasm-port/tests/browser/interp_smoke.html b/wasm-port/tests/browser/interp_smoke.html index 351bd72..9ab9ee1 100644 --- a/wasm-port/tests/browser/interp_smoke.html +++ b/wasm-port/tests/browser/interp_smoke.html @@ -7974,6 +7974,17 @@ ].join("\n"), ); + const g10RegressionFiles = [ + "g10-l1-l10/test.ngc", + "g10-l11/test.ngc", + "g10-l2-while-active/test.ngc", + "g10-l20-while-active/test.ngc", + "g10-with-g92/test.ngc", + ]; + if (g10RegressionFiles.length !== 5 || new Set(g10RegressionFiles).size !== g10RegressionFiles.length) { + throw new Error("browser_interp_g10_fixture_coverage: list drift"); + } + const g10L1L10Dir = await writeG10RegressionFiles(interp, "g10-l1-l10", [ "test.ngc", "test.tbl", diff --git a/wasm-port/tests/wasm/node/verify_interp_wasm.mjs b/wasm-port/tests/wasm/node/verify_interp_wasm.mjs index 9939eb5..3295b85 100644 --- a/wasm-port/tests/wasm/node/verify_interp_wasm.mjs +++ b/wasm-port/tests/wasm/node/verify_interp_wasm.mjs @@ -2830,6 +2830,19 @@ verifyExpectedOutput( ].join("\n"), ); +const g10RegressionFiles = [ + "g10-l1-l10/test.ngc", + "g10-l11/test.ngc", + "g10-l2-while-active/test.ngc", + "g10-l20-while-active/test.ngc", + "g10-with-g92/test.ngc", +]; +assert.deepEqual( + g10RegressionFiles, + interpRegressionNgcFilesRecursive("g10"), + "interp g10 fixture coverage drift", +); + const g10L1L10Dir = writeG10RegressionFiles("g10-l1-l10", ["test.ngc", "test.tbl"]); verifyExpectedOutput( "interp_g10_l1_l10_wasm",