Guard browser OPFS tool-table object adapters
This commit is contained in:
53
text9.txt
53
text9.txt
@@ -728,3 +728,56 @@ host_wasm_opfs_browser_smokes=ok
|
|||||||
`opfsToolTableSeedTextForTool(...)` / `opfsToolTableTextLinesForTool(...)` object
|
`opfsToolTableSeedTextForTool(...)` / `opfsToolTableTextLinesForTool(...)` object
|
||||||
adapter,减少普通 OPFS tool-table 调用点的参数展开;只改测试胶水,不改变输入、
|
adapter,减少普通 OPFS tool-table 调用点的参数展开;只改测试胶水,不改变输入、
|
||||||
OPFS path、WASM path 字符串或保存/读取行为。
|
OPFS path、WASM path 字符串或保存/读取行为。
|
||||||
|
|
||||||
|
十六、2026-06-14 继续执行记录:browser OPFS tool-table object adapter guard
|
||||||
|
|
||||||
|
本轮按上一条下一步建议继续收敛普通 OPFS tool-table helper 调用点的参数展开,
|
||||||
|
范围仍只触及 `wasm-port/tests/browser/interp_smoke.html` 的 browser/OPFS test glue。
|
||||||
|
|
||||||
|
完成内容:
|
||||||
|
|
||||||
|
- 新增 `opfsToolTableTextLinesForTool(...)`,从显式 tool object locals 转发到
|
||||||
|
`opfsToolTableTextLines(...)`;
|
||||||
|
- 新增 `opfsToolTableSeedTextForTool(...)`,从显式 tool object locals 转发到
|
||||||
|
`opfsToolTableSeedText(...)`;
|
||||||
|
- direct `browser-interp` ordinary tool-table readback 改为复用
|
||||||
|
`opfsToolTableTextLinesForTool(...)`,并继续显式保留 `I/J/Q` readback lines;
|
||||||
|
- INI-named 与 explicit custom session ordinary tool-table seed/readback 调用点改为
|
||||||
|
复用 object adapter;
|
||||||
|
- adapter 只转发已显式保存的 object 字段,不推导 LinuxCNC-owned tool-table 格式;
|
||||||
|
- 未改变任何 expected 字符串、输入、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 test glue guard。优先扫描 ordinary OPFS tool-table load/save
|
||||||
|
result 调用点是否值得新增 `opfsToolTableResultLinesForTool(...)` object adapter;
|
||||||
|
只改测试胶水,不改变输入、OPFS path、WASM path 字符串或保存/读取行为。
|
||||||
|
|||||||
@@ -4619,6 +4619,17 @@
|
|||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function opfsToolTableTextLinesForTool(tool, extraLines = []) {
|
||||||
|
return opfsToolTableTextLines(
|
||||||
|
tool.toolNo,
|
||||||
|
tool.pocketNo,
|
||||||
|
tool.readbackZOffset,
|
||||||
|
tool.readbackDiameter,
|
||||||
|
tool.comment,
|
||||||
|
extraLines,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
function opfsToolTableToolValues(
|
function opfsToolTableToolValues(
|
||||||
toolNo,
|
toolNo,
|
||||||
pocketNo,
|
pocketNo,
|
||||||
@@ -4682,6 +4693,16 @@
|
|||||||
return `T${toolNo} P${pocketNo} Z${zOffset} D${diameter} ${comment}\n`;
|
return `T${toolNo} P${pocketNo} Z${zOffset} D${diameter} ${comment}\n`;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function opfsToolTableSeedTextForTool(tool) {
|
||||||
|
return opfsToolTableSeedText(
|
||||||
|
tool.toolNo,
|
||||||
|
tool.pocketNo,
|
||||||
|
tool.zOffset,
|
||||||
|
tool.diameter,
|
||||||
|
tool.comment,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
function opfsCustomSessionIniText(machineId, parameterFilename, toolTableFilename) {
|
function opfsCustomSessionIniText(machineId, parameterFilename, toolTableFilename) {
|
||||||
return [
|
return [
|
||||||
"[EMC]",
|
"[EMC]",
|
||||||
@@ -9507,14 +9528,7 @@
|
|||||||
"opfs_saved_tool_table_text",
|
"opfs_saved_tool_table_text",
|
||||||
browserInterpMachineId,
|
browserInterpMachineId,
|
||||||
"toolTable",
|
"toolTable",
|
||||||
opfsToolTableTextLines(
|
opfsToolTableTextLinesForTool(browserInterpToolTable, ["I+12.000000", "J+34.000000", "Q4"]),
|
||||||
browserInterpToolTable.toolNo,
|
|
||||||
browserInterpToolTable.pocketNo,
|
|
||||||
browserInterpToolTable.readbackZOffset,
|
|
||||||
browserInterpToolTable.readbackDiameter,
|
|
||||||
browserInterpToolTable.comment,
|
|
||||||
["I+12.000000", "J+34.000000", "Q4"],
|
|
||||||
),
|
|
||||||
);
|
);
|
||||||
|
|
||||||
const browserRandomMachineId = "browser-random-toolchanger";
|
const browserRandomMachineId = "browser-random-toolchanger";
|
||||||
@@ -9651,13 +9665,7 @@
|
|||||||
await writeOpfsMachineFile(
|
await writeOpfsMachineFile(
|
||||||
iniFileMachineId,
|
iniFileMachineId,
|
||||||
iniFileToolTableFilename,
|
iniFileToolTableFilename,
|
||||||
opfsToolTableSeedText(
|
opfsToolTableSeedTextForTool(iniNamedToolTable),
|
||||||
iniNamedToolTable.toolNo,
|
|
||||||
iniNamedToolTable.pocketNo,
|
|
||||||
iniNamedToolTable.zOffset,
|
|
||||||
iniNamedToolTable.diameter,
|
|
||||||
iniNamedToolTable.comment,
|
|
||||||
),
|
|
||||||
);
|
);
|
||||||
const loadedIniFileSession = await loadMachineSessionFromOpfs(
|
const loadedIniFileSession = await loadMachineSessionFromOpfs(
|
||||||
interp,
|
interp,
|
||||||
@@ -9747,13 +9755,7 @@
|
|||||||
await verifyOpfsReadback(
|
await verifyOpfsReadback(
|
||||||
"opfs_saved_ini_named_tool_table_text",
|
"opfs_saved_ini_named_tool_table_text",
|
||||||
loadedIniFileSession.toolTable.opfsPath,
|
loadedIniFileSession.toolTable.opfsPath,
|
||||||
opfsToolTableTextLines(
|
opfsToolTableTextLinesForTool(iniNamedToolTable),
|
||||||
iniNamedToolTable.toolNo,
|
|
||||||
iniNamedToolTable.pocketNo,
|
|
||||||
iniNamedToolTable.readbackZOffset,
|
|
||||||
iniNamedToolTable.readbackDiameter,
|
|
||||||
iniNamedToolTable.comment,
|
|
||||||
),
|
|
||||||
);
|
);
|
||||||
|
|
||||||
const iniOverrideMachineId = "browser-ini-override-session";
|
const iniOverrideMachineId = "browser-ini-override-session";
|
||||||
@@ -9794,13 +9796,7 @@
|
|||||||
await writeOpfsMachineFile(
|
await writeOpfsMachineFile(
|
||||||
iniOverrideMachineId,
|
iniOverrideMachineId,
|
||||||
explicitToolTableFilename,
|
explicitToolTableFilename,
|
||||||
opfsToolTableSeedText(
|
opfsToolTableSeedTextForTool(explicitToolTable),
|
||||||
explicitToolTable.toolNo,
|
|
||||||
explicitToolTable.pocketNo,
|
|
||||||
explicitToolTable.zOffset,
|
|
||||||
explicitToolTable.diameter,
|
|
||||||
explicitToolTable.comment,
|
|
||||||
),
|
|
||||||
);
|
);
|
||||||
const loadedIniOverrideSession = await loadMachineSessionFromOpfs(
|
const loadedIniOverrideSession = await loadMachineSessionFromOpfs(
|
||||||
interp,
|
interp,
|
||||||
@@ -9894,13 +9890,7 @@
|
|||||||
await verifyOpfsReadback(
|
await verifyOpfsReadback(
|
||||||
"opfs_saved_explicit_tool_table_text",
|
"opfs_saved_explicit_tool_table_text",
|
||||||
loadedIniOverrideSession.toolTable.opfsPath,
|
loadedIniOverrideSession.toolTable.opfsPath,
|
||||||
opfsToolTableTextLines(
|
opfsToolTableTextLinesForTool(explicitToolTable),
|
||||||
explicitToolTable.toolNo,
|
|
||||||
explicitToolTable.pocketNo,
|
|
||||||
explicitToolTable.readbackZOffset,
|
|
||||||
explicitToolTable.readbackDiameter,
|
|
||||||
explicitToolTable.comment,
|
|
||||||
),
|
|
||||||
);
|
);
|
||||||
|
|
||||||
await verifyOpfsInvalidIniSessionRejects(
|
await verifyOpfsInvalidIniSessionRejects(
|
||||||
|
|||||||
Reference in New Issue
Block a user