From 25d8672f57811dced235978b949258db8d75ba6c Mon Sep 17 00:00:00 2001 From: wangdequan Date: Sun, 14 Jun 2026 01:44:29 +0800 Subject: [PATCH] Guard browser OPFS custom session path locals --- text8.txt | 52 +++++++++++++++++++++++ wasm-port/tests/browser/interp_smoke.html | 17 ++++++-- 2 files changed, 66 insertions(+), 3 deletions(-) diff --git a/text8.txt b/text8.txt index 379dd6e..8c0a63e 100644 --- a/text8.txt +++ b/text8.txt @@ -848,3 +848,55 @@ host_wasm_opfs_browser_smokes=ok 继续小批量 browser staging path literal guard。优先扫描 `interp_smoke.html` 中 OPFS custom session load/save blocks 是否还有重复的 OPFS path locals 可收敛; 只改测试胶水,不改变 custom filename 输入、OPFS path 或 WASM path 字符串。 + +二十、2026-06-14 继续执行记录:browser OPFS custom session path locals guard + +本轮按上一条下一步建议继续扫描 OPFS custom session load/save blocks 中的重复 path +派生,范围仍只触及 `wasm-port/tests/browser/interp_smoke.html` 的 browser/OPFS test +glue。 + +完成内容: + +- 扩展 `opfsCustomSessionPaths(...)`,让它接收调用方已经计算好的 + parameter/tool-table WASM path; +- INI-named session 与 explicit session 的 staging 断言均复用现有 + `iniFileParameterWasmPath` / `iniFileToolTableWasmPath` 与 + `explicitParameterWasmPath` / `explicitToolTableWasmPath`; +- 收敛 custom session path helper 内重复的 `opfsCustomSessionWasmPath(...)` + filename-derived WASM path 派生; +- custom parameter/tool-table filename 输入、OPFS path、WASM path 字符串均未改变; +- 未改变 staging path 模型、OPFS bridge behavior、file-service、SDK planner、 + interpreter、INI、tool、parameter 或 LinuxCNC-owned runtime semantics。 + +验证已通过: + +```bash +git diff --check +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_interp_wasm.sh +SKIP_INTERP_BUILD=1 wasm-port/tests/wasm/node/verify_sim_configs_inventory_wasm.sh +wasm-port/tests/host/verify_host_smokes.sh +``` + +关键输出: + +```text +browser_interp_smoke=ok +vendor sync up to date +standalone CNC semantics guard complete +interp_wasm_node_smoke=ok +sim_configs_wasm_node_inventory_executed=28 +sim_configs_wasm_node_inventory_passed=28 +sim_configs_wasm_node_inventory_skipped=131 +sim_configs_wasm_node_inventory_unexpected_fail=0 +host_wasm_opfs_browser_smokes=ok +``` + +下一步建议: + +继续小批量 browser OPFS test glue guard。优先扫描 `interp_smoke.html` 中 +custom session saved parameter/tool-table readback blocks 是否还能统一为 +`verifyOpfsReadback(...)` 或已有 saved-text helper 调用;只改测试胶水,不改变 +custom filename 输入、OPFS path、WASM path 字符串或保存/读取行为。 diff --git a/wasm-port/tests/browser/interp_smoke.html b/wasm-port/tests/browser/interp_smoke.html index 1ec90c5..da89dd6 100644 --- a/wasm-port/tests/browser/interp_smoke.html +++ b/wasm-port/tests/browser/interp_smoke.html @@ -4588,7 +4588,14 @@ ); } - function opfsCustomSessionPaths(machineId, parameterFilename, toolTableFilename, iniWasmPath) { + function opfsCustomSessionPaths( + machineId, + parameterFilename, + toolTableFilename, + iniWasmPath, + parameterWasmPath, + toolTableWasmPath, + ) { return { opfs: { parameters: opfsMachineFilePath(machineId, parameterFilename), @@ -4596,8 +4603,8 @@ }, wasm: { ini: iniWasmPath, - parameters: opfsCustomSessionWasmPath(parameterFilename), - toolTable: opfsCustomSessionWasmPath(toolTableFilename), + parameters: parameterWasmPath, + toolTable: toolTableWasmPath, }, }; } @@ -9495,6 +9502,8 @@ iniFileParameterFilename, iniFileToolTableFilename, iniFileIniWasmPath, + iniFileParameterWasmPath, + iniFileToolTableWasmPath, ), ); verifyOpfsLoadResult( @@ -9671,6 +9680,8 @@ explicitParameterFilename, explicitToolTableFilename, iniOverrideIniWasmPath, + explicitParameterWasmPath, + explicitToolTableWasmPath, ), ); verifyOpfsLoadResult(