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 或局部常量收敛;
|
的 tool-table load/save/readback expected lines 是否能用现有 helper 或局部常量收敛;
|
||||||
只改测试胶水,不改变 random toolchanger 输入、OPFS path、WASM path 字符串或
|
只改测试胶水,不改变 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) {
|
function opfsToolTableSeedText(toolNo, pocketNo, zOffset, diameter, comment) {
|
||||||
return `T${toolNo} P${pocketNo} Z${zOffset} D${diameter} ${comment}\n`;
|
return `T${toolNo} P${pocketNo} Z${zOffset} D${diameter} ${comment}\n`;
|
||||||
}
|
}
|
||||||
@@ -9440,6 +9456,31 @@
|
|||||||
|
|
||||||
const browserRandomMachineId = "browser-random-toolchanger";
|
const browserRandomMachineId = "browser-random-toolchanger";
|
||||||
const browserRandomWasmPaths = opfsBrowserSessionWasmPaths("browser-random");
|
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, {
|
const browserRandomTextPaths = await saveMachineTextFiles(browserRandomMachineId, {
|
||||||
ini: [
|
ini: [
|
||||||
"[EMC]",
|
"[EMC]",
|
||||||
@@ -9477,21 +9518,10 @@
|
|||||||
verifyOpfsLoadResult(
|
verifyOpfsLoadResult(
|
||||||
"opfs_load_random_tool_table",
|
"opfs_load_random_tool_table",
|
||||||
loadedRandomSession.toolTable,
|
loadedRandomSession.toolTable,
|
||||||
[
|
opfsRandomToolTableResultLines("load", [
|
||||||
"tooldata_random_toolchanger=1",
|
...browserRandomTools,
|
||||||
"tooldata_load=0",
|
{ resultLines: ["tool_index_for_tool_2=7"] },
|
||||||
"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",
|
|
||||||
],
|
|
||||||
);
|
);
|
||||||
const savedRandomToolTable = await saveMachineToolTableToOpfs(
|
const savedRandomToolTable = await saveMachineToolTableToOpfs(
|
||||||
interp,
|
interp,
|
||||||
@@ -9508,24 +9538,16 @@
|
|||||||
verifyOpfsSaveResult(
|
verifyOpfsSaveResult(
|
||||||
"opfs_save_random_tool_table",
|
"opfs_save_random_tool_table",
|
||||||
savedRandomToolTable,
|
savedRandomToolTable,
|
||||||
[
|
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",
|
]),
|
||||||
],
|
|
||||||
);
|
);
|
||||||
await verifyOpfsMachineFileReadback(
|
await verifyOpfsMachineFileReadback(
|
||||||
"opfs_saved_random_tool_table_text",
|
"opfs_saved_random_tool_table_text",
|
||||||
browserRandomMachineId,
|
browserRandomMachineId,
|
||||||
"toolTable",
|
"toolTable",
|
||||||
[
|
opfsRandomToolTableTextLines(browserRandomTools),
|
||||||
"T2",
|
|
||||||
"P7",
|
|
||||||
";browser random finish tool",
|
|
||||||
"T5",
|
|
||||||
"P9",
|
|
||||||
";browser random rough tool",
|
|
||||||
],
|
|
||||||
);
|
);
|
||||||
|
|
||||||
const iniFileMachineId = "browser-ini-file-session";
|
const iniFileMachineId = "browser-ini-file-session";
|
||||||
|
|||||||
Reference in New Issue
Block a user