Guard more INI context staging paths

This commit is contained in:
2026-06-13 12:01:44 +08:00
parent a0b0ac175a
commit d5ac4b68dd
3 changed files with 77 additions and 60 deletions

View File

@@ -1623,3 +1623,48 @@ wasm-port/tests/host/verify_host_smokes.sh
这些已有 Node/browser coverage并且当前仍存在类似 `plan.files -> sourceRel` 的内联 这些已有 Node/browser coverage并且当前仍存在类似 `plan.files -> sourceRel` 的内联
staged path 对账,可继续复用 `assertInterpIniContextNgcStaging(...)` 小批量替换。 staged path 对账,可继续复用 `assertInterpIniContextNgcStaging(...)` 小批量替换。
继续避免 blocked runtime promotion、browser full inventory 扩面和 JS CNC 语义实现。 继续避免 blocked runtime promotion、browser full inventory 扩面和 JS CNC 语义实现。
三十八、2026-06-13 继续执行记录more INI-context ngc staging guard
本批继续收敛相邻 INI/context staging guard
- `sub-call-from-sub/test.ngc`
- `sequence-number/test.ngc`
- `nested-sub-error/test.ngc`
- `nested-sub-in-file-error/test.ngc`
完成内容:
- Node 侧将 4 处内联 `plan.files -> sourceRel -> replace(...)` `.ngc` staging
对账替换为 `assertInterpIniContextNgcStaging(...)`
- browser 侧同步将 4 处内联 `.ngc` staged path 对账替换为同名 helper
- Node/browser 侧保留 fixed `.ngc` manifest coverage 和 duplicate-free guard
- browser 侧仍不枚举目录;
- 仅整理 host/filesystem staging guard不改变 sub-call、sequence-number、
nested-sub error 或 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
```
结果:全部通过。
下一步建议:
继续处理剩余 INI/context `.ngc` staging 内联对账。优先候选:
- `oword-unwind/test.ngc`
- `abort-hot-comment/test.ngc`
- `m19/test.ngc`
这三个当前仍存在类似 `plan.files -> sourceRel -> replace(...)` 的内联 staged path
对账,可继续复用 `assertInterpIniContextNgcStaging(...)` 小批量替换。继续避免
blocked runtime promotion、browser full inventory 扩面和 JS CNC 语义实现。

View File

@@ -7481,14 +7481,11 @@
if (subCallFromSubNgcFiles.length !== 3 || new Set(subCallFromSubNgcFiles).size !== subCallFromSubNgcFiles.length) { if (subCallFromSubNgcFiles.length !== 3 || new Set(subCallFromSubNgcFiles).size !== subCallFromSubNgcFiles.length) {
throw new Error("browser_interp_sub_call_from_sub_fixture_coverage: list drift"); throw new Error("browser_interp_sub_call_from_sub_fixture_coverage: list drift");
} }
const subCallFromSubStagedNgcFiles = subCallFromSubPlan.files assertInterpIniContextNgcStaging(
.map((file) => file.sourceRel) "sub-call-from-sub",
.filter((sourceRel) => sourceRel.endsWith(".ngc")) subCallFromSubNgcFiles,
.map((sourceRel) => sourceRel.replace("tests/interp/sub-call-from-sub/", "")) subCallFromSubPlan,
.sort(); );
if (subCallFromSubStagedNgcFiles.join(",") !== subCallFromSubNgcFiles.join(",")) {
throw new Error("browser_interp_sub_call_from_sub_staging_manifest: list drift");
}
verifyExpectedOutput( verifyExpectedOutput(
"browser_interp_sub_call_from_sub", "browser_interp_sub_call_from_sub",
interp.runFileWithIni( interp.runFileWithIni(
@@ -7512,14 +7509,11 @@
if (sequenceNumberNgcFiles.length !== 2 || new Set(sequenceNumberNgcFiles).size !== sequenceNumberNgcFiles.length) { if (sequenceNumberNgcFiles.length !== 2 || new Set(sequenceNumberNgcFiles).size !== sequenceNumberNgcFiles.length) {
throw new Error("browser_interp_sequence_number_fixture_coverage: list drift"); throw new Error("browser_interp_sequence_number_fixture_coverage: list drift");
} }
const sequenceNumberStagedNgcFiles = sequenceNumberPlan.files assertInterpIniContextNgcStaging(
.map((file) => file.sourceRel) "sequence-number",
.filter((sourceRel) => sourceRel.endsWith(".ngc")) sequenceNumberNgcFiles,
.map((sourceRel) => sourceRel.replace("tests/interp/sequence-number/", "")) sequenceNumberPlan,
.sort(); );
if (sequenceNumberStagedNgcFiles.join(",") !== sequenceNumberNgcFiles.join(",")) {
throw new Error("browser_interp_sequence_number_staging_manifest: list drift");
}
verifyExpectedOutput( verifyExpectedOutput(
"browser_interp_sequence_number", "browser_interp_sequence_number",
interp.runFileWithIni( interp.runFileWithIni(
@@ -7545,14 +7539,11 @@
if (nestedSubErrorNgcFiles.length !== 2 || new Set(nestedSubErrorNgcFiles).size !== nestedSubErrorNgcFiles.length) { if (nestedSubErrorNgcFiles.length !== 2 || new Set(nestedSubErrorNgcFiles).size !== nestedSubErrorNgcFiles.length) {
throw new Error("browser_interp_nested_sub_error_fixture_coverage: list drift"); throw new Error("browser_interp_nested_sub_error_fixture_coverage: list drift");
} }
const nestedSubErrorStagedNgcFiles = nestedSubErrorPlan.files assertInterpIniContextNgcStaging(
.map((file) => file.sourceRel) "nested-sub-error",
.filter((sourceRel) => sourceRel.endsWith(".ngc")) nestedSubErrorNgcFiles,
.map((sourceRel) => sourceRel.replace("tests/interp/nested-sub-error/", "")) nestedSubErrorPlan,
.sort(); );
if (nestedSubErrorStagedNgcFiles.join(",") !== nestedSubErrorNgcFiles.join(",")) {
throw new Error("browser_interp_nested_sub_error_staging_manifest: list drift");
}
verifyExpectedOutput( verifyExpectedOutput(
"browser_interp_nested_sub_error", "browser_interp_nested_sub_error",
interp.runFileWithIni( interp.runFileWithIni(
@@ -7581,14 +7572,11 @@
if (nestedSubInFileErrorNgcFiles.length !== 2 || new Set(nestedSubInFileErrorNgcFiles).size !== nestedSubInFileErrorNgcFiles.length) { if (nestedSubInFileErrorNgcFiles.length !== 2 || new Set(nestedSubInFileErrorNgcFiles).size !== nestedSubInFileErrorNgcFiles.length) {
throw new Error("browser_interp_nested_sub_in_file_error_fixture_coverage: list drift"); throw new Error("browser_interp_nested_sub_in_file_error_fixture_coverage: list drift");
} }
const nestedSubInFileErrorStagedNgcFiles = nestedSubInFileErrorPlan.files assertInterpIniContextNgcStaging(
.map((file) => file.sourceRel) "nested-sub-in-file-error",
.filter((sourceRel) => sourceRel.endsWith(".ngc")) nestedSubInFileErrorNgcFiles,
.map((sourceRel) => sourceRel.replace("tests/interp/nested-sub-in-file-error/", "")) nestedSubInFileErrorPlan,
.sort(); );
if (nestedSubInFileErrorStagedNgcFiles.join(",") !== nestedSubInFileErrorNgcFiles.join(",")) {
throw new Error("browser_interp_nested_sub_in_file_error_staging_manifest: list drift");
}
verifyExpectedOutput( verifyExpectedOutput(
"browser_interp_nested_sub_in_file_error", "browser_interp_nested_sub_in_file_error",
interp.runFileWithIni( interp.runFileWithIni(

View File

@@ -2452,14 +2452,10 @@ assert.deepEqual(
interpRegressionNgcFilesRecursive("sub-call-from-sub"), interpRegressionNgcFilesRecursive("sub-call-from-sub"),
"interp sub-call-from-sub fixture coverage drift", "interp sub-call-from-sub fixture coverage drift",
); );
assert.deepEqual( assertInterpIniContextNgcStaging(
subCallFromSubPlan.files "sub-call-from-sub",
.map((file) => file.sourceRel)
.filter((sourceRel) => sourceRel.endsWith(".ngc"))
.map((sourceRel) => sourceRel.replace("tests/interp/sub-call-from-sub/", ""))
.sort(),
subCallFromSubNgcFiles, subCallFromSubNgcFiles,
"interp sub-call-from-sub staging manifest drift", subCallFromSubPlan,
); );
verifyExpectedOutput( verifyExpectedOutput(
"interp_sub_call_from_sub_wasm", "interp_sub_call_from_sub_wasm",
@@ -2486,14 +2482,10 @@ assert.deepEqual(
interpRegressionNgcFilesRecursive("sequence-number"), interpRegressionNgcFilesRecursive("sequence-number"),
"interp sequence-number fixture coverage drift", "interp sequence-number fixture coverage drift",
); );
assert.deepEqual( assertInterpIniContextNgcStaging(
sequenceNumberPlan.files "sequence-number",
.map((file) => file.sourceRel)
.filter((sourceRel) => sourceRel.endsWith(".ngc"))
.map((sourceRel) => sourceRel.replace("tests/interp/sequence-number/", ""))
.sort(),
sequenceNumberNgcFiles, sequenceNumberNgcFiles,
"interp sequence-number staging manifest drift", sequenceNumberPlan,
); );
verifyExpectedOutput( verifyExpectedOutput(
"interp_sequence_number_wasm", "interp_sequence_number_wasm",
@@ -2522,14 +2514,10 @@ assert.deepEqual(
interpRegressionNgcFilesRecursive("nested-sub-error"), interpRegressionNgcFilesRecursive("nested-sub-error"),
"interp nested-sub-error fixture coverage drift", "interp nested-sub-error fixture coverage drift",
); );
assert.deepEqual( assertInterpIniContextNgcStaging(
nestedSubErrorPlan.files "nested-sub-error",
.map((file) => file.sourceRel)
.filter((sourceRel) => sourceRel.endsWith(".ngc"))
.map((sourceRel) => sourceRel.replace("tests/interp/nested-sub-error/", ""))
.sort(),
nestedSubErrorNgcFiles, nestedSubErrorNgcFiles,
"interp nested-sub-error staging manifest drift", nestedSubErrorPlan,
); );
verifyExpectedOutput( verifyExpectedOutput(
"interp_nested_sub_error_wasm", "interp_nested_sub_error_wasm",
@@ -2558,14 +2546,10 @@ assert.deepEqual(
interpRegressionNgcFilesRecursive("nested-sub-in-file-error"), interpRegressionNgcFilesRecursive("nested-sub-in-file-error"),
"interp nested-sub-in-file-error fixture coverage drift", "interp nested-sub-in-file-error fixture coverage drift",
); );
assert.deepEqual( assertInterpIniContextNgcStaging(
nestedSubInFileErrorPlan.files "nested-sub-in-file-error",
.map((file) => file.sourceRel)
.filter((sourceRel) => sourceRel.endsWith(".ngc"))
.map((sourceRel) => sourceRel.replace("tests/interp/nested-sub-in-file-error/", ""))
.sort(),
nestedSubInFileErrorNgcFiles, nestedSubInFileErrorNgcFiles,
"interp nested-sub-in-file-error staging manifest drift", nestedSubInFileErrorPlan,
); );
verifyExpectedOutput( verifyExpectedOutput(
"interp_nested_sub_in_file_error_wasm", "interp_nested_sub_in_file_error_wasm",