From 6a9f1c99df7403d2888a9f202e35b79072773171 Mon Sep 17 00:00:00 2001 From: wangdequan Date: Sun, 14 Jun 2026 01:30:13 +0800 Subject: [PATCH] Guard browser OPFS session wasm path group helper --- text8.txt | 47 ++++++++++++++++++++ wasm-port/tests/browser/interp_smoke.html | 52 +++++++++++------------ 2 files changed, 71 insertions(+), 28 deletions(-) diff --git a/text8.txt b/text8.txt index a42cd97..a1f06b0 100644 --- a/text8.txt +++ b/text8.txt @@ -704,3 +704,50 @@ host_wasm_opfs_browser_smokes=ok 继续保持小批量 browser staging path literal guard。优先扫描 `/work/browser-*` 的 direct session WASM path 常量,看是否还能把 `browserInterp*` 与 `browserRandom*` 分组的重复前缀抽成局部 helper;只改 browser test glue,不改变 staging model。 + +十七、2026-06-14 继续执行记录:browser OPFS session wasm path group helper guard + +本轮按上一条下一步建议继续扫描 direct session WASM path 常量,范围仍只触及 +`wasm-port/tests/browser/interp_smoke.html` 的 browser/OPFS test glue。 + +完成内容: + +- 新增 `opfsBrowserSessionWasmPaths(prefix)`,统一生成 direct browser session 的 + INI、parameter、tool-table WASM paths; +- 将 `browserInterp*WasmPath` 三元组收敛为 `browserInterpWasmPaths`; +- 将 `browserRandom*WasmPath` 三元组收敛为 `browserRandomWasmPaths`; +- 未改变实际 `/work/browser-*` staging path、OPFS bridge behavior、file-service、 + path-model、SDK planner、interpreter、INI、tool、parameter 或 LinuxCNC-owned + runtime semantics。 + +验证已通过: + +```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_INTERP_BUILD=1 wasm-port/tests/wasm/node/verify_sim_configs_inventory_wasm.sh +SKIP_INI_BUILD=1 SKIP_INTERP_BUILD=1 wasm-port/tests/browser/verify_interp_browser.sh +wasm-port/tests/host/verify_host_smokes.sh +``` + +关键输出: + +```text +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 +browser_interp_smoke=ok +host_wasm_opfs_browser_smokes=ok +``` + +下一步建议: + +继续小批量扫描 browser staging path literal。优先看 custom INI-named / explicit session +的 `iniFileIniWasmPath`、`iniOverrideIniWasmPath` 是否能复用一个 session INI WASM +path helper;只改测试胶水,不改变 staging path 字符串或 custom filename 输入。 diff --git a/wasm-port/tests/browser/interp_smoke.html b/wasm-port/tests/browser/interp_smoke.html index c1df27a..6022982 100644 --- a/wasm-port/tests/browser/interp_smoke.html +++ b/wasm-port/tests/browser/interp_smoke.html @@ -4580,6 +4580,14 @@ return { ini, parameters, toolTable }; } + function opfsBrowserSessionWasmPaths(prefix) { + return opfsSessionWasmPaths( + `/work/${prefix}-machine.ini`, + `/work/${prefix}-linuxcnc.var`, + `/work/${prefix}-tool.tbl`, + ); + } + function opfsCustomSessionPaths(machineId, parameterFilename, toolTableFilename, iniWasmPath) { return { opfs: { @@ -9172,9 +9180,7 @@ ); const browserInterpMachineId = "browser-interp"; - const browserInterpIniWasmPath = "/work/browser-machine.ini"; - const browserInterpParameterWasmPath = "/work/browser-linuxcnc.var"; - const browserInterpToolTableWasmPath = "/work/browser-tool.tbl"; + const browserInterpWasmPaths = opfsBrowserSessionWasmPaths("browser"); const browserInterpTextPaths = await saveMachineTextFiles(browserInterpMachineId, { ini: `[EMC]\nMACHINE = ${browserInterpMachineId}\n`, toolTable: "T2 P7 Z3.125 D1.5 I12 J34 Q4 ;browser finish tool\n", @@ -9197,9 +9203,9 @@ interp, browserInterpMachineId, { - iniWasmPath: browserInterpIniWasmPath, - parameterWasmPath: browserInterpParameterWasmPath, - toolTableWasmPath: browserInterpToolTableWasmPath, + iniWasmPath: browserInterpWasmPaths.ini, + parameterWasmPath: browserInterpWasmPaths.parameters, + toolTableWasmPath: browserInterpWasmPaths.toolTable, }, ); assertOpfsSessionStaging( @@ -9207,11 +9213,7 @@ loadedSession, browserInterpMachineId, { - wasm: opfsSessionWasmPaths( - browserInterpIniWasmPath, - browserInterpParameterWasmPath, - browserInterpToolTableWasmPath, - ), + wasm: browserInterpWasmPaths, }, ); verifyOpfsLoadResult( @@ -9251,14 +9253,14 @@ 5221: 9.87, 5399: 66.6, }, - { wasmPath: browserInterpParameterWasmPath }, + { wasmPath: browserInterpWasmPaths.parameters }, ); assertOpfsSavedParameterStaging( "opfs_save_parameters_staging", savedParameters, browserInterpMachineId, OPFS_DEFAULT_PARAMETER_FILENAME, - browserInterpParameterWasmPath, + browserInterpWasmPaths.parameters, ); verifyOpfsSaveResult( "opfs_save_parameters", @@ -9297,14 +9299,14 @@ const savedToolTable = await saveMachineToolTableToOpfs( interp, browserInterpMachineId, - { wasmPath: browserInterpToolTableWasmPath }, + { wasmPath: browserInterpWasmPaths.toolTable }, ); assertOpfsSavedToolTableStaging( "opfs_save_tool_table_staging", savedToolTable, browserInterpMachineId, OPFS_DEFAULT_TOOL_TABLE_FILENAME, - browserInterpToolTableWasmPath, + browserInterpWasmPaths.toolTable, ); verifyOpfsSaveResult( "opfs_save_tool_table", @@ -9332,9 +9334,7 @@ ); const browserRandomMachineId = "browser-random-toolchanger"; - const browserRandomIniWasmPath = "/work/browser-random-machine.ini"; - const browserRandomParameterWasmPath = "/work/browser-random-linuxcnc.var"; - const browserRandomToolTableWasmPath = "/work/browser-random-tool.tbl"; + const browserRandomWasmPaths = opfsBrowserSessionWasmPaths("browser-random"); const browserRandomTextPaths = await saveMachineTextFiles(browserRandomMachineId, { ini: [ "[EMC]", @@ -9368,9 +9368,9 @@ browserRandomMachineId, { iniSdk: ini, - iniWasmPath: browserRandomIniWasmPath, - parameterWasmPath: browserRandomParameterWasmPath, - toolTableWasmPath: browserRandomToolTableWasmPath, + iniWasmPath: browserRandomWasmPaths.ini, + parameterWasmPath: browserRandomWasmPaths.parameters, + toolTableWasmPath: browserRandomWasmPaths.toolTable, }, ); assertOpfsSessionStaging( @@ -9378,11 +9378,7 @@ loadedRandomSession, browserRandomMachineId, { - wasm: opfsSessionWasmPaths( - browserRandomIniWasmPath, - browserRandomParameterWasmPath, - browserRandomToolTableWasmPath, - ), + wasm: browserRandomWasmPaths, }, ); verifyOpfsLoadResult( @@ -9407,14 +9403,14 @@ const savedRandomToolTable = await saveMachineToolTableToOpfs( interp, browserRandomMachineId, - { wasmPath: browserRandomToolTableWasmPath }, + { wasmPath: browserRandomWasmPaths.toolTable }, ); assertOpfsSavedToolTableStaging( "opfs_save_random_tool_table_staging", savedRandomToolTable, browserRandomMachineId, OPFS_DEFAULT_TOOL_TABLE_FILENAME, - browserRandomToolTableWasmPath, + browserRandomWasmPaths.toolTable, ); verifyOpfsSaveResult( "opfs_save_random_tool_table",