Guard browser OPFS random tool-table values
This commit is contained in:
58
text9.txt
58
text9.txt
@@ -351,3 +351,61 @@ host_wasm_opfs_browser_smokes=ok
|
||||
的 tool-table load/save/readback expected lines 是否能用现有 helper 或局部常量收敛;
|
||||
只改测试胶水,不改变 random toolchanger 输入、OPFS path、WASM path 字符串或
|
||||
保存/读取行为。
|
||||
|
||||
九、2026-06-14 继续执行记录:browser OPFS random session tool-table helper guard
|
||||
|
||||
本轮按上一条下一步建议继续收敛 direct random toolchanger session 的 tool-table
|
||||
load/save/readback expected lines,范围仍只触及
|
||||
`wasm-port/tests/browser/interp_smoke.html` 的 browser/OPFS test glue。
|
||||
|
||||
完成内容:
|
||||
|
||||
- 新增 `opfsRandomToolTableResultLines(...)`,统一 random toolchanger load/save
|
||||
result expected lines 的拼装;
|
||||
- 新增 `opfsRandomToolTableTextLines(...)`,统一 random toolchanger saved
|
||||
tool-table readback expected lines 的拼装;
|
||||
- 为 direct random toolchanger session 增加 `browserRandomFinishTool`、
|
||||
`browserRandomRoughTool` 与 `browserRandomTools` 局部常量;
|
||||
- `opfs_load_random_tool_table` expected lines 改为复用
|
||||
`opfsRandomToolTableResultLines("load", ...)`,并继续显式保留
|
||||
`tooldata_random_toolchanger=1` 和 `tool_index_for_tool_2=7`;
|
||||
- `opfs_save_random_tool_table` expected lines 改为复用
|
||||
`opfsRandomToolTableResultLines("save", ...)`;
|
||||
- `opfs_saved_random_tool_table_text` expected lines 改为复用
|
||||
`opfsRandomToolTableTextLines(...)`;
|
||||
- 未改变 random toolchanger 输入、OPFS path、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 OPFS test glue guard。优先扫描 direct generated random
|
||||
toolchanger file block 中的 load/save/readback expected lines 是否也能复用
|
||||
`opfsRandomToolTable*` helpers 或局部常量;只改测试胶水,不改变 direct generated
|
||||
file input、WASM path 字符串或保存/读取行为。
|
||||
|
||||
@@ -4619,6 +4619,22 @@
|
||||
];
|
||||
}
|
||||
|
||||
function opfsRandomToolTableResultLines(operation, tools) {
|
||||
return [
|
||||
...(operation === "load" ? ["tooldata_random_toolchanger=1"] : []),
|
||||
`tooldata_${operation}=0`,
|
||||
...tools.flatMap((tool) => tool.resultLines),
|
||||
];
|
||||
}
|
||||
|
||||
function opfsRandomToolTableTextLines(tools) {
|
||||
return tools.flatMap((tool) => [
|
||||
`T${tool.toolNo}`,
|
||||
`P${tool.pocketNo}`,
|
||||
tool.comment,
|
||||
]);
|
||||
}
|
||||
|
||||
function opfsToolTableSeedText(toolNo, pocketNo, zOffset, diameter, comment) {
|
||||
return `T${toolNo} P${pocketNo} Z${zOffset} D${diameter} ${comment}\n`;
|
||||
}
|
||||
@@ -9440,6 +9456,31 @@
|
||||
|
||||
const browserRandomMachineId = "browser-random-toolchanger";
|
||||
const browserRandomWasmPaths = opfsBrowserSessionWasmPaths("browser-random");
|
||||
const browserRandomFinishTool = {
|
||||
toolNo: "2",
|
||||
pocketNo: "7",
|
||||
comment: ";browser random finish tool",
|
||||
resultLines: [
|
||||
"tool_pocket_7.toolno=2",
|
||||
"tool_pocket_7.pocketno=7",
|
||||
"tool_pocket_7.z=3.125",
|
||||
"tool_pocket_7.diameter=1.5",
|
||||
"tool_pocket_7.frontangle=12",
|
||||
"tool_pocket_7.backangle=34",
|
||||
"tool_pocket_7.orientation=4",
|
||||
"tool_pocket_7.comment=browser random finish tool",
|
||||
],
|
||||
};
|
||||
const browserRandomRoughTool = {
|
||||
toolNo: "5",
|
||||
pocketNo: "9",
|
||||
comment: ";browser random rough tool",
|
||||
resultLines: [
|
||||
"tool_pocket_9.toolno=5",
|
||||
"tool_pocket_9.pocketno=9",
|
||||
],
|
||||
};
|
||||
const browserRandomTools = [browserRandomFinishTool, browserRandomRoughTool];
|
||||
const browserRandomTextPaths = await saveMachineTextFiles(browserRandomMachineId, {
|
||||
ini: [
|
||||
"[EMC]",
|
||||
@@ -9477,21 +9518,10 @@
|
||||
verifyOpfsLoadResult(
|
||||
"opfs_load_random_tool_table",
|
||||
loadedRandomSession.toolTable,
|
||||
[
|
||||
"tooldata_random_toolchanger=1",
|
||||
"tooldata_load=0",
|
||||
"tool_pocket_7.toolno=2",
|
||||
"tool_pocket_7.pocketno=7",
|
||||
"tool_pocket_7.z=3.125",
|
||||
"tool_pocket_7.diameter=1.5",
|
||||
"tool_pocket_7.frontangle=12",
|
||||
"tool_pocket_7.backangle=34",
|
||||
"tool_pocket_7.orientation=4",
|
||||
"tool_pocket_7.comment=browser random finish tool",
|
||||
"tool_pocket_9.toolno=5",
|
||||
"tool_pocket_9.pocketno=9",
|
||||
"tool_index_for_tool_2=7",
|
||||
],
|
||||
opfsRandomToolTableResultLines("load", [
|
||||
...browserRandomTools,
|
||||
{ resultLines: ["tool_index_for_tool_2=7"] },
|
||||
]),
|
||||
);
|
||||
const savedRandomToolTable = await saveMachineToolTableToOpfs(
|
||||
interp,
|
||||
@@ -9508,24 +9538,16 @@
|
||||
verifyOpfsSaveResult(
|
||||
"opfs_save_random_tool_table",
|
||||
savedRandomToolTable,
|
||||
[
|
||||
"tooldata_save=0",
|
||||
"tool_pocket_7.toolno=2",
|
||||
"tool_pocket_9.toolno=5",
|
||||
],
|
||||
opfsRandomToolTableResultLines("save", [
|
||||
{ resultLines: ["tool_pocket_7.toolno=2"] },
|
||||
{ resultLines: ["tool_pocket_9.toolno=5"] },
|
||||
]),
|
||||
);
|
||||
await verifyOpfsMachineFileReadback(
|
||||
"opfs_saved_random_tool_table_text",
|
||||
browserRandomMachineId,
|
||||
"toolTable",
|
||||
[
|
||||
"T2",
|
||||
"P7",
|
||||
";browser random finish tool",
|
||||
"T5",
|
||||
"P9",
|
||||
";browser random rough tool",
|
||||
],
|
||||
opfsRandomToolTableTextLines(browserRandomTools),
|
||||
);
|
||||
|
||||
const iniFileMachineId = "browser-ini-file-session";
|
||||
|
||||
Reference in New Issue
Block a user