Guard browser direct random generated tool-table

This commit is contained in:
2026-06-14 06:50:02 +08:00
parent 8489ba9c09
commit e5ea24729c
2 changed files with 84 additions and 22 deletions

View File

@@ -409,3 +409,59 @@ host_wasm_opfs_browser_smokes=ok
toolchanger file block 中的 load/save/readback expected lines 是否也能复用 toolchanger file block 中的 load/save/readback expected lines 是否也能复用
`opfsRandomToolTable*` helpers 或局部常量;只改测试胶水,不改变 direct generated `opfsRandomToolTable*` helpers 或局部常量;只改测试胶水,不改变 direct generated
file input、WASM path 字符串或保存/读取行为。 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 字符串或保存/读取行为。

View File

@@ -9294,13 +9294,11 @@
"", "",
].join("\n"), ].join("\n"),
); );
verifyExpectedOutput( const browserDirectRandomFinishTool = {
"load_tool_table_direct_random", toolNo: "2",
interp.loadToolTable(browserRandomToolTablePath, { randomToolChanger: true }), pocketNo: "7",
[ comment: ";browser direct random finish tool",
"tooldata_random_toolchanger=1", resultLines: [
"tooldata_load=0",
"tooldata_last_index=9",
"tool_pocket_7.toolno=2", "tool_pocket_7.toolno=2",
"tool_pocket_7.pocketno=7", "tool_pocket_7.pocketno=7",
"tool_pocket_7.z=3.125", "tool_pocket_7.z=3.125",
@@ -9309,32 +9307,40 @@
"tool_pocket_7.backangle=34", "tool_pocket_7.backangle=34",
"tool_pocket_7.orientation=4", "tool_pocket_7.orientation=4",
"tool_pocket_7.comment=browser direct random finish tool", "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.toolno=5",
"tool_pocket_9.pocketno=9", "tool_pocket_9.pocketno=9",
"tool_pocket_9.comment=browser direct random rough tool", "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( verifyExpectedOutput(
"save_tool_table_direct_random", "save_tool_table_direct_random",
interp.saveToolTable(browserRandomToolTablePath), interp.saveToolTable(browserRandomToolTablePath),
[ opfsRandomToolTableResultLines("save", [
"tooldata_save=0", { resultLines: ["tool_pocket_7.toolno=2"] },
"tool_pocket_7.toolno=2", { resultLines: ["tool_pocket_9.toolno=5"] },
"tool_pocket_9.toolno=5", ]).join("\n"),
].join("\n"),
); );
verifyExpectedOutput( verifyExpectedOutput(
"saved_tool_table_direct_random_text", "saved_tool_table_direct_random_text",
interp.readTextFile(browserRandomToolTablePath), interp.readTextFile(browserRandomToolTablePath),
[ opfsRandomToolTableTextLines(browserDirectRandomTools).join("\n"),
"T2",
"P7",
";browser direct random finish tool",
"T5",
"P9",
";browser direct random rough tool",
].join("\n"),
); );
const browserInterpMachineId = "browser-interp"; const browserInterpMachineId = "browser-interp";