Guard browser OPFS session staging

This commit is contained in:
2026-06-13 21:19:26 +08:00
parent 7fae830726
commit 40f95af188
2 changed files with 105 additions and 34 deletions

View File

@@ -4511,6 +4511,30 @@
generatedToolTablePath(toolTable.wasmPath, expectedWasmPath);
}
function assertOpfsSessionStaging(label, session, machineId, expectedWasmPaths) {
if (session.machineId !== machineId) {
throw new Error(`${label}: unexpected machine id ${session.machineId}`);
}
assertOpfsIniStaging(
`${label}_ini`,
session.ini,
`linuxcnc/machines/${machineId}/machine.ini`,
expectedWasmPaths.ini,
);
assertOpfsToolTableStaging(
`${label}_tool_table`,
session.toolTable,
`linuxcnc/machines/${machineId}/tool.tbl`,
expectedWasmPaths.toolTable,
);
assertOpfsParameterStaging(
`${label}_parameters`,
session.parameters,
`linuxcnc/machines/${machineId}/linuxcnc.var`,
expectedWasmPaths.parameters,
);
}
function assertSimConfigStagingPlan(machineRel, plan, expectedWasmDir) {
if (plan.wasmDir !== expectedWasmDir) {
throw new Error(`${machineRel}: browser sim staging root drift`);
@@ -9052,23 +9076,15 @@
toolTableWasmPath: "/work/browser-tool.tbl",
},
);
assertOpfsIniStaging(
"opfs_load_ini_staging",
loadedSession.ini,
"linuxcnc/machines/browser-interp/machine.ini",
"/work/browser-machine.ini",
);
assertOpfsToolTableStaging(
"opfs_load_tool_table_staging",
loadedSession.toolTable,
"linuxcnc/machines/browser-interp/tool.tbl",
"/work/browser-tool.tbl",
);
assertOpfsParameterStaging(
"opfs_restore_parameters_staging",
loadedSession.parameters,
"linuxcnc/machines/browser-interp/linuxcnc.var",
"/work/browser-linuxcnc.var",
assertOpfsSessionStaging(
"opfs_load_session_staging",
loadedSession,
"browser-interp",
{
ini: "/work/browser-machine.ini",
parameters: "/work/browser-linuxcnc.var",
toolTable: "/work/browser-tool.tbl",
},
);
verifyExpectedOutput(
"opfs_restore_parameters",
@@ -9224,23 +9240,15 @@
toolTableWasmPath: "/work/browser-random-tool.tbl",
},
);
assertOpfsIniStaging(
"opfs_load_random_ini_staging",
loadedRandomSession.ini,
"linuxcnc/machines/browser-random-toolchanger/machine.ini",
"/work/browser-random-machine.ini",
);
assertOpfsToolTableStaging(
"opfs_load_random_tool_table_staging",
loadedRandomSession.toolTable,
"linuxcnc/machines/browser-random-toolchanger/tool.tbl",
"/work/browser-random-tool.tbl",
);
assertOpfsParameterStaging(
"opfs_load_random_parameters_staging",
loadedRandomSession.parameters,
"linuxcnc/machines/browser-random-toolchanger/linuxcnc.var",
"/work/browser-random-linuxcnc.var",
assertOpfsSessionStaging(
"opfs_load_random_session_staging",
loadedRandomSession,
"browser-random-toolchanger",
{
ini: "/work/browser-random-machine.ini",
parameters: "/work/browser-random-linuxcnc.var",
toolTable: "/work/browser-random-tool.tbl",
},
);
verifyExpectedOutput(
"opfs_load_random_tool_table",