Guard browser OPFS tool-table staging
This commit is contained in:
@@ -4472,6 +4472,13 @@
|
||||
return checkedPath;
|
||||
}
|
||||
|
||||
function assertOpfsToolTableStaging(label, toolTable, expectedOpfsPath, expectedWasmPath) {
|
||||
if (toolTable.opfsPath !== expectedOpfsPath) {
|
||||
throw new Error(`${label}: unexpected tool table OPFS path ${toolTable.opfsPath}`);
|
||||
}
|
||||
generatedToolTablePath(toolTable.wasmPath, expectedWasmPath);
|
||||
}
|
||||
|
||||
async function loadSimMachineFiles(machineRel, iniFile, programFile = null) {
|
||||
const iniText = await fetchText(
|
||||
`../../vendor/linuxcnc/configs/sim/${machineRel}/${iniFile}`,
|
||||
@@ -8977,6 +8984,12 @@
|
||||
toolTableWasmPath: "/work/browser-tool.tbl",
|
||||
},
|
||||
);
|
||||
assertOpfsToolTableStaging(
|
||||
"opfs_load_tool_table_staging",
|
||||
loadedSession.toolTable,
|
||||
"linuxcnc/machines/browser-interp/tool.tbl",
|
||||
"/work/browser-tool.tbl",
|
||||
);
|
||||
verifyExpectedOutput(
|
||||
"opfs_restore_parameters",
|
||||
loadedSession.parameters.result,
|
||||
@@ -9061,6 +9074,12 @@
|
||||
"browser-interp",
|
||||
{ wasmPath: "/work/browser-tool.tbl" },
|
||||
);
|
||||
assertOpfsToolTableStaging(
|
||||
"opfs_save_tool_table_staging",
|
||||
savedToolTable,
|
||||
"linuxcnc/machines/browser-interp/tool.tbl",
|
||||
"/work/browser-tool.tbl",
|
||||
);
|
||||
verifyExpectedOutput(
|
||||
"opfs_save_tool_table",
|
||||
savedToolTable.result,
|
||||
@@ -9119,18 +9138,18 @@
|
||||
toolTableWasmPath: "/work/browser-random-tool.tbl",
|
||||
},
|
||||
);
|
||||
assertOpfsToolTableStaging(
|
||||
"opfs_load_random_tool_table_staging",
|
||||
loadedRandomSession.toolTable,
|
||||
"linuxcnc/machines/browser-random-toolchanger/tool.tbl",
|
||||
"/work/browser-random-tool.tbl",
|
||||
);
|
||||
if (
|
||||
loadedRandomSession.parameters.opfsPath !==
|
||||
"linuxcnc/machines/browser-random-toolchanger/linuxcnc.var"
|
||||
) {
|
||||
throw new Error(`unexpected default parameter path: ${loadedRandomSession.parameters.opfsPath}`);
|
||||
}
|
||||
if (
|
||||
loadedRandomSession.toolTable.opfsPath !==
|
||||
"linuxcnc/machines/browser-random-toolchanger/tool.tbl"
|
||||
) {
|
||||
throw new Error(`unexpected default tool path: ${loadedRandomSession.toolTable.opfsPath}`);
|
||||
}
|
||||
verifyExpectedOutput(
|
||||
"opfs_load_random_tool_table",
|
||||
loadedRandomSession.toolTable.result,
|
||||
@@ -9155,6 +9174,12 @@
|
||||
"browser-random-toolchanger",
|
||||
{ wasmPath: "/work/browser-random-tool.tbl" },
|
||||
);
|
||||
assertOpfsToolTableStaging(
|
||||
"opfs_save_random_tool_table_staging",
|
||||
savedRandomToolTable,
|
||||
"linuxcnc/machines/browser-random-toolchanger/tool.tbl",
|
||||
"/work/browser-random-tool.tbl",
|
||||
);
|
||||
verifyExpectedOutput(
|
||||
"opfs_save_random_tool_table",
|
||||
savedRandomToolTable.result,
|
||||
@@ -9218,18 +9243,18 @@
|
||||
toolTableWasmPath: "/work/browser-custom-tool.tbl",
|
||||
},
|
||||
);
|
||||
assertOpfsToolTableStaging(
|
||||
"opfs_load_ini_named_tool_table_staging",
|
||||
loadedIniFileSession.toolTable,
|
||||
"linuxcnc/machines/browser-ini-file-session/browser-custom-tool.tbl",
|
||||
"/work/browser-custom-tool.tbl",
|
||||
);
|
||||
if (
|
||||
loadedIniFileSession.parameters.opfsPath !==
|
||||
"linuxcnc/machines/browser-ini-file-session/browser-custom.var"
|
||||
) {
|
||||
throw new Error(`unexpected custom parameter path: ${loadedIniFileSession.parameters.opfsPath}`);
|
||||
}
|
||||
if (
|
||||
loadedIniFileSession.toolTable.opfsPath !==
|
||||
"linuxcnc/machines/browser-ini-file-session/browser-custom-tool.tbl"
|
||||
) {
|
||||
throw new Error(`unexpected custom tool path: ${loadedIniFileSession.toolTable.opfsPath}`);
|
||||
}
|
||||
verifyExpectedOutput(
|
||||
"opfs_load_ini_named_parameter_file",
|
||||
loadedIniFileSession.parameters.result,
|
||||
@@ -9319,6 +9344,12 @@
|
||||
wasmPath: loadedIniFileSession.toolTable.wasmPath,
|
||||
},
|
||||
);
|
||||
assertOpfsToolTableStaging(
|
||||
"opfs_save_ini_named_tool_table_staging",
|
||||
savedIniNamedToolTable,
|
||||
"linuxcnc/machines/browser-ini-file-session/browser-custom-tool.tbl",
|
||||
"/work/browser-custom-tool.tbl",
|
||||
);
|
||||
verifyExpectedOutput(
|
||||
"opfs_save_ini_named_tool_table",
|
||||
savedIniNamedToolTable.result,
|
||||
@@ -9380,18 +9411,18 @@
|
||||
toolTableWasmPath: "/work/browser-explicit-tool.tbl",
|
||||
},
|
||||
);
|
||||
assertOpfsToolTableStaging(
|
||||
"opfs_load_explicit_tool_table_staging",
|
||||
loadedIniOverrideSession.toolTable,
|
||||
"linuxcnc/machines/browser-ini-override-session/browser-explicit-tool.tbl",
|
||||
"/work/browser-explicit-tool.tbl",
|
||||
);
|
||||
if (
|
||||
loadedIniOverrideSession.parameters.opfsPath !==
|
||||
"linuxcnc/machines/browser-ini-override-session/browser-explicit.var"
|
||||
) {
|
||||
throw new Error(`unexpected explicit parameter path: ${loadedIniOverrideSession.parameters.opfsPath}`);
|
||||
}
|
||||
if (
|
||||
loadedIniOverrideSession.toolTable.opfsPath !==
|
||||
"linuxcnc/machines/browser-ini-override-session/browser-explicit-tool.tbl"
|
||||
) {
|
||||
throw new Error(`unexpected explicit tool path: ${loadedIniOverrideSession.toolTable.opfsPath}`);
|
||||
}
|
||||
verifyExpectedOutput(
|
||||
"opfs_load_explicit_parameter_file",
|
||||
loadedIniOverrideSession.parameters.result,
|
||||
@@ -9481,12 +9512,12 @@
|
||||
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}`);
|
||||
}
|
||||
assertOpfsToolTableStaging(
|
||||
"opfs_save_explicit_tool_table_staging",
|
||||
savedExplicitToolTable,
|
||||
"linuxcnc/machines/browser-ini-override-session/browser-explicit-tool.tbl",
|
||||
"/work/browser-explicit-tool.tbl",
|
||||
);
|
||||
verifyExpectedOutput(
|
||||
"opfs_save_explicit_tool_table",
|
||||
savedExplicitToolTable.result,
|
||||
|
||||
Reference in New Issue
Block a user