Guard browser OPFS tool-table result adapter
This commit is contained in:
61
text9.txt
61
text9.txt
@@ -781,3 +781,64 @@ host_wasm_opfs_browser_smokes=ok
|
|||||||
继续小批量 browser test glue guard。优先扫描 ordinary OPFS tool-table load/save
|
继续小批量 browser test glue guard。优先扫描 ordinary OPFS tool-table load/save
|
||||||
result 调用点是否值得新增 `opfsToolTableResultLinesForTool(...)` object adapter;
|
result 调用点是否值得新增 `opfsToolTableResultLinesForTool(...)` object adapter;
|
||||||
只改测试胶水,不改变输入、OPFS path、WASM path 字符串或保存/读取行为。
|
只改测试胶水,不改变输入、OPFS path、WASM path 字符串或保存/读取行为。
|
||||||
|
|
||||||
|
十七、2026-06-14 继续执行记录:browser OPFS tool-table result object adapter guard
|
||||||
|
|
||||||
|
本轮按上一条下一步建议继续收敛普通 OPFS tool-table load/save result helper 调用点
|
||||||
|
的参数展开,范围仍只触及
|
||||||
|
`wasm-port/tests/browser/interp_smoke.html` 的 browser/OPFS test glue。
|
||||||
|
|
||||||
|
完成内容:
|
||||||
|
|
||||||
|
- 新增 `opfsToolTableResultLinesForTool(...)`,从显式 tool object locals 转发到
|
||||||
|
`opfsToolTableResultLines(...)`;
|
||||||
|
- direct `browser-interp` ordinary tool-table load/save result 调用点改为复用
|
||||||
|
`opfsToolTableResultLinesForTool(...)`;
|
||||||
|
- INI-named 与 explicit custom session ordinary tool-table load/save result 调用点改为
|
||||||
|
复用 `opfsToolTableResultLinesForTool(...)`;
|
||||||
|
- load result 的 front angle、back angle、orientation、comment 与
|
||||||
|
`tool_index_for_tool_2=1` 等 extra lines 仍保留在调用点,保持语义边界外显;
|
||||||
|
- 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
|
||||||
|
```
|
||||||
|
|
||||||
|
备注:
|
||||||
|
|
||||||
|
- 当前 sandbox 会拦截本地 HTTP server socket bind;`verify_host_smokes.sh` 首次在
|
||||||
|
browser smoke 阶段因 `PermissionError: [Errno 1] Operation not permitted` 失败;
|
||||||
|
- 已按规则授权重跑 `wasm-port/tests/host/verify_host_smokes.sh`,重跑通过。
|
||||||
|
|
||||||
|
下一步建议:
|
||||||
|
|
||||||
|
继续小批量 browser test glue guard。优先扫描普通 OPFS tool-table object helper
|
||||||
|
是否还能合并命名或减少重复 adapter;如果收益不明显,转向 parameter result/text 的
|
||||||
|
object adapter 收敛;只改测试胶水,不改变输入、OPFS path、WASM path 字符串或
|
||||||
|
保存/读取行为。
|
||||||
|
|||||||
@@ -4608,6 +4608,10 @@
|
|||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function opfsToolTableResultLinesForTool(operation, tool, extraLines = []) {
|
||||||
|
return opfsToolTableResultLines(operation, tool.toolNo, tool.pocketNo, extraLines);
|
||||||
|
}
|
||||||
|
|
||||||
function opfsToolTableTextLines(toolNo, pocketNo, zOffset, diameter, comment, extraLines = []) {
|
function opfsToolTableTextLines(toolNo, pocketNo, zOffset, diameter, comment, extraLines = []) {
|
||||||
return [
|
return [
|
||||||
`T${toolNo}`,
|
`T${toolNo}`,
|
||||||
@@ -9459,7 +9463,7 @@
|
|||||||
verifyOpfsLoadResult(
|
verifyOpfsLoadResult(
|
||||||
"opfs_load_tool_table",
|
"opfs_load_tool_table",
|
||||||
loadedSession.toolTable,
|
loadedSession.toolTable,
|
||||||
opfsToolTableResultLines("load", browserInterpToolTable.toolNo, browserInterpToolTable.pocketNo, [
|
opfsToolTableResultLinesForTool("load", browserInterpToolTable, [
|
||||||
`tool_1.z=${browserInterpToolTable.zOffset}`,
|
`tool_1.z=${browserInterpToolTable.zOffset}`,
|
||||||
`tool_1.diameter=${browserInterpToolTable.diameter}`,
|
`tool_1.diameter=${browserInterpToolTable.diameter}`,
|
||||||
"tool_1.frontangle=12",
|
"tool_1.frontangle=12",
|
||||||
@@ -9522,7 +9526,7 @@
|
|||||||
verifyOpfsSaveResult(
|
verifyOpfsSaveResult(
|
||||||
"opfs_save_tool_table",
|
"opfs_save_tool_table",
|
||||||
savedToolTable,
|
savedToolTable,
|
||||||
opfsToolTableResultLines("save", browserInterpToolTable.toolNo, browserInterpToolTable.pocketNo),
|
opfsToolTableResultLinesForTool("save", browserInterpToolTable),
|
||||||
);
|
);
|
||||||
await verifyOpfsMachineFileReadback(
|
await verifyOpfsMachineFileReadback(
|
||||||
"opfs_saved_tool_table_text",
|
"opfs_saved_tool_table_text",
|
||||||
@@ -9729,7 +9733,7 @@
|
|||||||
verifyOpfsLoadResult(
|
verifyOpfsLoadResult(
|
||||||
"opfs_load_ini_named_tool_table",
|
"opfs_load_ini_named_tool_table",
|
||||||
loadedIniFileSession.toolTable,
|
loadedIniFileSession.toolTable,
|
||||||
opfsToolTableResultLines("load", iniNamedToolTable.toolNo, iniNamedToolTable.pocketNo, [
|
opfsToolTableResultLinesForTool("load", iniNamedToolTable, [
|
||||||
`tool_1.z=${iniNamedToolTable.zOffset}`,
|
`tool_1.z=${iniNamedToolTable.zOffset}`,
|
||||||
`tool_1.diameter=${iniNamedToolTable.diameter}`,
|
`tool_1.diameter=${iniNamedToolTable.diameter}`,
|
||||||
`tool_1.comment=${iniNamedToolTable.loadComment}`,
|
`tool_1.comment=${iniNamedToolTable.loadComment}`,
|
||||||
@@ -9750,7 +9754,7 @@
|
|||||||
verifyOpfsSaveResult(
|
verifyOpfsSaveResult(
|
||||||
"opfs_save_ini_named_tool_table",
|
"opfs_save_ini_named_tool_table",
|
||||||
savedIniNamedToolTable,
|
savedIniNamedToolTable,
|
||||||
opfsToolTableResultLines("save", iniNamedToolTable.toolNo, iniNamedToolTable.pocketNo),
|
opfsToolTableResultLinesForTool("save", iniNamedToolTable),
|
||||||
);
|
);
|
||||||
await verifyOpfsReadback(
|
await verifyOpfsReadback(
|
||||||
"opfs_saved_ini_named_tool_table_text",
|
"opfs_saved_ini_named_tool_table_text",
|
||||||
@@ -9833,7 +9837,7 @@
|
|||||||
verifyOpfsLoadResult(
|
verifyOpfsLoadResult(
|
||||||
"opfs_load_explicit_tool_table",
|
"opfs_load_explicit_tool_table",
|
||||||
loadedIniOverrideSession.toolTable,
|
loadedIniOverrideSession.toolTable,
|
||||||
opfsToolTableResultLines("load", explicitToolTable.toolNo, explicitToolTable.pocketNo, [
|
opfsToolTableResultLinesForTool("load", explicitToolTable, [
|
||||||
`tool_1.z=${explicitToolTable.zOffset}`,
|
`tool_1.z=${explicitToolTable.zOffset}`,
|
||||||
`tool_1.diameter=${explicitToolTable.diameter}`,
|
`tool_1.diameter=${explicitToolTable.diameter}`,
|
||||||
`tool_1.comment=${explicitToolTable.loadComment}`,
|
`tool_1.comment=${explicitToolTable.loadComment}`,
|
||||||
@@ -9885,7 +9889,7 @@
|
|||||||
verifyOpfsSaveResult(
|
verifyOpfsSaveResult(
|
||||||
"opfs_save_explicit_tool_table",
|
"opfs_save_explicit_tool_table",
|
||||||
savedExplicitToolTable,
|
savedExplicitToolTable,
|
||||||
opfsToolTableResultLines("save", explicitToolTable.toolNo, explicitToolTable.pocketNo),
|
opfsToolTableResultLinesForTool("save", explicitToolTable),
|
||||||
);
|
);
|
||||||
await verifyOpfsReadback(
|
await verifyOpfsReadback(
|
||||||
"opfs_saved_explicit_tool_table_text",
|
"opfs_saved_explicit_tool_table_text",
|
||||||
|
|||||||
Reference in New Issue
Block a user