Guard g10 per-file staging paths

This commit is contained in:
2026-06-13 12:57:47 +08:00
parent 5175444fe9
commit af5fc84519
3 changed files with 83 additions and 20 deletions

View File

@@ -4765,13 +4765,14 @@
return wasmDir;
}
function assertG10RegressionStaging(name, files, wasmDir) {
function assertG10RegressionFilesStaging(name, files, wasmDir) {
if (files.length === 0 || new Set(files).size !== files.length) {
throw new Error(`browser_interp_g10_${name}_fixture_coverage: list drift`);
}
const g10StagedRelativeFiles = files.map((file) => `${wasmDir}/${file}`.replace(`/work/browser-interp/g10/${name}/`, ""));
if (g10StagedRelativeFiles.join(",") !== files.join(",")) {
throw new Error(`browser_interp_g10_${name}_staging_manifest: list drift`);
for (const file of files) {
if (`${wasmDir}/${file}` !== `/work/browser-interp/g10/${name}/${file}`) {
throw new Error(`browser_interp_g10_${name}_${file}_staging_manifest: list drift`);
}
}
}
@@ -8364,7 +8365,7 @@
"test.ngc",
"test.tbl",
]);
assertG10RegressionStaging("g10-l1-l10", ["test.ngc", "test.tbl"], g10L1L10Dir);
assertG10RegressionFilesStaging("g10-l1-l10", ["test.ngc", "test.tbl"], g10L1L10Dir);
verifyExpectedOutput(
"browser_interp_g10_l1_l10",
interp.runFileWithIni(`${g10L1L10Dir}/test.ngc`, `${g10L1L10Dir}/test.ini`),
@@ -8387,7 +8388,7 @@
"test.ngc",
"test.tbl",
]);
assertG10RegressionStaging("g10-l11", ["test.ngc", "test.tbl"], g10L11Dir);
assertG10RegressionFilesStaging("g10-l11", ["test.ngc", "test.tbl"], g10L11Dir);
verifyExpectedOutput(
"browser_interp_g10_l11",
interp.runFileWithIni(`${g10L11Dir}/test.ngc`, `${g10L11Dir}/test.ini`),
@@ -8409,7 +8410,7 @@
"g10-l2-while-active",
["test.ngc"],
);
assertG10RegressionStaging("g10-l2-while-active", ["test.ngc"], g10L2WhileActiveDir);
assertG10RegressionFilesStaging("g10-l2-while-active", ["test.ngc"], g10L2WhileActiveDir);
verifyExpectedOutput(
"browser_interp_g10_l2_while_active",
interp.runFile(`${g10L2WhileActiveDir}/test.ngc`),
@@ -8432,7 +8433,7 @@
"g10-l20-while-active",
["test.ngc"],
);
assertG10RegressionStaging("g10-l20-while-active", ["test.ngc"], g10L20WhileActiveDir);
assertG10RegressionFilesStaging("g10-l20-while-active", ["test.ngc"], g10L20WhileActiveDir);
verifyExpectedOutput(
"browser_interp_g10_l20_while_active",
interp.runFile(`${g10L20WhileActiveDir}/test.ngc`),
@@ -8453,7 +8454,7 @@
"test.ngc",
"test.tbl",
]);
assertG10RegressionStaging("g10-with-g92", ["test.ngc", "test.tbl"], g10WithG92Dir);
assertG10RegressionFilesStaging("g10-with-g92", ["test.ngc", "test.tbl"], g10WithG92Dir);
verifyExpectedOutput(
"browser_interp_g10_with_g92",
interp.runFileWithIni(`${g10WithG92Dir}/test.ngc`, `${g10WithG92Dir}/test.ini`),

View File

@@ -422,7 +422,7 @@ function writeG10RegressionFiles(name, files) {
return wasmDir;
}
function assertG10RegressionStaging(name, files, wasmDir) {
function assertG10RegressionCoverage(name, files) {
const sourceDir = resolve(rootDir, "vendor/linuxcnc/tests/interp/g10", name);
assert.deepEqual(
readdirSync(sourceDir)
@@ -431,11 +431,16 @@ function assertG10RegressionStaging(name, files, wasmDir) {
[...files].sort(),
`interp g10 ${name} fixture coverage drift`,
);
assert.deepEqual(
files.map((file) => `${wasmDir}/${file}`),
files.map((file) => `/work/interp/g10/${name}/${file}`),
`interp g10 ${name} staging manifest drift`,
);
}
function assertG10RegressionFilesStaging(name, files, wasmDir) {
for (const file of files) {
assert.equal(
`${wasmDir}/${file}`,
`/work/interp/g10/${name}/${file}`,
`interp g10 ${name}/${file} staging manifest drift`,
);
}
}
function writeUserMCodeFixture(name, code) {
@@ -3333,7 +3338,8 @@ assert.deepEqual(
);
const g10L1L10Dir = writeG10RegressionFiles("g10-l1-l10", ["test.ngc", "test.tbl"]);
assertG10RegressionStaging("g10-l1-l10", ["test.ngc", "test.tbl"], g10L1L10Dir);
assertG10RegressionCoverage("g10-l1-l10", ["test.ngc", "test.tbl"]);
assertG10RegressionFilesStaging("g10-l1-l10", ["test.ngc", "test.tbl"], g10L1L10Dir);
verifyExpectedOutput(
"interp_g10_l1_l10_wasm",
interp.runFileWithIni(`${g10L1L10Dir}/test.ngc`, `${g10L1L10Dir}/test.ini`),
@@ -3353,7 +3359,8 @@ verifyExpectedOutput(
);
const g10L11Dir = writeG10RegressionFiles("g10-l11", ["test.ngc", "test.tbl"]);
assertG10RegressionStaging("g10-l11", ["test.ngc", "test.tbl"], g10L11Dir);
assertG10RegressionCoverage("g10-l11", ["test.ngc", "test.tbl"]);
assertG10RegressionFilesStaging("g10-l11", ["test.ngc", "test.tbl"], g10L11Dir);
verifyExpectedOutput(
"interp_g10_l11_wasm",
interp.runFileWithIni(`${g10L11Dir}/test.ngc`, `${g10L11Dir}/test.ini`),
@@ -3371,7 +3378,8 @@ verifyExpectedOutput(
);
const g10L2WhileActiveDir = writeG10RegressionFiles("g10-l2-while-active", ["test.ngc"]);
assertG10RegressionStaging("g10-l2-while-active", ["test.ngc"], g10L2WhileActiveDir);
assertG10RegressionCoverage("g10-l2-while-active", ["test.ngc"]);
assertG10RegressionFilesStaging("g10-l2-while-active", ["test.ngc"], g10L2WhileActiveDir);
verifyExpectedOutput(
"interp_g10_l2_while_active_wasm",
interp.runFile(`${g10L2WhileActiveDir}/test.ngc`),
@@ -3390,7 +3398,8 @@ verifyExpectedOutput(
);
const g10L20WhileActiveDir = writeG10RegressionFiles("g10-l20-while-active", ["test.ngc"]);
assertG10RegressionStaging("g10-l20-while-active", ["test.ngc"], g10L20WhileActiveDir);
assertG10RegressionCoverage("g10-l20-while-active", ["test.ngc"]);
assertG10RegressionFilesStaging("g10-l20-while-active", ["test.ngc"], g10L20WhileActiveDir);
verifyExpectedOutput(
"interp_g10_l20_while_active_wasm",
interp.runFile(`${g10L20WhileActiveDir}/test.ngc`),
@@ -3408,7 +3417,8 @@ verifyExpectedOutput(
);
const g10WithG92Dir = writeG10RegressionFiles("g10-with-g92", ["test.ngc", "test.tbl"]);
assertG10RegressionStaging("g10-with-g92", ["test.ngc", "test.tbl"], g10WithG92Dir);
assertG10RegressionCoverage("g10-with-g92", ["test.ngc", "test.tbl"]);
assertG10RegressionFilesStaging("g10-with-g92", ["test.ngc", "test.tbl"], g10WithG92Dir);
verifyExpectedOutput(
"interp_g10_with_g92_wasm",
interp.runFileWithIni(`${g10WithG92Dir}/test.ngc`, `${g10WithG92Dir}/test.ini`),