Guard sequence subroutine staging manifests

This commit is contained in:
2026-06-12 23:27:09 +08:00
parent 3555b47c91
commit 091c4a3a66
3 changed files with 144 additions and 0 deletions

View File

@@ -7271,6 +7271,21 @@
);
const sequenceNumberPlan = await stageInterpIniContext(interp, "sequence-number");
const sequenceNumberNgcFiles = [
"rm400.ngc",
"test.ngc",
];
if (sequenceNumberNgcFiles.length !== 2 || new Set(sequenceNumberNgcFiles).size !== sequenceNumberNgcFiles.length) {
throw new Error("browser_interp_sequence_number_fixture_coverage: list drift");
}
const sequenceNumberStagedNgcFiles = sequenceNumberPlan.files
.map((file) => file.sourceRel)
.filter((sourceRel) => sourceRel.endsWith(".ngc"))
.map((sourceRel) => sourceRel.replace("tests/interp/sequence-number/", ""))
.sort();
if (sequenceNumberStagedNgcFiles.join(",") !== sequenceNumberNgcFiles.join(",")) {
throw new Error("browser_interp_sequence_number_staging_manifest: list drift");
}
verifyExpectedOutput(
"browser_interp_sequence_number",
interp.runFileWithIni(
@@ -7289,6 +7304,21 @@
);
const nestedSubErrorPlan = await stageInterpIniContext(interp, "nested-sub-error");
const nestedSubErrorNgcFiles = [
"subs/nested.ngc",
"test.ngc",
];
if (nestedSubErrorNgcFiles.length !== 2 || new Set(nestedSubErrorNgcFiles).size !== nestedSubErrorNgcFiles.length) {
throw new Error("browser_interp_nested_sub_error_fixture_coverage: list drift");
}
const nestedSubErrorStagedNgcFiles = nestedSubErrorPlan.files
.map((file) => file.sourceRel)
.filter((sourceRel) => sourceRel.endsWith(".ngc"))
.map((sourceRel) => sourceRel.replace("tests/interp/nested-sub-error/", ""))
.sort();
if (nestedSubErrorStagedNgcFiles.join(",") !== nestedSubErrorNgcFiles.join(",")) {
throw new Error("browser_interp_nested_sub_error_staging_manifest: list drift");
}
verifyExpectedOutput(
"browser_interp_nested_sub_error",
interp.runFileWithIni(

View File

@@ -2169,6 +2169,24 @@ verifyExpectedOutput(
);
const sequenceNumberPlan = stageInterpIniContext("sequence-number");
const sequenceNumberNgcFiles = [
"rm400.ngc",
"test.ngc",
];
assert.deepEqual(
sequenceNumberNgcFiles,
interpRegressionNgcFilesRecursive("sequence-number"),
"interp sequence-number fixture coverage drift",
);
assert.deepEqual(
sequenceNumberPlan.files
.map((file) => file.sourceRel)
.filter((sourceRel) => sourceRel.endsWith(".ngc"))
.map((sourceRel) => sourceRel.replace("tests/interp/sequence-number/", ""))
.sort(),
sequenceNumberNgcFiles,
"interp sequence-number staging manifest drift",
);
verifyExpectedOutput(
"interp_sequence_number_wasm",
interp.runFileWithIni(
@@ -2187,6 +2205,24 @@ verifyExpectedOutput(
);
const nestedSubErrorPlan = stageInterpIniContext("nested-sub-error");
const nestedSubErrorNgcFiles = [
"subs/nested.ngc",
"test.ngc",
];
assert.deepEqual(
nestedSubErrorNgcFiles,
interpRegressionNgcFilesRecursive("nested-sub-error"),
"interp nested-sub-error fixture coverage drift",
);
assert.deepEqual(
nestedSubErrorPlan.files
.map((file) => file.sourceRel)
.filter((sourceRel) => sourceRel.endsWith(".ngc"))
.map((sourceRel) => sourceRel.replace("tests/interp/nested-sub-error/", ""))
.sort(),
nestedSubErrorNgcFiles,
"interp nested-sub-error staging manifest drift",
);
verifyExpectedOutput(
"interp_nested_sub_error_wasm",
interp.runFileWithIni(