Guard INI context fixture staging
This commit is contained in:
@@ -133,6 +133,24 @@ function writeLocalErrorGcodeFixture(fixtureName, wasmPath, expectedWasmPath, ta
|
||||
return wasmPath;
|
||||
}
|
||||
|
||||
function writeIniToolTableFixtureStaging(wasmDir, expectedWasmDir, targetInterp = interp) {
|
||||
assert.equal(wasmDir, expectedWasmDir, "ini_tool_table staging root drift");
|
||||
const files = ["ini_tool_table.ini", "ini_tool_table.tbl", "ini_tool_table.ngc"];
|
||||
assert.equal(new Set(files).size, files.length, "ini_tool_table staging manifest duplicate");
|
||||
for (const file of files) {
|
||||
assert.equal(`${wasmDir}/${file}`, `${expectedWasmDir}/${file}`, `ini_tool_table ${file} staging path drift`);
|
||||
}
|
||||
|
||||
writeLocalIniFixture("ini_tool_table.ini", `${wasmDir}/ini_tool_table.ini`, `${expectedWasmDir}/ini_tool_table.ini`, targetInterp);
|
||||
writeLocalIniFixture("ini_tool_table.tbl", `${wasmDir}/ini_tool_table.tbl`, `${expectedWasmDir}/ini_tool_table.tbl`, targetInterp);
|
||||
writeLocalGcodeFixture("ini_tool_table", `${wasmDir}/ini_tool_table.ngc`, `${expectedWasmDir}/ini_tool_table.ngc`, targetInterp);
|
||||
|
||||
return {
|
||||
iniPath: `${wasmDir}/ini_tool_table.ini`,
|
||||
programPath: `${wasmDir}/ini_tool_table.ngc`,
|
||||
};
|
||||
}
|
||||
|
||||
function stageInterpIniContext(name, programFile = "test.ngc") {
|
||||
const sourceRootRel = `tests/interp/${name}`;
|
||||
const iniText = readFileSync(
|
||||
@@ -732,8 +750,11 @@ verifyExpectedOutput(
|
||||
].join("\n"),
|
||||
);
|
||||
|
||||
const namedParamFilePath = `/work/${INTERP_INI_FIXTURE}.ngc`;
|
||||
interp.writeTextFile(namedParamFilePath, namedParamProgramText);
|
||||
const namedParamFilePath = writeLocalGcodeFixture(
|
||||
INTERP_INI_FIXTURE,
|
||||
`/work/${INTERP_INI_FIXTURE}.ngc`,
|
||||
`/work/${INTERP_INI_FIXTURE}.ngc`,
|
||||
);
|
||||
verifyExpectedOutput(
|
||||
"namedparam_semantics_file",
|
||||
interp.runFileWithIni(namedParamFilePath, namedParamIniPath),
|
||||
@@ -741,28 +762,21 @@ verifyExpectedOutput(
|
||||
);
|
||||
|
||||
const iniToolTableDir = "/work/ini-tool-table";
|
||||
const iniToolTableIniPath = `${iniToolTableDir}/ini_tool_table.ini`;
|
||||
const iniToolTableProgramPath = `${iniToolTableDir}/ini_tool_table.ngc`;
|
||||
interp.writeTextFile(
|
||||
iniToolTableIniPath,
|
||||
readFileSync(resolve(rootDir, "tests/fixtures/ini/ini_tool_table.ini"), "utf8"),
|
||||
);
|
||||
interp.writeTextFile(
|
||||
`${iniToolTableDir}/ini_tool_table.tbl`,
|
||||
readFileSync(resolve(rootDir, "tests/fixtures/ini/ini_tool_table.tbl"), "utf8"),
|
||||
);
|
||||
interp.writeTextFile(
|
||||
iniToolTableProgramPath,
|
||||
readFileSync(resolve(rootDir, "tests/fixtures/gcode/ini_tool_table.ngc"), "utf8"),
|
||||
const iniToolTable = writeIniToolTableFixtureStaging(
|
||||
iniToolTableDir,
|
||||
"/work/ini-tool-table",
|
||||
);
|
||||
verifyExpectedOutput(
|
||||
"ini_tool_table_file",
|
||||
interp.runFileWithIni(iniToolTableProgramPath, iniToolTableIniPath),
|
||||
interp.runFileWithIni(iniToolTable.programPath, iniToolTable.iniPath),
|
||||
readFileSync(resolve(rootDir, "tests/fixtures/canon/ini_tool_table.events"), "utf8").trimEnd(),
|
||||
);
|
||||
|
||||
const baselineIniFilePath = `/work/${INTERP_BASELINE_INI_FIXTURE}.ngc`;
|
||||
interp.writeTextFile(baselineIniFilePath, baselineIniProgramText);
|
||||
const baselineIniFilePath = writeLocalGcodeFixture(
|
||||
INTERP_BASELINE_INI_FIXTURE,
|
||||
`/work/${INTERP_BASELINE_INI_FIXTURE}.ngc`,
|
||||
`/work/${INTERP_BASELINE_INI_FIXTURE}.ngc`,
|
||||
);
|
||||
verifyExpectedOutput(
|
||||
`${INTERP_BASELINE_INI_FIXTURE}_file`,
|
||||
interp.runFileWithIni(baselineIniFilePath, namedParamIniPath),
|
||||
|
||||
Reference in New Issue
Block a user