diff --git a/text6.txt b/text6.txt index 62d7559..4ea8087 100644 --- a/text6.txt +++ b/text6.txt @@ -1483,3 +1483,52 @@ wasm-port/tests/host/verify_host_smokes.sh 这些已有 Node/browser coverage 和 fixed `.ngc` manifest,可继续用 `assertInterpRegressionFileStaging(...)` 替换内联 staged path 对账。继续避免 blocked runtime promotion、browser full inventory 扩面和 JS CNC 语义实现。 + +三十五、2026-06-13 继续执行记录:more earlier direct-file staging guard + +本批继续收敛 earlier direct-file guard,处理 5 个已有 Node/browser coverage 的 +single-file fixture: + +- `subs-follow-main/test.ngc` +- `fractional-linenumbers/test.ngc` +- `crazy-paths/test.ngc` +- `namedparam-bug424/test.ngc` +- `flowsnake/flowsnake.ngc` + +完成内容: + +- Node 侧保留各 fixture 的 upstream `.ngc` manifest coverage check; +- Node 侧将 5 处内联 staged path 对账替换为 + `assertInterpRegressionFileStaging(...)`; +- browser 侧保留 fixed manifest duplicate-free guard; +- browser 侧将 5 处 `replace(...)` staged path 对账替换为 single-file helper; +- browser 侧仍不枚举目录; +- 仅整理 host/filesystem staging guard,不改变 subs-follow-main、fractional line + number、cutter-comp/crazy-path、namedparam 或 flowsnake 执行语义。 + +已运行验证: + +```bash +git diff --check +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 +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_sim_configs_inventory_wasm.sh +wasm-port/tests/host/verify_host_smokes.sh +``` + +结果:全部通过。 + +下一步建议: + +继续处理相邻的 single-file direct-file guard。优先候选: + +- `inside-corners/test.ngc` +- `inverse-time-with-comp/test.ngc` +- `iniparam/test.ngc` +- `iniparam-failassign/test.ngc` + +其中 `iniparam` 与 `iniparam-failassign` 可能有 INI/context staging 细节,下一批可先处理 +`inside-corners` 和 `inverse-time-with-comp` 两个简单 direct-file case。继续避免 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 405e0d4..c892853 100644 --- a/wasm-port/tests/browser/interp_smoke.html +++ b/wasm-port/tests/browser/interp_smoke.html @@ -6504,12 +6504,7 @@ if (subsFollowMainNgcFiles.length !== 1 || new Set(subsFollowMainNgcFiles).size !== subsFollowMainNgcFiles.length) { throw new Error("browser_interp_subs_follow_main_fixture_coverage: list drift"); } - const subsFollowMainStagedNgcFiles = [ - subsFollowMainPath, - ].map((path) => path.replace("/work/browser-interp/subs-follow-main/", "")); - if (subsFollowMainStagedNgcFiles.join(",") !== subsFollowMainNgcFiles.join(",")) { - throw new Error("browser_interp_subs_follow_main_staging_manifest: list drift"); - } + assertInterpRegressionFileStaging("subs-follow-main", "test.ngc", subsFollowMainPath); verifyExpectedOutput( "browser_interp_subs_follow_main", interp.runFile(subsFollowMainPath), @@ -6534,12 +6529,7 @@ if (fractionalLinenumbersNgcFiles.length !== 1 || new Set(fractionalLinenumbersNgcFiles).size !== fractionalLinenumbersNgcFiles.length) { throw new Error("browser_interp_fractional_linenumbers_fixture_coverage: list drift"); } - const fractionalLinenumbersStagedNgcFiles = [ - fractionalLinenumbersPath, - ].map((path) => path.replace("/work/browser-interp/fractional-linenumbers/", "")); - if (fractionalLinenumbersStagedNgcFiles.join(",") !== fractionalLinenumbersNgcFiles.join(",")) { - throw new Error("browser_interp_fractional_linenumbers_staging_manifest: list drift"); - } + assertInterpRegressionFileStaging("fractional-linenumbers", "test.ngc", fractionalLinenumbersPath); verifyExpectedOutput( "browser_interp_fractional_linenumbers", interp.runFile(fractionalLinenumbersPath), @@ -6565,12 +6555,7 @@ if (crazyPathsNgcFiles.length !== 1 || new Set(crazyPathsNgcFiles).size !== crazyPathsNgcFiles.length) { throw new Error("browser_interp_crazy_paths_fixture_coverage: list drift"); } - const crazyPathsStagedNgcFiles = [ - crazyPathsPath, - ].map((path) => path.replace("/work/browser-interp/crazy-paths/", "")); - if (crazyPathsStagedNgcFiles.join(",") !== crazyPathsNgcFiles.join(",")) { - throw new Error("browser_interp_crazy_paths_staging_manifest: list drift"); - } + assertInterpRegressionFileStaging("crazy-paths", "test.ngc", crazyPathsPath); verifyExpectedOutput( "browser_interp_crazy_paths", interp.runFile(crazyPathsPath), @@ -6667,12 +6652,7 @@ if (namedparamBug424NgcFiles.length !== 1 || new Set(namedparamBug424NgcFiles).size !== namedparamBug424NgcFiles.length) { throw new Error("browser_interp_namedparam_bug424_fixture_coverage: list drift"); } - const namedparamBug424StagedNgcFiles = [ - namedparamBug424Path, - ].map((path) => path.replace("/work/browser-interp/namedparam-bug424/", "")); - if (namedparamBug424StagedNgcFiles.join(",") !== namedparamBug424NgcFiles.join(",")) { - throw new Error("browser_interp_namedparam_bug424_staging_manifest: list drift"); - } + assertInterpRegressionFileStaging("namedparam-bug424", "test.ngc", namedparamBug424Path); verifyExpectedOutput( "browser_interp_namedparam_bug424", interp.runFile(namedparamBug424Path), @@ -6700,12 +6680,7 @@ if (flowsnakeNgcFiles.length !== 1 || new Set(flowsnakeNgcFiles).size !== flowsnakeNgcFiles.length) { throw new Error("browser_interp_flowsnake_fixture_coverage: list drift"); } - const flowsnakeStagedNgcFiles = [ - flowsnakePath, - ].map((path) => path.replace("/work/browser-interp/flowsnake/", "")); - if (flowsnakeStagedNgcFiles.join(",") !== flowsnakeNgcFiles.join(",")) { - throw new Error("browser_interp_flowsnake_staging_manifest: list drift"); - } + assertInterpRegressionFileStaging("flowsnake", "flowsnake.ngc", flowsnakePath); verifyExpectedOutput( "browser_interp_flowsnake", interp.runFile(flowsnakePath), diff --git a/wasm-port/tests/wasm/node/verify_interp_wasm.mjs b/wasm-port/tests/wasm/node/verify_interp_wasm.mjs index 57e3dae..df28715 100644 --- a/wasm-port/tests/wasm/node/verify_interp_wasm.mjs +++ b/wasm-port/tests/wasm/node/verify_interp_wasm.mjs @@ -1487,13 +1487,7 @@ assert.deepEqual( interpRegressionNgcFilesRecursive("subs-follow-main"), "interp subs-follow-main fixture coverage drift", ); -assert.deepEqual( - [ - subsFollowMainPath, - ], - subsFollowMainNgcFiles.map((file) => `/work/interp/subs-follow-main/${file}`), - "interp subs-follow-main staging manifest drift", -); +assertInterpRegressionFileStaging("subs-follow-main", "test.ngc", subsFollowMainPath); verifyExpectedOutput( "interp_subs_follow_main_wasm", interp.runFile(subsFollowMainPath), @@ -1519,13 +1513,7 @@ assert.deepEqual( interpRegressionNgcFilesRecursive("fractional-linenumbers"), "interp fractional-linenumbers fixture coverage drift", ); -assert.deepEqual( - [ - fractionalLinenumbersPath, - ], - fractionalLinenumbersNgcFiles.map((file) => `/work/interp/fractional-linenumbers/${file}`), - "interp fractional-linenumbers staging manifest drift", -); +assertInterpRegressionFileStaging("fractional-linenumbers", "test.ngc", fractionalLinenumbersPath); verifyExpectedOutput( "interp_fractional_linenumbers_wasm", interp.runFile(fractionalLinenumbersPath), @@ -1549,13 +1537,7 @@ assert.deepEqual( interpRegressionNgcFilesRecursive("crazy-paths"), "interp crazy-paths fixture coverage drift", ); -assert.deepEqual( - [ - crazyPathsPath, - ], - crazyPathsNgcFiles.map((file) => `/work/interp/crazy-paths/${file}`), - "interp crazy-paths staging manifest drift", -); +assertInterpRegressionFileStaging("crazy-paths", "test.ngc", crazyPathsPath); verifyExpectedOutput( "interp_crazy_paths_wasm", interp.runFile(crazyPathsPath), @@ -1644,13 +1626,7 @@ assert.deepEqual( interpRegressionNgcFilesRecursive("namedparam-bug424"), "interp namedparam-bug424 fixture coverage drift", ); -assert.deepEqual( - [ - namedparamBug424Path, - ], - namedparamBug424NgcFiles.map((file) => `/work/interp/namedparam-bug424/${file}`), - "interp namedparam-bug424 staging manifest drift", -); +assertInterpRegressionFileStaging("namedparam-bug424", "test.ngc", namedparamBug424Path); verifyExpectedOutput( "interp_namedparam_bug424_wasm", interp.runFile(namedparamBug424Path), @@ -1676,13 +1652,7 @@ assert.deepEqual( interpRegressionNgcFilesRecursive("flowsnake"), "interp flowsnake fixture coverage drift", ); -assert.deepEqual( - [ - flowsnakePath, - ], - flowsnakeNgcFiles.map((file) => `/work/interp/flowsnake/${file}`), - "interp flowsnake staging manifest drift", -); +assertInterpRegressionFileStaging("flowsnake", "flowsnake.ngc", flowsnakePath); verifyExpectedOutput( "interp_flowsnake_wasm", interp.runFile(flowsnakePath),