Guard INI context fixture staging
This commit is contained in:
@@ -4344,6 +4344,45 @@
|
||||
return wasmPath;
|
||||
}
|
||||
|
||||
async function writeIniToolTableFixtureStaging(interp, wasmDir, expectedWasmDir) {
|
||||
if (wasmDir !== expectedWasmDir) {
|
||||
throw new Error("browser_ini_tool_table_staging_root: path drift");
|
||||
}
|
||||
const files = ["ini_tool_table.ini", "ini_tool_table.tbl", "ini_tool_table.ngc"];
|
||||
if (files.length !== new Set(files).size) {
|
||||
throw new Error("browser_ini_tool_table_staging_manifest: list drift");
|
||||
}
|
||||
for (const file of files) {
|
||||
if (`${wasmDir}/${file}` !== `${expectedWasmDir}/${file}`) {
|
||||
throw new Error(`browser_ini_tool_table_${file}_staging: path drift`);
|
||||
}
|
||||
}
|
||||
|
||||
await writeLocalIniFixture(
|
||||
interp,
|
||||
"ini_tool_table.ini",
|
||||
`${wasmDir}/ini_tool_table.ini`,
|
||||
`${expectedWasmDir}/ini_tool_table.ini`,
|
||||
);
|
||||
await writeLocalIniFixture(
|
||||
interp,
|
||||
"ini_tool_table.tbl",
|
||||
`${wasmDir}/ini_tool_table.tbl`,
|
||||
`${expectedWasmDir}/ini_tool_table.tbl`,
|
||||
);
|
||||
await writeLocalGcodeFixture(
|
||||
interp,
|
||||
"ini_tool_table",
|
||||
`${wasmDir}/ini_tool_table.ngc`,
|
||||
`${expectedWasmDir}/ini_tool_table.ngc`,
|
||||
);
|
||||
|
||||
return {
|
||||
iniPath: `${wasmDir}/ini_tool_table.ini`,
|
||||
programPath: `${wasmDir}/ini_tool_table.ngc`,
|
||||
};
|
||||
}
|
||||
|
||||
async function loadSimMachineFiles(machineRel, iniFile, programFile = null) {
|
||||
const iniText = await fetchText(
|
||||
`../../vendor/linuxcnc/configs/sim/${machineRel}/${iniFile}`,
|
||||
@@ -5342,8 +5381,12 @@
|
||||
].join("\n"),
|
||||
);
|
||||
|
||||
const namedParamPath = `/work/${INTERP_INI_FIXTURE}.ngc`;
|
||||
interp.writeTextFile(namedParamPath, namedParamProgramText);
|
||||
const namedParamPath = await writeLocalGcodeFixture(
|
||||
interp,
|
||||
INTERP_INI_FIXTURE,
|
||||
`/work/${INTERP_INI_FIXTURE}.ngc`,
|
||||
`/work/${INTERP_INI_FIXTURE}.ngc`,
|
||||
);
|
||||
verifyExpectedOutput(
|
||||
`${INTERP_INI_FIXTURE}_file`,
|
||||
interp.runFileWithIni(namedParamPath, namedParamIniPath),
|
||||
@@ -5351,25 +5394,23 @@
|
||||
);
|
||||
|
||||
const iniToolTableDir = "/work/browser-ini-tool-table";
|
||||
const iniToolTableIniPath = `${iniToolTableDir}/ini_tool_table.ini`;
|
||||
const iniToolTableProgramPath = `${iniToolTableDir}/ini_tool_table.ngc`;
|
||||
interp.writeTextFile(iniToolTableIniPath, await fetchText("../fixtures/ini/ini_tool_table.ini"));
|
||||
interp.writeTextFile(
|
||||
`${iniToolTableDir}/ini_tool_table.tbl`,
|
||||
await fetchText("../fixtures/ini/ini_tool_table.tbl"),
|
||||
);
|
||||
interp.writeTextFile(
|
||||
iniToolTableProgramPath,
|
||||
await fetchText("../fixtures/gcode/ini_tool_table.ngc"),
|
||||
const iniToolTable = await writeIniToolTableFixtureStaging(
|
||||
interp,
|
||||
iniToolTableDir,
|
||||
"/work/browser-ini-tool-table",
|
||||
);
|
||||
verifyExpectedOutput(
|
||||
"browser_ini_tool_table_file",
|
||||
interp.runFileWithIni(iniToolTableProgramPath, iniToolTableIniPath),
|
||||
interp.runFileWithIni(iniToolTable.programPath, iniToolTable.iniPath),
|
||||
(await fetchText("../fixtures/canon/ini_tool_table.events")).trimEnd(),
|
||||
);
|
||||
|
||||
const baselineIniPath = `/work/${INTERP_BASELINE_INI_FIXTURE}.ngc`;
|
||||
interp.writeTextFile(baselineIniPath, baselineIniProgramText);
|
||||
const baselineIniPath = await writeLocalGcodeFixture(
|
||||
interp,
|
||||
INTERP_BASELINE_INI_FIXTURE,
|
||||
`/work/${INTERP_BASELINE_INI_FIXTURE}.ngc`,
|
||||
`/work/${INTERP_BASELINE_INI_FIXTURE}.ngc`,
|
||||
);
|
||||
verifyExpectedOutput(
|
||||
`${INTERP_BASELINE_INI_FIXTURE}_file`,
|
||||
interp.runFileWithIni(baselineIniPath, namedParamIniPath),
|
||||
|
||||
Reference in New Issue
Block a user