Guard final INI context staging paths

This commit is contained in:
2026-06-13 12:10:32 +08:00
parent d5ac4b68dd
commit 45ac3cb8b2
3 changed files with 66 additions and 45 deletions

View File

@@ -1668,3 +1668,45 @@ wasm-port/tests/host/verify_host_smokes.sh
这三个当前仍存在类似 `plan.files -> sourceRel -> replace(...)` 的内联 staged path
对账,可继续复用 `assertInterpIniContextNgcStaging(...)` 小批量替换。继续避免
blocked runtime promotion、browser full inventory 扩面和 JS CNC 语义实现。
三十九、2026-06-13 继续执行记录final INI-context ngc staging guard
本批继续处理剩余 INI/context `.ngc` staging 内联对账:
- `oword-unwind/test.ngc`
- `abort-hot-comment/test.ngc`
- `m19/test.ngc`
完成内容:
- Node 侧将 3 处内联 `plan.files -> sourceRel -> replace(...)` `.ngc` staging
对账替换为 `assertInterpIniContextNgcStaging(...)`
- browser 侧同步将 3 处内联 `.ngc` staged path 对账替换为同名 helper
- Node/browser 侧保留 fixed `.ngc` manifest coverage 和 duplicate-free guard
- browser 侧仍不枚举目录;
- 仅整理 host/filesystem staging guard不改变 oword unwind、abort hot comment、
M19 spindle orientation 或 interpreter 语义。
已运行验证:
```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_INI_BUILD=1 SKIP_INTERP_BUILD=1 wasm-port/tests/browser/verify_interp_browser.sh
SKIP_INTERP_BUILD=1 wasm-port/tests/wasm/node/verify_sim_configs_inventory_wasm.sh
wasm-port/tests/host/verify_host_smokes.sh
```
结果:全部通过。
下一步建议:
继续收敛最后可见的 fixed `.ngc` staged path 对账。优先候选:
- `magic_comments/param_format_printing/test.ngc`
当前 Node 侧已有 fixed path manifest 对账browser 侧仍有本地数组 staged path 对账;
可小批量抽成 single-file 或 fixed-list helper继续检查 staged path 与 manifest 一致。
继续避免 blocked runtime promotion、browser full inventory 扩面和 JS CNC 语义实现。

View File

@@ -7603,14 +7603,11 @@
if (owordUnwindNgcFiles.length !== 2 || new Set(owordUnwindNgcFiles).size !== owordUnwindNgcFiles.length) {
throw new Error("browser_interp_oword_unwind_fixture_coverage: list drift");
}
const owordUnwindStagedNgcFiles = owordUnwindPlan.files
.map((file) => file.sourceRel)
.filter((sourceRel) => sourceRel.endsWith(".ngc"))
.map((sourceRel) => sourceRel.replace("tests/interp/oword-unwind/", ""))
.sort();
if (owordUnwindStagedNgcFiles.join(",") !== owordUnwindNgcFiles.join(",")) {
throw new Error("browser_interp_oword_unwind_staging_manifest: list drift");
}
assertInterpIniContextNgcStaging(
"oword-unwind",
owordUnwindNgcFiles,
owordUnwindPlan,
);
verifyExpectedOutput(
"browser_interp_oword_unwind",
interp.runFileWithIniContinueOnError(
@@ -7637,14 +7634,11 @@
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");
}
assertInterpIniContextNgcStaging(
"abort-hot-comment",
abortHotCommentNgcFiles,
abortHotCommentPlan,
);
verifyExpectedOutput(
"browser_interp_abort_hot_comment",
interp.runFileWithIniContinueOnError(
@@ -7668,14 +7662,11 @@
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");
}
assertInterpIniContextNgcStaging(
"m19",
m19NgcFiles,
m19Plan,
);
verifyExpectedOutput(
"browser_interp_m19",
interp.runFileWithIni(m19Plan.programPath, m19Plan.iniPath),

View File

@@ -2579,14 +2579,10 @@ assert.deepEqual(
interpRegressionNgcFilesRecursive("oword-unwind"),
"interp oword-unwind fixture coverage drift",
);
assert.deepEqual(
owordUnwindPlan.files
.map((file) => file.sourceRel)
.filter((sourceRel) => sourceRel.endsWith(".ngc"))
.map((sourceRel) => sourceRel.replace("tests/interp/oword-unwind/", ""))
.sort(),
assertInterpIniContextNgcStaging(
"oword-unwind",
owordUnwindNgcFiles,
"interp oword-unwind staging manifest drift",
owordUnwindPlan,
);
verifyExpectedOutput(
"interp_oword_unwind_wasm",
@@ -2616,14 +2612,10 @@ assert.deepEqual(
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(),
assertInterpIniContextNgcStaging(
"abort-hot-comment",
abortHotCommentNgcFiles,
"interp abort-hot-comment staging manifest drift",
abortHotCommentPlan,
);
verifyExpectedOutput(
"interp_abort_hot_comment_wasm",
@@ -2650,14 +2642,10 @@ assert.deepEqual(
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(),
assertInterpIniContextNgcStaging(
"m19",
m19NgcFiles,
"interp m19 staging manifest drift",
m19Plan,
);
verifyExpectedOutput(
"interp_m19_wasm",