From a3e2ff66f9a92b931e43ceba32f6cc3fce0edfc6 Mon Sep 17 00:00:00 2001 From: wangdequan Date: Sun, 14 Jun 2026 01:51:27 +0800 Subject: [PATCH] Guard browser OPFS custom session result lines --- text8.txt | 55 ++++++++++++++++ wasm-port/tests/browser/interp_smoke.html | 77 +++++++++-------------- 2 files changed, 84 insertions(+), 48 deletions(-) diff --git a/text8.txt b/text8.txt index db3d561..3bf8aec 100644 --- a/text8.txt +++ b/text8.txt @@ -953,3 +953,58 @@ host_wasm_opfs_browser_smokes=ok custom session load/save blocks 的 expected output arrays 是否还有重复的 parameter/tool-table key lines 可安全抽成局部常量或小 helper;只改测试胶水,保持 精确文本校验,不改变 custom filename 输入、OPFS path、WASM path 字符串或保存/读取行为。 + +二十二、2026-06-14 继续执行记录:browser OPFS custom session result lines helper guard + +本轮按上一条下一步建议继续收敛 custom session load/save blocks 的 expected output +arrays,范围仍只触及 `wasm-port/tests/browser/interp_smoke.html` 的 browser/OPFS test +glue。 + +完成内容: + +- 新增 `opfsParameterResultLines(...)`,统一 custom session parameter + restore/save result 中 5161、5162、5221、5399 的 expected lines; +- 新增 `opfsToolTableResultLines(...)`,统一 custom session tool-table + load/save result 中 toolno/pocketno 以及可选附加字段的 expected lines; +- INI-named session 与 explicit session 的 parameter load/save 校验改为复用 + `opfsParameterResultLines(...)`; +- INI-named session 与 explicit session 的 tool-table load/save 校验改为复用 + `opfsToolTableResultLines(...)`; +- 所有 load/save result 仍通过 `verifyExpectedOutput(...)` 做精确文本校验; +- custom parameter/tool-table filename 输入、OPFS path、WASM path 字符串与 + save/read 行为均未改变; +- 未改变 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。优先扫描 custom session saved parameter +readback 与 backup readback expected text 是否还能用只读 expected-lines 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 4856939..9c3c57f 100644 --- a/wasm-port/tests/browser/interp_smoke.html +++ b/wasm-port/tests/browser/interp_smoke.html @@ -4547,6 +4547,25 @@ verifyExpectedOutput(label, loadResult.result, expectedLines.join("\n")); } + function opfsParameterResultLines(operation, parameter5161, parameter5162, parameter5221, parameter5399) { + return [ + `${operation}_parameters=0`, + `parameter_5161=${parameter5161}`, + `parameter_5162=${parameter5162}`, + `parameter_5221=${parameter5221}`, + `parameter_5399=${parameter5399}`, + ]; + } + + function opfsToolTableResultLines(operation, toolNo, pocketNo, extraLines = []) { + return [ + `tooldata_${operation}=0`, + `tool_1.toolno=${toolNo}`, + `tool_1.pocketno=${pocketNo}`, + ...extraLines, + ]; + } + async function verifyOpfsSavedText(label, loadActualText, expectedLines) { verifyExpectedOutput(label, await loadActualText(), expectedLines.join("\n")); } @@ -9509,13 +9528,7 @@ verifyOpfsLoadResult( "opfs_load_ini_named_parameter_file", loadedIniFileSession.parameters, - [ - "restore_parameters=0", - "parameter_5161=31.25", - "parameter_5162=62.5", - "parameter_5221=4.5", - "parameter_5399=99", - ], + opfsParameterResultLines("restore", "31.25", "62.5", "4.5", "99"), ); const savedIniNamedParameters = await saveMachineParametersToOpfs( interp, @@ -9542,13 +9555,7 @@ verifyOpfsSaveResult( "opfs_save_ini_named_parameter_file", savedIniNamedParameters, - [ - "save_parameters=0", - "parameter_5161=33.75", - "parameter_5162=67.5", - "parameter_5221=5.25", - "parameter_5399=199", - ], + opfsParameterResultLines("save", "33.75", "67.5", "5.25", "199"), ); await verifyOpfsReadback( "opfs_saved_ini_named_parameter_text", @@ -9573,14 +9580,11 @@ verifyOpfsLoadResult( "opfs_load_ini_named_tool_table", loadedIniFileSession.toolTable, - [ - "tooldata_load=0", - "tool_1.toolno=8", - "tool_1.pocketno=8", + opfsToolTableResultLines("load", "8", "8", [ "tool_1.z=4.5", "tool_1.diameter=0.5", "tool_1.comment=browser custom tool", - ], + ]), ); const savedIniNamedToolTable = await saveMachineToolTableToOpfs( interp, @@ -9600,11 +9604,7 @@ verifyOpfsSaveResult( "opfs_save_ini_named_tool_table", savedIniNamedToolTable, - [ - "tooldata_save=0", - "tool_1.toolno=8", - "tool_1.pocketno=8", - ], + opfsToolTableResultLines("save", "8", "8"), ); await verifyOpfsReadback( "opfs_saved_ini_named_tool_table_text", @@ -9687,25 +9687,16 @@ verifyOpfsLoadResult( "opfs_load_explicit_parameter_file", loadedIniOverrideSession.parameters, - [ - "restore_parameters=0", - "parameter_5161=41.25", - "parameter_5162=82.5", - "parameter_5221=6.5", - "parameter_5399=101", - ], + opfsParameterResultLines("restore", "41.25", "82.5", "6.5", "101"), ); verifyOpfsLoadResult( "opfs_load_explicit_tool_table", loadedIniOverrideSession.toolTable, - [ - "tooldata_load=0", - "tool_1.toolno=9", - "tool_1.pocketno=9", + opfsToolTableResultLines("load", "9", "9", [ "tool_1.z=5.5", "tool_1.diameter=0.625", "tool_1.comment=browser explicit tool", - ], + ]), ); const savedExplicitParameters = await saveMachineParametersToOpfs( interp, @@ -9732,13 +9723,7 @@ verifyOpfsSaveResult( "opfs_save_explicit_parameter_file", savedExplicitParameters, - [ - "save_parameters=0", - "parameter_5161=51.25", - "parameter_5162=102.5", - "parameter_5221=7.5", - "parameter_5399=202", - ], + opfsParameterResultLines("save", "51.25", "102.5", "7.5", "202"), ); await verifyOpfsReadback( "opfs_saved_explicit_parameter_text", @@ -9778,11 +9763,7 @@ verifyOpfsSaveResult( "opfs_save_explicit_tool_table", savedExplicitToolTable, - [ - "tooldata_save=0", - "tool_1.toolno=9", - "tool_1.pocketno=9", - ], + opfsToolTableResultLines("save", "9", "9"), ); await verifyOpfsReadback( "opfs_saved_explicit_tool_table_text",