From d5ac4b68dd4ac948497632ecd28cab3a32a3a54c Mon Sep 17 00:00:00 2001 From: wangdequan Date: Sat, 13 Jun 2026 12:01:44 +0800 Subject: [PATCH] Guard more INI context staging paths --- text6.txt | 45 ++++++++++++++++ wasm-port/tests/browser/interp_smoke.html | 52 +++++++------------ .../tests/wasm/node/verify_interp_wasm.mjs | 40 +++++--------- 3 files changed, 77 insertions(+), 60 deletions(-) diff --git a/text6.txt b/text6.txt index 87d54fc..e7bee02 100644 --- a/text6.txt +++ b/text6.txt @@ -1623,3 +1623,48 @@ wasm-port/tests/host/verify_host_smokes.sh 这些已有 Node/browser coverage,并且当前仍存在类似 `plan.files -> sourceRel` 的内联 staged path 对账,可继续复用 `assertInterpIniContextNgcStaging(...)` 小批量替换。 继续避免 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 语义实现。 diff --git a/wasm-port/tests/browser/interp_smoke.html b/wasm-port/tests/browser/interp_smoke.html index 32fcd35..fb231a3 100644 --- a/wasm-port/tests/browser/interp_smoke.html +++ b/wasm-port/tests/browser/interp_smoke.html @@ -7481,14 +7481,11 @@ if (subCallFromSubNgcFiles.length !== 3 || new Set(subCallFromSubNgcFiles).size !== subCallFromSubNgcFiles.length) { throw new Error("browser_interp_sub_call_from_sub_fixture_coverage: list drift"); } - const subCallFromSubStagedNgcFiles = subCallFromSubPlan.files - .map((file) => file.sourceRel) - .filter((sourceRel) => sourceRel.endsWith(".ngc")) - .map((sourceRel) => sourceRel.replace("tests/interp/sub-call-from-sub/", "")) - .sort(); - if (subCallFromSubStagedNgcFiles.join(",") !== subCallFromSubNgcFiles.join(",")) { - throw new Error("browser_interp_sub_call_from_sub_staging_manifest: list drift"); - } + assertInterpIniContextNgcStaging( + "sub-call-from-sub", + subCallFromSubNgcFiles, + subCallFromSubPlan, + ); verifyExpectedOutput( "browser_interp_sub_call_from_sub", interp.runFileWithIni( @@ -7512,14 +7509,11 @@ if (sequenceNumberNgcFiles.length !== 2 || new Set(sequenceNumberNgcFiles).size !== sequenceNumberNgcFiles.length) { throw new Error("browser_interp_sequence_number_fixture_coverage: list drift"); } - const sequenceNumberStagedNgcFiles = sequenceNumberPlan.files - .map((file) => file.sourceRel) - .filter((sourceRel) => sourceRel.endsWith(".ngc")) - .map((sourceRel) => sourceRel.replace("tests/interp/sequence-number/", "")) - .sort(); - if (sequenceNumberStagedNgcFiles.join(",") !== sequenceNumberNgcFiles.join(",")) { - throw new Error("browser_interp_sequence_number_staging_manifest: list drift"); - } + assertInterpIniContextNgcStaging( + "sequence-number", + sequenceNumberNgcFiles, + sequenceNumberPlan, + ); verifyExpectedOutput( "browser_interp_sequence_number", interp.runFileWithIni( @@ -7545,14 +7539,11 @@ if (nestedSubErrorNgcFiles.length !== 2 || new Set(nestedSubErrorNgcFiles).size !== nestedSubErrorNgcFiles.length) { throw new Error("browser_interp_nested_sub_error_fixture_coverage: list drift"); } - const nestedSubErrorStagedNgcFiles = nestedSubErrorPlan.files - .map((file) => file.sourceRel) - .filter((sourceRel) => sourceRel.endsWith(".ngc")) - .map((sourceRel) => sourceRel.replace("tests/interp/nested-sub-error/", "")) - .sort(); - if (nestedSubErrorStagedNgcFiles.join(",") !== nestedSubErrorNgcFiles.join(",")) { - throw new Error("browser_interp_nested_sub_error_staging_manifest: list drift"); - } + assertInterpIniContextNgcStaging( + "nested-sub-error", + nestedSubErrorNgcFiles, + nestedSubErrorPlan, + ); verifyExpectedOutput( "browser_interp_nested_sub_error", interp.runFileWithIni( @@ -7581,14 +7572,11 @@ if (nestedSubInFileErrorNgcFiles.length !== 2 || new Set(nestedSubInFileErrorNgcFiles).size !== nestedSubInFileErrorNgcFiles.length) { throw new Error("browser_interp_nested_sub_in_file_error_fixture_coverage: list drift"); } - const nestedSubInFileErrorStagedNgcFiles = nestedSubInFileErrorPlan.files - .map((file) => file.sourceRel) - .filter((sourceRel) => sourceRel.endsWith(".ngc")) - .map((sourceRel) => sourceRel.replace("tests/interp/nested-sub-in-file-error/", "")) - .sort(); - if (nestedSubInFileErrorStagedNgcFiles.join(",") !== nestedSubInFileErrorNgcFiles.join(",")) { - throw new Error("browser_interp_nested_sub_in_file_error_staging_manifest: list drift"); - } + assertInterpIniContextNgcStaging( + "nested-sub-in-file-error", + nestedSubInFileErrorNgcFiles, + nestedSubInFileErrorPlan, + ); verifyExpectedOutput( "browser_interp_nested_sub_in_file_error", interp.runFileWithIni( diff --git a/wasm-port/tests/wasm/node/verify_interp_wasm.mjs b/wasm-port/tests/wasm/node/verify_interp_wasm.mjs index 3d15ace..804aafe 100644 --- a/wasm-port/tests/wasm/node/verify_interp_wasm.mjs +++ b/wasm-port/tests/wasm/node/verify_interp_wasm.mjs @@ -2452,14 +2452,10 @@ assert.deepEqual( interpRegressionNgcFilesRecursive("sub-call-from-sub"), "interp sub-call-from-sub fixture coverage drift", ); -assert.deepEqual( - subCallFromSubPlan.files - .map((file) => file.sourceRel) - .filter((sourceRel) => sourceRel.endsWith(".ngc")) - .map((sourceRel) => sourceRel.replace("tests/interp/sub-call-from-sub/", "")) - .sort(), +assertInterpIniContextNgcStaging( + "sub-call-from-sub", subCallFromSubNgcFiles, - "interp sub-call-from-sub staging manifest drift", + subCallFromSubPlan, ); verifyExpectedOutput( "interp_sub_call_from_sub_wasm", @@ -2486,14 +2482,10 @@ assert.deepEqual( interpRegressionNgcFilesRecursive("sequence-number"), "interp sequence-number fixture coverage drift", ); -assert.deepEqual( - sequenceNumberPlan.files - .map((file) => file.sourceRel) - .filter((sourceRel) => sourceRel.endsWith(".ngc")) - .map((sourceRel) => sourceRel.replace("tests/interp/sequence-number/", "")) - .sort(), +assertInterpIniContextNgcStaging( + "sequence-number", sequenceNumberNgcFiles, - "interp sequence-number staging manifest drift", + sequenceNumberPlan, ); verifyExpectedOutput( "interp_sequence_number_wasm", @@ -2522,14 +2514,10 @@ assert.deepEqual( interpRegressionNgcFilesRecursive("nested-sub-error"), "interp nested-sub-error fixture coverage drift", ); -assert.deepEqual( - nestedSubErrorPlan.files - .map((file) => file.sourceRel) - .filter((sourceRel) => sourceRel.endsWith(".ngc")) - .map((sourceRel) => sourceRel.replace("tests/interp/nested-sub-error/", "")) - .sort(), +assertInterpIniContextNgcStaging( + "nested-sub-error", nestedSubErrorNgcFiles, - "interp nested-sub-error staging manifest drift", + nestedSubErrorPlan, ); verifyExpectedOutput( "interp_nested_sub_error_wasm", @@ -2558,14 +2546,10 @@ assert.deepEqual( interpRegressionNgcFilesRecursive("nested-sub-in-file-error"), "interp nested-sub-in-file-error fixture coverage drift", ); -assert.deepEqual( - nestedSubInFileErrorPlan.files - .map((file) => file.sourceRel) - .filter((sourceRel) => sourceRel.endsWith(".ngc")) - .map((sourceRel) => sourceRel.replace("tests/interp/nested-sub-in-file-error/", "")) - .sort(), +assertInterpIniContextNgcStaging( + "nested-sub-in-file-error", nestedSubInFileErrorNgcFiles, - "interp nested-sub-in-file-error staging manifest drift", + nestedSubInFileErrorPlan, ); verifyExpectedOutput( "interp_nested_sub_in_file_error_wasm",