Guard browser custom session tool-table values

This commit is contained in:
2026-06-14 07:07:09 +08:00
parent c260246a8e
commit 4274cda03d
2 changed files with 132 additions and 20 deletions

View File

@@ -4619,6 +4619,28 @@
];
}
function opfsToolTableToolValues(
toolNo,
pocketNo,
zOffset,
diameter,
comment,
loadComment,
readbackZOffset,
readbackDiameter,
) {
return {
toolNo,
pocketNo,
zOffset,
diameter,
comment,
loadComment,
readbackZOffset,
readbackDiameter,
};
}
function toolTableResultLines(tools) {
return tools.flatMap((tool) => tool.resultLines);
}
@@ -9610,13 +9632,26 @@
iniFileParameterFilename,
opfsParameterSeedText(...iniNamedInitialParameterValues),
);
const iniNamedToolTableValues = ["8", "8", "4.5", "0.5", ";browser custom tool"];
const iniNamedToolTableLoadValues = ["8", "8", "4.5", "0.5", "browser custom tool"];
const iniNamedToolTableReadbackValues = ["8", "8", "+4.500000", "+0.500000", ";browser custom tool"];
const iniNamedToolTable = opfsToolTableToolValues(
"8",
"8",
"4.5",
"0.5",
";browser custom tool",
"browser custom tool",
"+4.500000",
"+0.500000",
);
await writeOpfsMachineFile(
iniFileMachineId,
iniFileToolTableFilename,
opfsToolTableSeedText(...iniNamedToolTableValues),
opfsToolTableSeedText(
iniNamedToolTable.toolNo,
iniNamedToolTable.pocketNo,
iniNamedToolTable.zOffset,
iniNamedToolTable.diameter,
iniNamedToolTable.comment,
),
);
const loadedIniFileSession = await loadMachineSessionFromOpfs(
interp,
@@ -9680,10 +9715,10 @@
verifyOpfsLoadResult(
"opfs_load_ini_named_tool_table",
loadedIniFileSession.toolTable,
opfsToolTableResultLines("load", iniNamedToolTableLoadValues[0], iniNamedToolTableLoadValues[1], [
`tool_1.z=${iniNamedToolTableLoadValues[2]}`,
`tool_1.diameter=${iniNamedToolTableLoadValues[3]}`,
`tool_1.comment=${iniNamedToolTableLoadValues[4]}`,
opfsToolTableResultLines("load", iniNamedToolTable.toolNo, iniNamedToolTable.pocketNo, [
`tool_1.z=${iniNamedToolTable.zOffset}`,
`tool_1.diameter=${iniNamedToolTable.diameter}`,
`tool_1.comment=${iniNamedToolTable.loadComment}`,
]),
);
const savedIniNamedToolTable = await saveMachineToolTableToOpfs(
@@ -9701,12 +9736,18 @@
verifyOpfsSaveResult(
"opfs_save_ini_named_tool_table",
savedIniNamedToolTable,
opfsToolTableResultLines("save", iniNamedToolTableValues[0], iniNamedToolTableValues[1]),
opfsToolTableResultLines("save", iniNamedToolTable.toolNo, iniNamedToolTable.pocketNo),
);
await verifyOpfsReadback(
"opfs_saved_ini_named_tool_table_text",
loadedIniFileSession.toolTable.opfsPath,
opfsToolTableTextLines(...iniNamedToolTableReadbackValues),
opfsToolTableTextLines(
iniNamedToolTable.toolNo,
iniNamedToolTable.pocketNo,
iniNamedToolTable.readbackZOffset,
iniNamedToolTable.readbackDiameter,
iniNamedToolTable.comment,
),
);
const iniOverrideMachineId = "browser-ini-override-session";
@@ -9734,13 +9775,26 @@
explicitParameterFilename,
opfsParameterSeedText(...explicitInitialParameterValues),
);
const explicitToolTableValues = ["9", "9", "5.5", "0.625", ";browser explicit tool"];
const explicitToolTableLoadValues = ["9", "9", "5.5", "0.625", "browser explicit tool"];
const explicitToolTableReadbackValues = ["9", "9", "+5.500000", "+0.625000", ";browser explicit tool"];
const explicitToolTable = opfsToolTableToolValues(
"9",
"9",
"5.5",
"0.625",
";browser explicit tool",
"browser explicit tool",
"+5.500000",
"+0.625000",
);
await writeOpfsMachineFile(
iniOverrideMachineId,
explicitToolTableFilename,
opfsToolTableSeedText(...explicitToolTableValues),
opfsToolTableSeedText(
explicitToolTable.toolNo,
explicitToolTable.pocketNo,
explicitToolTable.zOffset,
explicitToolTable.diameter,
explicitToolTable.comment,
),
);
const loadedIniOverrideSession = await loadMachineSessionFromOpfs(
interp,
@@ -9777,10 +9831,10 @@
verifyOpfsLoadResult(
"opfs_load_explicit_tool_table",
loadedIniOverrideSession.toolTable,
opfsToolTableResultLines("load", explicitToolTableLoadValues[0], explicitToolTableLoadValues[1], [
`tool_1.z=${explicitToolTableLoadValues[2]}`,
`tool_1.diameter=${explicitToolTableLoadValues[3]}`,
`tool_1.comment=${explicitToolTableLoadValues[4]}`,
opfsToolTableResultLines("load", explicitToolTable.toolNo, explicitToolTable.pocketNo, [
`tool_1.z=${explicitToolTable.zOffset}`,
`tool_1.diameter=${explicitToolTable.diameter}`,
`tool_1.comment=${explicitToolTable.loadComment}`,
]),
);
const explicitParameterValues = [51.25, 102.5, 7.5, 202];
@@ -9829,12 +9883,18 @@
verifyOpfsSaveResult(
"opfs_save_explicit_tool_table",
savedExplicitToolTable,
opfsToolTableResultLines("save", explicitToolTableValues[0], explicitToolTableValues[1]),
opfsToolTableResultLines("save", explicitToolTable.toolNo, explicitToolTable.pocketNo),
);
await verifyOpfsReadback(
"opfs_saved_explicit_tool_table_text",
loadedIniOverrideSession.toolTable.opfsPath,
opfsToolTableTextLines(...explicitToolTableReadbackValues),
opfsToolTableTextLines(
explicitToolTable.toolNo,
explicitToolTable.pocketNo,
explicitToolTable.readbackZOffset,
explicitToolTable.readbackDiameter,
explicitToolTable.comment,
),
);
await verifyOpfsInvalidIniSessionRejects(