From e5ea24729c69958542825a64d60bd6d8466a386e Mon Sep 17 00:00:00 2001 From: wangdequan Date: Sun, 14 Jun 2026 06:50:02 +0800 Subject: [PATCH] Guard browser direct random generated tool-table --- text9.txt | 56 +++++++++++++++++++++++ wasm-port/tests/browser/interp_smoke.html | 50 +++++++++++--------- 2 files changed, 84 insertions(+), 22 deletions(-) diff --git a/text9.txt b/text9.txt index 4ed2f8f..e4ff9ec 100644 --- a/text9.txt +++ b/text9.txt @@ -409,3 +409,59 @@ host_wasm_opfs_browser_smokes=ok toolchanger file block 中的 load/save/readback expected lines 是否也能复用 `opfsRandomToolTable*` helpers 或局部常量;只改测试胶水,不改变 direct generated file input、WASM path 字符串或保存/读取行为。 + +十、2026-06-14 继续执行记录:browser direct generated random tool-table helper guard + +本轮按上一条下一步建议继续收敛 direct generated random toolchanger file block 的 +load/save/readback expected lines,范围仍只触及 +`wasm-port/tests/browser/interp_smoke.html` 的 browser test glue。 + +完成内容: + +- 为 direct generated random toolchanger file block 增加 + `browserDirectRandomFinishTool`、`browserDirectRandomRoughTool` 与 + `browserDirectRandomTools` 局部常量; +- `load_tool_table_direct_random` expected lines 改为复用 + `opfsRandomToolTableResultLines("load", ...)`; +- direct generated block 中继续显式保留 `tooldata_last_index=9` 与 + `tool_index_for_tool_2=7`; +- `save_tool_table_direct_random` expected lines 改为复用 + `opfsRandomToolTableResultLines("save", ...)`; +- `saved_tool_table_direct_random_text` expected lines 改为复用 + `opfsRandomToolTableTextLines(...)`; +- 未改变 direct generated file input、WASM path 字符串、save/read/load 行为; +- 未改变 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 test glue guard。优先扫描 direct non-random generated +tool-table file block 中的 load/save/readback expected lines 是否能复用现有 +`opfsToolTable*` helpers 或局部常量;只改测试胶水,不改变 direct generated file input、 +WASM path 字符串或保存/读取行为。 diff --git a/wasm-port/tests/browser/interp_smoke.html b/wasm-port/tests/browser/interp_smoke.html index 8142c6a..b66680b 100644 --- a/wasm-port/tests/browser/interp_smoke.html +++ b/wasm-port/tests/browser/interp_smoke.html @@ -9294,13 +9294,11 @@ "", ].join("\n"), ); - verifyExpectedOutput( - "load_tool_table_direct_random", - interp.loadToolTable(browserRandomToolTablePath, { randomToolChanger: true }), - [ - "tooldata_random_toolchanger=1", - "tooldata_load=0", - "tooldata_last_index=9", + const browserDirectRandomFinishTool = { + toolNo: "2", + pocketNo: "7", + comment: ";browser direct random finish tool", + resultLines: [ "tool_pocket_7.toolno=2", "tool_pocket_7.pocketno=7", "tool_pocket_7.z=3.125", @@ -9309,32 +9307,40 @@ "tool_pocket_7.backangle=34", "tool_pocket_7.orientation=4", "tool_pocket_7.comment=browser direct random finish tool", + ], + }; + const browserDirectRandomRoughTool = { + toolNo: "5", + pocketNo: "9", + comment: ";browser direct random rough tool", + resultLines: [ "tool_pocket_9.toolno=5", "tool_pocket_9.pocketno=9", "tool_pocket_9.comment=browser direct random rough tool", - "tool_index_for_tool_2=7", - ].join("\n"), + ], + }; + const browserDirectRandomTools = [browserDirectRandomFinishTool, browserDirectRandomRoughTool]; + verifyExpectedOutput( + "load_tool_table_direct_random", + interp.loadToolTable(browserRandomToolTablePath, { randomToolChanger: true }), + opfsRandomToolTableResultLines("load", [ + { resultLines: ["tooldata_last_index=9"] }, + ...browserDirectRandomTools, + { resultLines: ["tool_index_for_tool_2=7"] }, + ]).join("\n"), ); verifyExpectedOutput( "save_tool_table_direct_random", interp.saveToolTable(browserRandomToolTablePath), - [ - "tooldata_save=0", - "tool_pocket_7.toolno=2", - "tool_pocket_9.toolno=5", - ].join("\n"), + opfsRandomToolTableResultLines("save", [ + { resultLines: ["tool_pocket_7.toolno=2"] }, + { resultLines: ["tool_pocket_9.toolno=5"] }, + ]).join("\n"), ); verifyExpectedOutput( "saved_tool_table_direct_random_text", interp.readTextFile(browserRandomToolTablePath), - [ - "T2", - "P7", - ";browser direct random finish tool", - "T5", - "P9", - ";browser direct random rough tool", - ].join("\n"), + opfsRandomToolTableTextLines(browserDirectRandomTools).join("\n"), ); const browserInterpMachineId = "browser-interp";