Guard final special remap staging paths

This commit is contained in:
2026-06-13 13:29:37 +08:00
parent 76aa9fb39e
commit e039cacc99
3 changed files with 71 additions and 28 deletions

View File

@@ -4647,19 +4647,6 @@
return wasmDir;
}
function assertRemapRegressionStaging(name, files, wasmDir, expectedUnstagedFiles = []) {
if (files.length === 0 || new Set(files).size !== files.length) {
throw new Error(`browser_remap_${name}_fixture_coverage: list drift`);
}
if (expectedUnstagedFiles.some((file) => files.includes(file))) {
throw new Error(`browser_remap_${name}_unstaged_fixture_overlap: list drift`);
}
const remapStagedRelativeFiles = files.map((file) => `${wasmDir}/${file}`.replace(`/work/browser-remap/${name}/`, ""));
if (remapStagedRelativeFiles.join(",") !== files.join(",")) {
throw new Error(`browser_remap_${name}_staging_manifest: list drift`);
}
}
function assertRemapRegressionFilesStaging(name, files, wasmDir) {
if (files.length === 0 || new Set(files).size !== files.length) {
throw new Error(`browser_remap_${name}_fixture_coverage: list drift`);
@@ -4671,6 +4658,12 @@
}
}
function assertRemapRegressionUnstagedOverlap(name, files, expectedUnstagedFiles) {
if (expectedUnstagedFiles.some((file) => files.includes(file))) {
throw new Error(`browser_remap_${name}_unstaged_fixture_overlap: list drift`);
}
}
async function writeInterpRegressionFile(interp, name, filename) {
const sourceDir = `../../vendor/linuxcnc/tests/interp/${name}`;
const wasmDir = `/work/browser-interp/${name}`;
@@ -6201,11 +6194,15 @@
"nested-remaps-oword",
nestedRemapsOwordFiles,
);
assertRemapRegressionStaging(
assertRemapRegressionUnstagedOverlap(
"nested-remaps-oword",
nestedRemapsOwordFiles,
nestedRemapsOwordUnstagedFiles,
);
assertRemapRegressionFilesStaging(
"nested-remaps-oword",
nestedRemapsOwordFiles,
nestedRemapsOwordDir,
nestedRemapsOwordUnstagedFiles,
);
verifyExpectedOutput(
"browser_nested_remaps_oword_remap",
@@ -6333,7 +6330,7 @@
"io_output_m68.ngc",
];
const remapIoDir = await writeRemapRegressionFiles(interp, "remap-io", remapIoFiles);
assertRemapRegressionStaging("remap-io", remapIoFiles, remapIoDir);
assertRemapRegressionFilesStaging("remap-io", remapIoFiles, remapIoDir);
const remapIoGeneratedToolTablePath = `${remapIoDir}/simpockets.tbl`;
if (remapIoGeneratedToolTablePath !== "/work/browser-remap/remap-io/simpockets.tbl") {
throw new Error("browser_remap_remap_io_generated_tool_table_staging: path drift");

View File

@@ -272,15 +272,6 @@ function assertRemapRegressionFilesStaging(name, files, wasmDir) {
}
}
function assertRemapRegressionStaging(name, files, wasmDir, expectedUnstagedFiles = []) {
assertRemapRegressionCoverage(name, files, expectedUnstagedFiles);
assert.deepEqual(
files.map((file) => `${wasmDir}/${file}`),
files.map((file) => `/work/remap/${name}/${file}`),
`remap ${name} staging manifest drift`,
);
}
function writeInterpRegressionFile(name, filename) {
const sourceDir = resolve(rootDir, "vendor/linuxcnc/tests/interp", name);
const wasmDir = `/work/interp/${name}`;
@@ -1212,11 +1203,15 @@ const nestedRemapsOwordDir = writeRemapRegressionFiles(
"nested-remaps-oword",
nestedRemapsOwordFiles,
);
assertRemapRegressionStaging(
assertRemapRegressionCoverage(
"nested-remaps-oword",
nestedRemapsOwordFiles,
nestedRemapsOwordUnstagedFiles,
);
assertRemapRegressionFilesStaging(
"nested-remaps-oword",
nestedRemapsOwordFiles,
nestedRemapsOwordDir,
nestedRemapsOwordUnstagedFiles,
);
verifyExpectedOutput(
"nested_remaps_oword_remap_wasm",
@@ -1346,7 +1341,8 @@ const remapIoFiles = [
"io_output_m68.ngc",
];
const remapIoDir = writeRemapRegressionFiles("remap-io", remapIoFiles);
assertRemapRegressionStaging("remap-io", remapIoFiles, remapIoDir);
assertRemapRegressionCoverage("remap-io", remapIoFiles);
assertRemapRegressionFilesStaging("remap-io", remapIoFiles, remapIoDir);
const remapIoGeneratedToolTablePath = `${remapIoDir}/simpockets.tbl`;
assert.equal(
remapIoGeneratedToolTablePath,