Guard browser OPFS load result helper
This commit is contained in:
46
text8.txt
46
text8.txt
@@ -325,3 +325,49 @@ host_wasm_opfs_browser_smokes=ok
|
|||||||
`loadedSession.toolTable.result` 等形态足够一致,可抽一个只处理 result 精确校验的
|
`loadedSession.toolTable.result` 等形态足够一致,可抽一个只处理 result 精确校验的
|
||||||
helper。仍不改变 expected text,不触碰 runtime bridge、file-service 或 LinuxCNC
|
helper。仍不改变 expected text,不触碰 runtime bridge、file-service 或 LinuxCNC
|
||||||
语义。
|
语义。
|
||||||
|
|
||||||
|
九、2026-06-14 继续执行记录:browser OPFS load result helper guard
|
||||||
|
|
||||||
|
本轮按上一条下一步建议继续推进 OPFS load result verification 小批收敛,范围仍只触及
|
||||||
|
`wasm-port/tests/browser/interp_smoke.html` 的 browser/OPFS test glue。
|
||||||
|
|
||||||
|
完成内容:
|
||||||
|
|
||||||
|
- 新增 `verifyOpfsLoadResult(...)`,统一 OPFS load helper result 的
|
||||||
|
`verifyExpectedOutput(...)` 精确校验入口;
|
||||||
|
- 收敛 7 个 `loadedSession.*.result` / `loadedIni*Session.*.result` 的 load 校验调用;
|
||||||
|
- 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 方向推进,但进入更细一层的 load/save 对称收敛审视:
|
||||||
|
检查 `opfs_saved_*_text` 与 `opfs_load_*` 附近是否还能抽出更小的 pair helper,前提是
|
||||||
|
不让 helper 掩盖 expected text 或改变 direct-file 与 machine-file 的边界。
|
||||||
|
|||||||
@@ -4539,6 +4539,10 @@
|
|||||||
verifyExpectedOutput(label, saveResult.result, expectedLines.join("\n"));
|
verifyExpectedOutput(label, saveResult.result, expectedLines.join("\n"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function verifyOpfsLoadResult(label, loadResult, expectedLines) {
|
||||||
|
verifyExpectedOutput(label, loadResult.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);
|
||||||
}
|
}
|
||||||
@@ -9195,20 +9199,20 @@
|
|||||||
),
|
),
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
verifyExpectedOutput(
|
verifyOpfsLoadResult(
|
||||||
"opfs_restore_parameters",
|
"opfs_restore_parameters",
|
||||||
loadedSession.parameters.result,
|
loadedSession.parameters,
|
||||||
[
|
[
|
||||||
"restore_parameters=0",
|
"restore_parameters=0",
|
||||||
"parameter_5161=10.5",
|
"parameter_5161=10.5",
|
||||||
"parameter_5162=20.25",
|
"parameter_5162=20.25",
|
||||||
"parameter_5221=2.25",
|
"parameter_5221=2.25",
|
||||||
"parameter_5399=44",
|
"parameter_5399=44",
|
||||||
].join("\n"),
|
],
|
||||||
);
|
);
|
||||||
verifyExpectedOutput(
|
verifyOpfsLoadResult(
|
||||||
"opfs_load_tool_table",
|
"opfs_load_tool_table",
|
||||||
loadedSession.toolTable.result,
|
loadedSession.toolTable,
|
||||||
[
|
[
|
||||||
"tooldata_load=0",
|
"tooldata_load=0",
|
||||||
"tool_1.toolno=2",
|
"tool_1.toolno=2",
|
||||||
@@ -9220,7 +9224,7 @@
|
|||||||
"tool_1.orientation=4",
|
"tool_1.orientation=4",
|
||||||
"tool_1.comment=browser finish tool",
|
"tool_1.comment=browser finish tool",
|
||||||
"tool_index_for_tool_2=1",
|
"tool_index_for_tool_2=1",
|
||||||
].join("\n"),
|
],
|
||||||
);
|
);
|
||||||
const savedParameters = await saveMachineParametersToOpfs(
|
const savedParameters = await saveMachineParametersToOpfs(
|
||||||
interp,
|
interp,
|
||||||
@@ -9366,9 +9370,9 @@
|
|||||||
),
|
),
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
verifyExpectedOutput(
|
verifyOpfsLoadResult(
|
||||||
"opfs_load_random_tool_table",
|
"opfs_load_random_tool_table",
|
||||||
loadedRandomSession.toolTable.result,
|
loadedRandomSession.toolTable,
|
||||||
[
|
[
|
||||||
"tooldata_random_toolchanger=1",
|
"tooldata_random_toolchanger=1",
|
||||||
"tooldata_load=0",
|
"tooldata_load=0",
|
||||||
@@ -9383,7 +9387,7 @@
|
|||||||
"tool_pocket_9.toolno=5",
|
"tool_pocket_9.toolno=5",
|
||||||
"tool_pocket_9.pocketno=9",
|
"tool_pocket_9.pocketno=9",
|
||||||
"tool_index_for_tool_2=7",
|
"tool_index_for_tool_2=7",
|
||||||
].join("\n"),
|
],
|
||||||
);
|
);
|
||||||
const savedRandomToolTable = await saveMachineToolTableToOpfs(
|
const savedRandomToolTable = await saveMachineToolTableToOpfs(
|
||||||
interp,
|
interp,
|
||||||
@@ -9480,16 +9484,16 @@
|
|||||||
iniFileIniWasmPath,
|
iniFileIniWasmPath,
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
verifyExpectedOutput(
|
verifyOpfsLoadResult(
|
||||||
"opfs_load_ini_named_parameter_file",
|
"opfs_load_ini_named_parameter_file",
|
||||||
loadedIniFileSession.parameters.result,
|
loadedIniFileSession.parameters,
|
||||||
[
|
[
|
||||||
"restore_parameters=0",
|
"restore_parameters=0",
|
||||||
"parameter_5161=31.25",
|
"parameter_5161=31.25",
|
||||||
"parameter_5162=62.5",
|
"parameter_5162=62.5",
|
||||||
"parameter_5221=4.5",
|
"parameter_5221=4.5",
|
||||||
"parameter_5399=99",
|
"parameter_5399=99",
|
||||||
].join("\n"),
|
],
|
||||||
);
|
);
|
||||||
const savedIniNamedParameters = await saveMachineParametersToOpfs(
|
const savedIniNamedParameters = await saveMachineParametersToOpfs(
|
||||||
interp,
|
interp,
|
||||||
@@ -9544,9 +9548,9 @@
|
|||||||
"5399 99",
|
"5399 99",
|
||||||
].join("\n"),
|
].join("\n"),
|
||||||
);
|
);
|
||||||
verifyExpectedOutput(
|
verifyOpfsLoadResult(
|
||||||
"opfs_load_ini_named_tool_table",
|
"opfs_load_ini_named_tool_table",
|
||||||
loadedIniFileSession.toolTable.result,
|
loadedIniFileSession.toolTable,
|
||||||
[
|
[
|
||||||
"tooldata_load=0",
|
"tooldata_load=0",
|
||||||
"tool_1.toolno=8",
|
"tool_1.toolno=8",
|
||||||
@@ -9554,7 +9558,7 @@
|
|||||||
"tool_1.z=4.5",
|
"tool_1.z=4.5",
|
||||||
"tool_1.diameter=0.5",
|
"tool_1.diameter=0.5",
|
||||||
"tool_1.comment=browser custom tool",
|
"tool_1.comment=browser custom tool",
|
||||||
].join("\n"),
|
],
|
||||||
);
|
);
|
||||||
const savedIniNamedToolTable = await saveMachineToolTableToOpfs(
|
const savedIniNamedToolTable = await saveMachineToolTableToOpfs(
|
||||||
interp,
|
interp,
|
||||||
@@ -9654,20 +9658,20 @@
|
|||||||
iniOverrideIniWasmPath,
|
iniOverrideIniWasmPath,
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
verifyExpectedOutput(
|
verifyOpfsLoadResult(
|
||||||
"opfs_load_explicit_parameter_file",
|
"opfs_load_explicit_parameter_file",
|
||||||
loadedIniOverrideSession.parameters.result,
|
loadedIniOverrideSession.parameters,
|
||||||
[
|
[
|
||||||
"restore_parameters=0",
|
"restore_parameters=0",
|
||||||
"parameter_5161=41.25",
|
"parameter_5161=41.25",
|
||||||
"parameter_5162=82.5",
|
"parameter_5162=82.5",
|
||||||
"parameter_5221=6.5",
|
"parameter_5221=6.5",
|
||||||
"parameter_5399=101",
|
"parameter_5399=101",
|
||||||
].join("\n"),
|
],
|
||||||
);
|
);
|
||||||
verifyExpectedOutput(
|
verifyOpfsLoadResult(
|
||||||
"opfs_load_explicit_tool_table",
|
"opfs_load_explicit_tool_table",
|
||||||
loadedIniOverrideSession.toolTable.result,
|
loadedIniOverrideSession.toolTable,
|
||||||
[
|
[
|
||||||
"tooldata_load=0",
|
"tooldata_load=0",
|
||||||
"tool_1.toolno=9",
|
"tool_1.toolno=9",
|
||||||
@@ -9675,7 +9679,7 @@
|
|||||||
"tool_1.z=5.5",
|
"tool_1.z=5.5",
|
||||||
"tool_1.diameter=0.625",
|
"tool_1.diameter=0.625",
|
||||||
"tool_1.comment=browser explicit tool",
|
"tool_1.comment=browser explicit tool",
|
||||||
].join("\n"),
|
],
|
||||||
);
|
);
|
||||||
const savedExplicitParameters = await saveMachineParametersToOpfs(
|
const savedExplicitParameters = await saveMachineParametersToOpfs(
|
||||||
interp,
|
interp,
|
||||||
|
|||||||
Reference in New Issue
Block a user