Guard interp regression staging helper
This commit is contained in:
@@ -4680,6 +4680,16 @@
|
||||
return wasmDir;
|
||||
}
|
||||
|
||||
function assertInterpRegressionStaging(name, files, wasmDir) {
|
||||
if (files.length === 0 || new Set(files).size !== files.length) {
|
||||
throw new Error(`browser_interp_${name}_fixture_coverage: list drift`);
|
||||
}
|
||||
const interpStagedRelativeFiles = files.map((file) => `${wasmDir}/${file}`.replace(`/work/browser-interp/${name}/`, ""));
|
||||
if (interpStagedRelativeFiles.join(",") !== files.join(",")) {
|
||||
throw new Error(`browser_interp_${name}_staging_manifest: list drift`);
|
||||
}
|
||||
}
|
||||
|
||||
async function writeCcompRegressionFiles(interp, name) {
|
||||
const sourceDir = `../../vendor/linuxcnc/tests/ccomp/${name}`;
|
||||
const wasmDir = `/work/browser-ccomp/${name}`;
|
||||
@@ -6600,14 +6610,8 @@
|
||||
"cam.ngc",
|
||||
"test.tbl",
|
||||
];
|
||||
if (camNisleyFiles.length !== 2 || new Set(camNisleyFiles).size !== camNisleyFiles.length) {
|
||||
throw new Error("browser_interp_cam_nisley_fixture_coverage: list drift");
|
||||
}
|
||||
const camNisleyDir = await writeInterpRegressionFiles(interp, "cam-nisley", camNisleyFiles);
|
||||
const camNisleyStagedRelativeFiles = camNisleyFiles.map((file) => `${camNisleyDir}/${file}`.replace("/work/browser-interp/cam-nisley/", ""));
|
||||
if (camNisleyStagedRelativeFiles.join(",") !== camNisleyFiles.join(",")) {
|
||||
throw new Error("browser_interp_cam_nisley_staging_manifest: list drift");
|
||||
}
|
||||
assertInterpRegressionStaging("cam-nisley", camNisleyFiles, camNisleyDir);
|
||||
interp.writeTextFile(
|
||||
`${camNisleyDir}/test.ini`,
|
||||
[
|
||||
@@ -7345,14 +7349,8 @@
|
||||
"g76only.ngc",
|
||||
"test.tbl",
|
||||
];
|
||||
if (g76Files.length !== 2 || new Set(g76Files).size !== g76Files.length) {
|
||||
throw new Error("browser_interp_g76_fixture_coverage: list drift");
|
||||
}
|
||||
const g76Dir = await writeInterpRegressionFiles(interp, "g76", g76Files);
|
||||
const g76StagedRelativeFiles = g76Files.map((file) => `${g76Dir}/${file}`.replace("/work/browser-interp/g76/", ""));
|
||||
if (g76StagedRelativeFiles.join(",") !== g76Files.join(",")) {
|
||||
throw new Error("browser_interp_g76_staging_manifest: list drift");
|
||||
}
|
||||
assertInterpRegressionStaging("g76", g76Files, g76Dir);
|
||||
interp.writeTextFile(
|
||||
`${g76Dir}/test.ini`,
|
||||
[
|
||||
|
||||
@@ -287,6 +287,22 @@ function writeInterpRegressionFiles(name, files) {
|
||||
return wasmDir;
|
||||
}
|
||||
|
||||
function assertInterpRegressionStaging(name, files, wasmDir) {
|
||||
const sourceDir = resolve(rootDir, "vendor/linuxcnc/tests/interp", name);
|
||||
assert.deepEqual(
|
||||
readdirSync(sourceDir)
|
||||
.filter((filename) => filename.endsWith(".ini") || filename.endsWith(".ngc") || filename.endsWith(".tbl"))
|
||||
.sort(),
|
||||
[...files].sort(),
|
||||
`interp ${name} fixture coverage drift`,
|
||||
);
|
||||
assert.deepEqual(
|
||||
files.map((file) => `${wasmDir}/${file}`),
|
||||
files.map((file) => `/work/interp/${name}/${file}`),
|
||||
`interp ${name} staging manifest drift`,
|
||||
);
|
||||
}
|
||||
|
||||
function interpRegressionNgcFiles(name) {
|
||||
const sourceDir = resolve(rootDir, "vendor/linuxcnc/tests/interp", name);
|
||||
return readdirSync(sourceDir)
|
||||
@@ -1574,17 +1590,8 @@ const camNisleyFiles = [
|
||||
"cam.ngc",
|
||||
"test.tbl",
|
||||
];
|
||||
assert.deepEqual(
|
||||
camNisleyFiles.filter((file) => file.endsWith(".ngc")),
|
||||
interpRegressionNgcFilesRecursive("cam-nisley"),
|
||||
"interp cam-nisley fixture coverage drift",
|
||||
);
|
||||
const camNisleyDir = writeInterpRegressionFiles("cam-nisley", camNisleyFiles);
|
||||
assert.deepEqual(
|
||||
camNisleyFiles.map((file) => `${camNisleyDir}/${file}`),
|
||||
camNisleyFiles.map((file) => `/work/interp/cam-nisley/${file}`),
|
||||
"interp cam-nisley staging manifest drift",
|
||||
);
|
||||
assertInterpRegressionStaging("cam-nisley", camNisleyFiles, camNisleyDir);
|
||||
interp.writeTextFile(
|
||||
`${camNisleyDir}/test.ini`,
|
||||
[
|
||||
@@ -2321,17 +2328,8 @@ const g76Files = [
|
||||
"g76only.ngc",
|
||||
"test.tbl",
|
||||
];
|
||||
assert.deepEqual(
|
||||
g76Files.filter((file) => file.endsWith(".ngc")),
|
||||
interpRegressionNgcFilesRecursive("g76"),
|
||||
"interp g76 fixture coverage drift",
|
||||
);
|
||||
const g76Dir = writeInterpRegressionFiles("g76", g76Files);
|
||||
assert.deepEqual(
|
||||
g76Files.map((file) => `${g76Dir}/${file}`),
|
||||
g76Files.map((file) => `/work/interp/g76/${file}`),
|
||||
"interp g76 staging manifest drift",
|
||||
);
|
||||
assertInterpRegressionStaging("g76", g76Files, g76Dir);
|
||||
interp.writeTextFile(
|
||||
`${g76Dir}/test.ini`,
|
||||
[
|
||||
|
||||
Reference in New Issue
Block a user