按规划继续工作

结论:补齐显式工具表 override 路径的浏览器 OPFS 保存读回验证,继续通过 vendored LinuxCNC tooldata_save 路径覆盖。
This commit is contained in:
2026-06-08 12:02:50 +08:00
parent 98d0f2963f
commit 38fb69e535
2 changed files with 36 additions and 2 deletions

View File

@@ -304,8 +304,8 @@ non-random and random-toolchanger `tooldata_init()` branches, with the SDK
only copying text into the Emscripten filesystem and calling the exported C only copying text into the Emscripten filesystem and calling the exported C
ABI; the browser smoke checks the random-toolchanger `tooldata_save()` C ABI ABI; the browser smoke checks the random-toolchanger `tooldata_save()` C ABI
result before OPFS persistence writes the saved table text back, and verifies result before OPFS persistence writes the saved table text back, and verifies
that an INI-derived custom tool-table OPFS path can be saved and read back that INI-derived custom and explicit host override tool-table OPFS paths can
after the table is loaded through vendored LinuxCNC. The same be saved and read back after the table is loaded through vendored LinuxCNC. The same
Node WASM and browser interpreter smokes now validate the exported Node WASM and browser interpreter smokes now validate the exported
`Interp::init()`/`Interp::synch()` probe for initialization canonical events, `Interp::init()`/`Interp::synch()` probe for initialization canonical events,
metric/inch `emcStatus` machine-unit conversion, and current/selected tool metric/inch `emcStatus` machine-unit conversion, and current/selected tool

View File

@@ -761,6 +761,40 @@
"5399 101", "5399 101",
].join("\n"), ].join("\n"),
); );
const savedExplicitToolTable = await saveMachineToolTableToOpfs(
interp,
"browser-ini-override-session",
{
opfsPath: loadedIniOverrideSession.toolTable.opfsPath,
wasmPath: loadedIniOverrideSession.toolTable.wasmPath,
},
);
if (
savedExplicitToolTable.opfsPath !==
"linuxcnc/machines/browser-ini-override-session/browser-explicit-tool.tbl"
) {
throw new Error(`unexpected explicit saved tool path: ${savedExplicitToolTable.opfsPath}`);
}
verifyExpectedOutput(
"opfs_save_explicit_tool_table",
savedExplicitToolTable.result,
[
"tooldata_save=0",
"tool_1.toolno=9",
"tool_1.pocketno=9",
].join("\n"),
);
verifyExpectedOutput(
"opfs_saved_explicit_tool_table_text",
await loadTextFile(loadedIniOverrideSession.toolTable.opfsPath),
[
"T9",
"P9",
"Z+5.500000",
"D+0.625000",
";browser explicit tool",
].join("\n"),
);
await saveMachineTextFiles("browser-invalid-param-file-session", { await saveMachineTextFiles("browser-invalid-param-file-session", {
ini: [ ini: [