Guard initial m98m99 staging paths

This commit is contained in:
2026-06-13 06:26:27 +08:00
parent 986a3f4cc7
commit 7cc47f020d
3 changed files with 114 additions and 0 deletions

View File

@@ -6982,3 +6982,98 @@ Guard magic comments staging path
提交后继续下一小批已有 interpreter fixture 的 staging manifest guard。下一步可以
开始拆 `m98m99`,但不要一次性扩全量;优先选择其中已经在 Node/browser 单独执行、
且每个子目录只需 direct file staging 的小组,按 2 到 3 个子 case 一批推进。
七十四、2026-06-13 继续执行记录m98m99 initial direct-file staging path guard
本轮继续当前 host 可执行路线。当前 host 仍按 blocked runtime 规则处理,不执行
任何 `ENABLE_*_RUNTIME_PROBE=1` opt-in native probe。
1. 候选选择。
开始拆 `tests/interp/m98m99`,但不一次性扩大 guard 范围。本轮只选择前三个
已经在 Node/browser 单独执行、且每个子目录只需 direct file staging 的 case
- `m98m99/01-basics/test.ngc`
- `m98m99/02-variables/test.ngc`
- `m98m99/03-error-M98-no-P-word/test.ngc`
这些 case 不需要 INI/HAL/task/tool DB/Python remap/user-M process runtime。本轮
只固定 direct file staging path 与既有 fixed `.ngc` manifest 前三项的一致性,
不新增 CNC 语义。
2. 覆盖对账。
`tests/interp/m98m99` 当前 upstream `.ngc` manifest 已由既有 fixed list 覆盖,
本轮新增对账的前三项为:
```text
01-basics/test.ngc
02-variables/test.ngc
03-error-M98-no-P-word/test.ngc
```
3. 更新。
更新:
- `wasm-port/tests/wasm/node/verify_interp_wasm.mjs`
- `wasm-port/tests/browser/interp_smoke.html`
Node 新增:
- 在创建前三个 `writeInterpRegressionFile(...)` staged path 后,检查实际 path
与 `m98m99RegressionFiles.slice(0, 3)` 推导出的
`/work/interp/m98m99/...` path 一致。
Browser 新增:
- 在创建前三个 browser staged path 后,去掉
`/work/browser-interp/m98m99/` 前缀;
- 检查结果与 `m98m99RegressionFiles.slice(0, 3)` 一致;
- browser 仍不枚举目录。
4. 已执行验证。
```bash
git diff --check
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_interp_wasm.sh
SKIP_INTERP_BUILD=1 wasm-port/tests/wasm/node/verify_sim_configs_inventory_wasm.sh
SKIP_INI_BUILD=1 SKIP_INTERP_BUILD=1 wasm-port/tests/browser/verify_interp_browser.sh
wasm-port/tests/host/verify_host_smokes.sh
```
结果:
- `git diff --check` clean。
- `vendor sync up to date`
- `standalone CNC semantics guard complete`
- `interp_wasm_node_smoke=ok`
- Node inventory 保持:
- `executed=28`
- `passed=28`
- `skipped=131`
- `unexpected_fail=0`
- `browser_interp_smoke=ok`
- `host_wasm_opfs_browser_smokes=ok`
5. 下一步工作建议。
当前工作集已稳定。建议先做小提交message
```text
Guard initial m98m99 staging paths
```
提交后继续拆 `m98m99`,下一小批建议选择:
```text
04-M98-but-no-sub/test.ngc
05-M98-loops/test.ngc
06-error-mixed-sub-styles/*.ngc
```
其中 `06-error-mixed-sub-styles` 有 4 个 `.ngc`,仍已在 Node/browser 分别执行;
本批只做 direct file staged path 与 fixed manifest 对账,不扩大到 blocked
runtime。

View File

@@ -7621,6 +7621,14 @@
"m98m99/03-error-M98-no-P-word",
"test.ngc",
);
const m98m99InitialStagedNgcFiles = [
m98m99BasicsPath,
m98m99VariablesPath,
m98m99M98NoPWordPath,
].map((path) => path.replace("/work/browser-interp/m98m99/", ""));
if (m98m99InitialStagedNgcFiles.join(",") !== m98m99RegressionFiles.slice(0, 3).join(",")) {
throw new Error("browser_interp_m98m99_initial_staging_manifest: list drift");
}
verifyExpectedOutput(
"browser_interp_m98m99_03_error_m98_no_p_word",
interp.runFile(m98m99M98NoPWordPath),

View File

@@ -2533,6 +2533,17 @@ const m98m99M98NoPWordPath = writeInterpRegressionFile(
"m98m99/03-error-M98-no-P-word",
"test.ngc",
);
assert.deepEqual(
[
m98m99BasicsPath,
m98m99VariablesPath,
m98m99M98NoPWordPath,
],
m98m99RegressionFiles
.slice(0, 3)
.map((file) => `/work/interp/m98m99/${file}`),
"interp m98m99 initial direct-file staging manifest drift",
);
verifyExpectedOutput(
"interp_m98m99_03_error_m98_no_p_word_wasm",
interp.runFile(m98m99M98NoPWordPath),