Guard abort and m19 staging manifests
This commit is contained in:
91
text5.txt
91
text5.txt
@@ -6711,3 +6711,94 @@ wasm-port/tests/host/verify_host_smokes.sh
|
||||
```text
|
||||
Guard sequence subroutine staging manifests
|
||||
```
|
||||
|
||||
七十一、2026-06-13 继续执行记录:abort-hot-comment/m19 INI-context staging manifest guard
|
||||
|
||||
本轮继续按“小批已有 Node/browser 执行覆盖 + 不扩大测试面”的路线推进。当前
|
||||
host 仍按 blocked runtime 规则处理,不执行任何 `ENABLE_*_RUNTIME_PROBE=1`
|
||||
opt-in native probe。
|
||||
|
||||
1. 候选选择。
|
||||
|
||||
选择已有 Node/browser 执行覆盖、且通过 `stageInterpIniContext()` staging
|
||||
INI-context 的两个 interpreter regression family:
|
||||
|
||||
- `tests/interp/abort-hot-comment`
|
||||
- `tests/interp/m19`
|
||||
|
||||
这两个 family 都不需要 HAL/task/tool DB/Python remap/user-M process runtime。
|
||||
本轮只固定 host/filesystem staging manifest 对账,不新增 CNC 语义。
|
||||
|
||||
2. 覆盖对账。
|
||||
|
||||
`tests/interp/abort-hot-comment` 当前 upstream `.ngc` 文件:
|
||||
|
||||
```text
|
||||
test.ngc
|
||||
```
|
||||
|
||||
`tests/interp/m19` 当前 upstream `.ngc` 文件:
|
||||
|
||||
```text
|
||||
test.ngc
|
||||
```
|
||||
|
||||
3. 更新。
|
||||
|
||||
更新:
|
||||
|
||||
- `wasm-port/tests/wasm/node/verify_interp_wasm.mjs`
|
||||
- `wasm-port/tests/browser/interp_smoke.html`
|
||||
|
||||
Node 新增:
|
||||
|
||||
- `abortHotCommentNgcFiles` 固定 `test.ngc`;
|
||||
- `m19NgcFiles` 固定 `test.ngc`;
|
||||
- 分别与 `interpRegressionNgcFilesRecursive(...)` 精确对账;
|
||||
- 检查 `stageInterpIniContext()` 返回的 `plan.files` 中 `.ngc` 文件集合与
|
||||
fixed list 一致。
|
||||
|
||||
Browser 新增:
|
||||
|
||||
- fixed-count 和 duplicate-free guard;
|
||||
- 检查 browser `stageInterpIniContext()` 返回的 `plan.files` 中 `.ngc` 文件集合
|
||||
与 fixed list 一致;
|
||||
- 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 abort and m19 staging manifests
|
||||
```
|
||||
|
||||
提交后再继续下一批已有 INI-context fixture 的 staging manifest guard;仍保持每批
|
||||
只选少量 pure interpreter/INI-context case,并按 native/Node/browser gate 顺序
|
||||
复核,不推进 blocked runtime promotion。
|
||||
|
||||
@@ -7409,6 +7409,20 @@
|
||||
);
|
||||
|
||||
const abortHotCommentPlan = await stageInterpIniContext(interp, "abort-hot-comment");
|
||||
const abortHotCommentNgcFiles = [
|
||||
"test.ngc",
|
||||
];
|
||||
if (abortHotCommentNgcFiles.length !== 1 || new Set(abortHotCommentNgcFiles).size !== abortHotCommentNgcFiles.length) {
|
||||
throw new Error("browser_interp_abort_hot_comment_fixture_coverage: list drift");
|
||||
}
|
||||
const abortHotCommentStagedNgcFiles = abortHotCommentPlan.files
|
||||
.map((file) => file.sourceRel)
|
||||
.filter((sourceRel) => sourceRel.endsWith(".ngc"))
|
||||
.map((sourceRel) => sourceRel.replace("tests/interp/abort-hot-comment/", ""))
|
||||
.sort();
|
||||
if (abortHotCommentStagedNgcFiles.join(",") !== abortHotCommentNgcFiles.join(",")) {
|
||||
throw new Error("browser_interp_abort_hot_comment_staging_manifest: list drift");
|
||||
}
|
||||
verifyExpectedOutput(
|
||||
"browser_interp_abort_hot_comment",
|
||||
interp.runFileWithIniContinueOnError(
|
||||
@@ -7426,6 +7440,20 @@
|
||||
);
|
||||
|
||||
const m19Plan = await stageInterpIniContext(interp, "m19");
|
||||
const m19NgcFiles = [
|
||||
"test.ngc",
|
||||
];
|
||||
if (m19NgcFiles.length !== 1 || new Set(m19NgcFiles).size !== m19NgcFiles.length) {
|
||||
throw new Error("browser_interp_m19_fixture_coverage: list drift");
|
||||
}
|
||||
const m19StagedNgcFiles = m19Plan.files
|
||||
.map((file) => file.sourceRel)
|
||||
.filter((sourceRel) => sourceRel.endsWith(".ngc"))
|
||||
.map((sourceRel) => sourceRel.replace("tests/interp/m19/", ""))
|
||||
.sort();
|
||||
if (m19StagedNgcFiles.join(",") !== m19NgcFiles.join(",")) {
|
||||
throw new Error("browser_interp_m19_staging_manifest: list drift");
|
||||
}
|
||||
verifyExpectedOutput(
|
||||
"browser_interp_m19",
|
||||
interp.runFileWithIni(m19Plan.programPath, m19Plan.iniPath),
|
||||
|
||||
@@ -2316,6 +2316,23 @@ verifyExpectedOutput(
|
||||
);
|
||||
|
||||
const abortHotCommentPlan = stageInterpIniContext("abort-hot-comment");
|
||||
const abortHotCommentNgcFiles = [
|
||||
"test.ngc",
|
||||
];
|
||||
assert.deepEqual(
|
||||
abortHotCommentNgcFiles,
|
||||
interpRegressionNgcFilesRecursive("abort-hot-comment"),
|
||||
"interp abort-hot-comment fixture coverage drift",
|
||||
);
|
||||
assert.deepEqual(
|
||||
abortHotCommentPlan.files
|
||||
.map((file) => file.sourceRel)
|
||||
.filter((sourceRel) => sourceRel.endsWith(".ngc"))
|
||||
.map((sourceRel) => sourceRel.replace("tests/interp/abort-hot-comment/", ""))
|
||||
.sort(),
|
||||
abortHotCommentNgcFiles,
|
||||
"interp abort-hot-comment staging manifest drift",
|
||||
);
|
||||
verifyExpectedOutput(
|
||||
"interp_abort_hot_comment_wasm",
|
||||
interp.runFileWithIniContinueOnError(
|
||||
@@ -2333,6 +2350,23 @@ verifyExpectedOutput(
|
||||
);
|
||||
|
||||
const m19Plan = stageInterpIniContext("m19");
|
||||
const m19NgcFiles = [
|
||||
"test.ngc",
|
||||
];
|
||||
assert.deepEqual(
|
||||
m19NgcFiles,
|
||||
interpRegressionNgcFilesRecursive("m19"),
|
||||
"interp m19 fixture coverage drift",
|
||||
);
|
||||
assert.deepEqual(
|
||||
m19Plan.files
|
||||
.map((file) => file.sourceRel)
|
||||
.filter((sourceRel) => sourceRel.endsWith(".ngc"))
|
||||
.map((sourceRel) => sourceRel.replace("tests/interp/m19/", ""))
|
||||
.sort(),
|
||||
m19NgcFiles,
|
||||
"interp m19 staging manifest drift",
|
||||
);
|
||||
verifyExpectedOutput(
|
||||
"interp_m19_wasm",
|
||||
interp.runFileWithIni(m19Plan.programPath, m19Plan.iniPath),
|
||||
|
||||
Reference in New Issue
Block a user