补充浏览器文件路径错误覆盖
结论:浏览器解释器 smoke 现在通过 Interp::open/read/execute 文件路径 ABI 验证现有负向 G-code fixture 的 LinuxCNC 错误输出。
This commit is contained in:
@@ -61,6 +61,35 @@
|
||||
}
|
||||
}
|
||||
|
||||
function verifyExpectedFileError(fixtureName, output, expectedText) {
|
||||
if (!output.includes("file_open=0")) {
|
||||
throw new Error(`${fixtureName}: missing file_open=0`);
|
||||
}
|
||||
|
||||
const expectedLines = expectedText.split("\n").filter(Boolean);
|
||||
for (const expectedLine of expectedLines) {
|
||||
if (expectedLine.startsWith("absent=")) {
|
||||
const forbidden = expectedLine.slice("absent=".length);
|
||||
if (output.includes(forbidden)) {
|
||||
throw new Error(`${fixtureName}: unexpected ${forbidden}`);
|
||||
}
|
||||
continue;
|
||||
}
|
||||
|
||||
if (expectedLine.startsWith("error_text=")) {
|
||||
const message = expectedLine.slice("error_text=".length);
|
||||
if (!output.includes(`file_error_text=${message}`)) {
|
||||
throw new Error(`${fixtureName}: missing file error ${message}`);
|
||||
}
|
||||
continue;
|
||||
}
|
||||
|
||||
if (expectedLine.startsWith("canon_event=") && !output.includes(expectedLine)) {
|
||||
throw new Error(`${fixtureName}: missing ${expectedLine}`);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
async function verifyRejects(fixtureName, operation, expectedPattern) {
|
||||
try {
|
||||
await operation();
|
||||
@@ -113,6 +142,19 @@
|
||||
);
|
||||
}
|
||||
|
||||
for (const errorFixtureName of INTERP_ERROR_FIXTURES) {
|
||||
const programPath = `/work/${errorFixtureName}-error.ngc`;
|
||||
interp.writeTextFile(
|
||||
programPath,
|
||||
await fetchText(`../fixtures/gcode_errors/${errorFixtureName}.ngc`),
|
||||
);
|
||||
verifyExpectedFileError(
|
||||
`${errorFixtureName}_file`,
|
||||
interp.runFile(programPath),
|
||||
(await fetchText(`../fixtures/canon_errors/${errorFixtureName}.expected`)).trimEnd(),
|
||||
);
|
||||
}
|
||||
|
||||
const namedParamIniPath = "/work/namedparams.ini";
|
||||
const namedParamProgramText = await fetchText(
|
||||
`../fixtures/gcode/${INTERP_INI_FIXTURE}.ngc`,
|
||||
|
||||
Reference in New Issue
Block a user