Guard browser OPFS save result helper
This commit is contained in:
50
text8.txt
50
text8.txt
@@ -275,3 +275,53 @@ host_wasm_opfs_browser_smokes=ok
|
|||||||
verification helper。优先只收敛 `wasm-port/tests/browser/interp_smoke.html` 中
|
verification helper。优先只收敛 `wasm-port/tests/browser/interp_smoke.html` 中
|
||||||
`saveMachineParametersToOpfs(...)` / `saveMachineToolTableToOpfs(...)` 的 result
|
`saveMachineParametersToOpfs(...)` / `saveMachineToolTableToOpfs(...)` 的 result
|
||||||
校验胶水,不改变 expected text,不触碰 runtime bridge 与 LinuxCNC 语义。
|
校验胶水,不改变 expected text,不触碰 runtime bridge 与 LinuxCNC 语义。
|
||||||
|
|
||||||
|
八、2026-06-14 继续执行记录:browser OPFS save result helper guard
|
||||||
|
|
||||||
|
本轮按上一条下一步建议继续推进 OPFS save result verification 小批收敛,范围仍只触及
|
||||||
|
`wasm-port/tests/browser/interp_smoke.html` 的 browser/OPFS test glue。
|
||||||
|
|
||||||
|
完成内容:
|
||||||
|
|
||||||
|
- 新增 `verifyOpfsSaveResult(...)`,统一 OPFS save helper result 的
|
||||||
|
`verifyExpectedOutput(...)` 精确校验入口;
|
||||||
|
- 收敛 `saveMachineParametersToOpfs(...)` / `saveMachineToolTableToOpfs(...)`
|
||||||
|
后续 7 个 result 校验调用;
|
||||||
|
- expected output 行内容未改,只把 `.result` 读取和 `join("\n")` 胶水放入 helper;
|
||||||
|
- 未改变 OPFS bridge behavior、file-service、path-model、SDK planner、interpreter、
|
||||||
|
INI、tool、parameter 或 LinuxCNC-owned runtime semantics。
|
||||||
|
|
||||||
|
验证已通过:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
git diff --check
|
||||||
|
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
|
||||||
|
SKIP_INI_BUILD=1 SKIP_INTERP_BUILD=1 wasm-port/tests/browser/verify_interp_browser.sh
|
||||||
|
wasm-port/tests/host/verify_host_smokes.sh
|
||||||
|
```
|
||||||
|
|
||||||
|
关键输出:
|
||||||
|
|
||||||
|
```text
|
||||||
|
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
|
||||||
|
browser_interp_smoke=ok
|
||||||
|
host_wasm_opfs_browser_smokes=ok
|
||||||
|
```
|
||||||
|
|
||||||
|
下一步建议:
|
||||||
|
|
||||||
|
继续沿 browser/OPFS boundary guard 方向小批量推进。优先扫描
|
||||||
|
`wasm-port/tests/browser/interp_smoke.html` 里 OPFS load result 的重复
|
||||||
|
`verifyExpectedOutput(...)` 调用,若 `loadedSession.parameters.result` /
|
||||||
|
`loadedSession.toolTable.result` 等形态足够一致,可抽一个只处理 result 精确校验的
|
||||||
|
helper。仍不改变 expected text,不触碰 runtime bridge、file-service 或 LinuxCNC
|
||||||
|
语义。
|
||||||
|
|||||||
@@ -4535,6 +4535,10 @@
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function verifyOpfsSaveResult(label, saveResult, expectedLines) {
|
||||||
|
verifyExpectedOutput(label, saveResult.result, expectedLines.join("\n"));
|
||||||
|
}
|
||||||
|
|
||||||
async function verifyOpfsSavedText(label, loadActualText, expectedText) {
|
async function verifyOpfsSavedText(label, loadActualText, expectedText) {
|
||||||
verifyExpectedOutput(label, await loadActualText(), expectedText);
|
verifyExpectedOutput(label, await loadActualText(), expectedText);
|
||||||
}
|
}
|
||||||
@@ -9237,16 +9241,16 @@
|
|||||||
"linuxcnc.var",
|
"linuxcnc.var",
|
||||||
browserInterpParameterWasmPath,
|
browserInterpParameterWasmPath,
|
||||||
);
|
);
|
||||||
verifyExpectedOutput(
|
verifyOpfsSaveResult(
|
||||||
"opfs_save_parameters",
|
"opfs_save_parameters",
|
||||||
savedParameters.result,
|
savedParameters,
|
||||||
[
|
[
|
||||||
"save_parameters=0",
|
"save_parameters=0",
|
||||||
"parameter_5161=12.34",
|
"parameter_5161=12.34",
|
||||||
"parameter_5162=56.78",
|
"parameter_5162=56.78",
|
||||||
"parameter_5221=9.87",
|
"parameter_5221=9.87",
|
||||||
"parameter_5399=66.6",
|
"parameter_5399=66.6",
|
||||||
].join("\n"),
|
],
|
||||||
);
|
);
|
||||||
await verifyOpfsMachineFileReadback(
|
await verifyOpfsMachineFileReadback(
|
||||||
"opfs_saved_parameter_text",
|
"opfs_saved_parameter_text",
|
||||||
@@ -9283,14 +9287,14 @@
|
|||||||
"tool.tbl",
|
"tool.tbl",
|
||||||
browserInterpToolTableWasmPath,
|
browserInterpToolTableWasmPath,
|
||||||
);
|
);
|
||||||
verifyExpectedOutput(
|
verifyOpfsSaveResult(
|
||||||
"opfs_save_tool_table",
|
"opfs_save_tool_table",
|
||||||
savedToolTable.result,
|
savedToolTable,
|
||||||
[
|
[
|
||||||
"tooldata_save=0",
|
"tooldata_save=0",
|
||||||
"tool_1.toolno=2",
|
"tool_1.toolno=2",
|
||||||
"tool_1.pocketno=7",
|
"tool_1.pocketno=7",
|
||||||
].join("\n"),
|
],
|
||||||
);
|
);
|
||||||
await verifyOpfsMachineFileReadback(
|
await verifyOpfsMachineFileReadback(
|
||||||
"opfs_saved_tool_table_text",
|
"opfs_saved_tool_table_text",
|
||||||
@@ -9393,14 +9397,14 @@
|
|||||||
"tool.tbl",
|
"tool.tbl",
|
||||||
browserRandomToolTableWasmPath,
|
browserRandomToolTableWasmPath,
|
||||||
);
|
);
|
||||||
verifyExpectedOutput(
|
verifyOpfsSaveResult(
|
||||||
"opfs_save_random_tool_table",
|
"opfs_save_random_tool_table",
|
||||||
savedRandomToolTable.result,
|
savedRandomToolTable,
|
||||||
[
|
[
|
||||||
"tooldata_save=0",
|
"tooldata_save=0",
|
||||||
"tool_pocket_7.toolno=2",
|
"tool_pocket_7.toolno=2",
|
||||||
"tool_pocket_9.toolno=5",
|
"tool_pocket_9.toolno=5",
|
||||||
].join("\n"),
|
],
|
||||||
);
|
);
|
||||||
await verifyOpfsMachineFileReadback(
|
await verifyOpfsMachineFileReadback(
|
||||||
"opfs_saved_random_tool_table_text",
|
"opfs_saved_random_tool_table_text",
|
||||||
@@ -9509,16 +9513,16 @@
|
|||||||
iniFileParameterFilename,
|
iniFileParameterFilename,
|
||||||
opfsCustomSessionWasmPath(iniFileParameterFilename),
|
opfsCustomSessionWasmPath(iniFileParameterFilename),
|
||||||
);
|
);
|
||||||
verifyExpectedOutput(
|
verifyOpfsSaveResult(
|
||||||
"opfs_save_ini_named_parameter_file",
|
"opfs_save_ini_named_parameter_file",
|
||||||
savedIniNamedParameters.result,
|
savedIniNamedParameters,
|
||||||
[
|
[
|
||||||
"save_parameters=0",
|
"save_parameters=0",
|
||||||
"parameter_5161=33.75",
|
"parameter_5161=33.75",
|
||||||
"parameter_5162=67.5",
|
"parameter_5162=67.5",
|
||||||
"parameter_5221=5.25",
|
"parameter_5221=5.25",
|
||||||
"parameter_5399=199",
|
"parameter_5399=199",
|
||||||
].join("\n"),
|
],
|
||||||
);
|
);
|
||||||
await verifyOpfsReadback(
|
await verifyOpfsReadback(
|
||||||
"opfs_saved_ini_named_parameter_text",
|
"opfs_saved_ini_named_parameter_text",
|
||||||
@@ -9567,14 +9571,14 @@
|
|||||||
iniFileToolTableFilename,
|
iniFileToolTableFilename,
|
||||||
opfsCustomSessionWasmPath(iniFileToolTableFilename),
|
opfsCustomSessionWasmPath(iniFileToolTableFilename),
|
||||||
);
|
);
|
||||||
verifyExpectedOutput(
|
verifyOpfsSaveResult(
|
||||||
"opfs_save_ini_named_tool_table",
|
"opfs_save_ini_named_tool_table",
|
||||||
savedIniNamedToolTable.result,
|
savedIniNamedToolTable,
|
||||||
[
|
[
|
||||||
"tooldata_save=0",
|
"tooldata_save=0",
|
||||||
"tool_1.toolno=8",
|
"tool_1.toolno=8",
|
||||||
"tool_1.pocketno=8",
|
"tool_1.pocketno=8",
|
||||||
].join("\n"),
|
],
|
||||||
);
|
);
|
||||||
await verifyOpfsSavedText(
|
await verifyOpfsSavedText(
|
||||||
"opfs_saved_ini_named_tool_table_text",
|
"opfs_saved_ini_named_tool_table_text",
|
||||||
@@ -9695,16 +9699,16 @@
|
|||||||
explicitParameterFilename,
|
explicitParameterFilename,
|
||||||
opfsCustomSessionWasmPath(explicitParameterFilename),
|
opfsCustomSessionWasmPath(explicitParameterFilename),
|
||||||
);
|
);
|
||||||
verifyExpectedOutput(
|
verifyOpfsSaveResult(
|
||||||
"opfs_save_explicit_parameter_file",
|
"opfs_save_explicit_parameter_file",
|
||||||
savedExplicitParameters.result,
|
savedExplicitParameters,
|
||||||
[
|
[
|
||||||
"save_parameters=0",
|
"save_parameters=0",
|
||||||
"parameter_5161=51.25",
|
"parameter_5161=51.25",
|
||||||
"parameter_5162=102.5",
|
"parameter_5162=102.5",
|
||||||
"parameter_5221=7.5",
|
"parameter_5221=7.5",
|
||||||
"parameter_5399=202",
|
"parameter_5399=202",
|
||||||
].join("\n"),
|
],
|
||||||
);
|
);
|
||||||
await verifyOpfsSavedText(
|
await verifyOpfsSavedText(
|
||||||
"opfs_saved_explicit_parameter_text",
|
"opfs_saved_explicit_parameter_text",
|
||||||
@@ -9741,14 +9745,14 @@
|
|||||||
explicitToolTableFilename,
|
explicitToolTableFilename,
|
||||||
opfsCustomSessionWasmPath(explicitToolTableFilename),
|
opfsCustomSessionWasmPath(explicitToolTableFilename),
|
||||||
);
|
);
|
||||||
verifyExpectedOutput(
|
verifyOpfsSaveResult(
|
||||||
"opfs_save_explicit_tool_table",
|
"opfs_save_explicit_tool_table",
|
||||||
savedExplicitToolTable.result,
|
savedExplicitToolTable,
|
||||||
[
|
[
|
||||||
"tooldata_save=0",
|
"tooldata_save=0",
|
||||||
"tool_1.toolno=9",
|
"tool_1.toolno=9",
|
||||||
"tool_1.pocketno=9",
|
"tool_1.pocketno=9",
|
||||||
].join("\n"),
|
],
|
||||||
);
|
);
|
||||||
await verifyOpfsSavedText(
|
await verifyOpfsSavedText(
|
||||||
"opfs_saved_explicit_tool_table_text",
|
"opfs_saved_explicit_tool_table_text",
|
||||||
|
|||||||
Reference in New Issue
Block a user