Guard bad fixture staging paths
This commit is contained in:
38
text6.txt
38
text6.txt
@@ -497,3 +497,41 @@ wasm-port/tests/host/verify_host_smokes.sh
|
|||||||
目录,按现有 `badInterpFixtures` fixed list 补 staged path 对账;只校验文件清单
|
目录,按现有 `badInterpFixtures` fixed list 补 staged path 对账;只校验文件清单
|
||||||
和 staging 路径,不改变 expected-error 语义。也可以继续找短小单文件 case,但仍需
|
和 staging 路径,不改变 expected-error 语义。也可以继续找短小单文件 case,但仍需
|
||||||
保持每批 2 到 3 个或自然成组,不推进 blocked runtime promotion。
|
保持每批 2 到 3 个或自然成组,不推进 blocked runtime promotion。
|
||||||
|
|
||||||
|
十三、2026-06-13 继续执行记录:bad expected-error staging path guard
|
||||||
|
|
||||||
|
本批按“已有 fixed manifest 的 direct-file fixture staged path guard”推进,完成
|
||||||
|
`bad` expected-error 目录 21 个已有 Node/browser coverage 的 `.ngc` fixture。
|
||||||
|
|
||||||
|
完成内容:
|
||||||
|
|
||||||
|
- Node 侧复用既有 `badInterpFixtures` fixed manifest;
|
||||||
|
- Node 侧继续用 `interpRegressionNgcFiles("bad")` 与 upstream vendored fixture
|
||||||
|
精确对账;
|
||||||
|
- Node 侧收集实际 staged path,并检查与 fixed manifest 一致;
|
||||||
|
- browser 侧复用既有 fixed-count 与 duplicate-free guard;
|
||||||
|
- browser 侧收集实际 staged path,去掉 `/work/browser-interp/bad/` 前缀后与
|
||||||
|
fixed manifest 一致;
|
||||||
|
- 仅校验文件清单与 staging 路径,不改变 expected-error 语义;
|
||||||
|
- browser 仍不依赖目录枚举。
|
||||||
|
|
||||||
|
已运行验证:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
git diff --check
|
||||||
|
SKIP_INTERP_BUILD=1 wasm-port/tests/wasm/node/verify_interp_wasm.sh
|
||||||
|
SKIP_INI_BUILD=1 SKIP_INTERP_BUILD=1 wasm-port/tests/browser/verify_interp_browser.sh
|
||||||
|
wasm-port/tools/verify_vendor_sync.sh
|
||||||
|
wasm-port/tools/verify_no_standalone_cnc_semantics.sh
|
||||||
|
SKIP_INTERP_BUILD=1 wasm-port/tests/wasm/node/verify_sim_configs_inventory_wasm.sh
|
||||||
|
wasm-port/tests/host/verify_host_smokes.sh
|
||||||
|
```
|
||||||
|
|
||||||
|
结果:全部通过。
|
||||||
|
|
||||||
|
下一步建议:
|
||||||
|
|
||||||
|
继续找已有 Node/browser coverage 且可自然成组的 fixture。优先候选:`g76` 这种
|
||||||
|
需要工具表/INI 的目录可按 `writeInterpRegressionFiles(...)` 现有 file list 做 staged
|
||||||
|
path 对账;或者继续挑选短小单文件 direct-file case。仍不要推进 blocked runtime
|
||||||
|
promotion、browser full inventory 扩面或任何 JS CNC 语义实现。
|
||||||
|
|||||||
@@ -6995,8 +6995,10 @@
|
|||||||
if (badInterpFixtures.length !== 21 || new Set(badInterpFixtures.map((fixture) => fixture.file)).size !== badInterpFixtures.length) {
|
if (badInterpFixtures.length !== 21 || new Set(badInterpFixtures.map((fixture) => fixture.file)).size !== badInterpFixtures.length) {
|
||||||
throw new Error("browser_interp_bad_fixture_coverage: list drift");
|
throw new Error("browser_interp_bad_fixture_coverage: list drift");
|
||||||
}
|
}
|
||||||
|
const badStagedNgcFiles = [];
|
||||||
for (const badFixture of badInterpFixtures) {
|
for (const badFixture of badInterpFixtures) {
|
||||||
const badPath = await writeInterpRegressionFile(interp, "bad", badFixture.file);
|
const badPath = await writeInterpRegressionFile(interp, "bad", badFixture.file);
|
||||||
|
badStagedNgcFiles.push(badPath);
|
||||||
verifyExpectedOutput(
|
verifyExpectedOutput(
|
||||||
`browser_interp_bad_${badFixture.name}`,
|
`browser_interp_bad_${badFixture.name}`,
|
||||||
interp.runFile(badPath),
|
interp.runFile(badPath),
|
||||||
@@ -7010,6 +7012,10 @@
|
|||||||
].join("\n"),
|
].join("\n"),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
const badStagedRelativeNgcFiles = badStagedNgcFiles.map((path) => path.replace("/work/browser-interp/bad/", ""));
|
||||||
|
if (badStagedRelativeNgcFiles.join(",") !== badInterpFixtures.map((fixture) => fixture.file).join(",")) {
|
||||||
|
throw new Error("browser_interp_bad_staging_manifest: list drift");
|
||||||
|
}
|
||||||
|
|
||||||
const g33_1Path = await writeInterpRegressionFile(interp, "g33.1", "g33.1.ngc");
|
const g33_1Path = await writeInterpRegressionFile(interp, "g33.1", "g33.1.ngc");
|
||||||
const g33_1NgcFiles = [
|
const g33_1NgcFiles = [
|
||||||
|
|||||||
@@ -1930,8 +1930,10 @@ assert.deepEqual(
|
|||||||
interpRegressionNgcFiles("bad"),
|
interpRegressionNgcFiles("bad"),
|
||||||
"interp bad fixture coverage drift",
|
"interp bad fixture coverage drift",
|
||||||
);
|
);
|
||||||
|
const badStagedNgcFiles = [];
|
||||||
for (const badFixture of badInterpFixtures) {
|
for (const badFixture of badInterpFixtures) {
|
||||||
const badPath = writeInterpRegressionFile("bad", badFixture.file);
|
const badPath = writeInterpRegressionFile("bad", badFixture.file);
|
||||||
|
badStagedNgcFiles.push(badPath);
|
||||||
verifyExpectedOutput(
|
verifyExpectedOutput(
|
||||||
`interp_bad_${badFixture.name}_wasm`,
|
`interp_bad_${badFixture.name}_wasm`,
|
||||||
interp.runFile(badPath),
|
interp.runFile(badPath),
|
||||||
@@ -1945,6 +1947,11 @@ for (const badFixture of badInterpFixtures) {
|
|||||||
].join("\n"),
|
].join("\n"),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
assert.deepEqual(
|
||||||
|
badStagedNgcFiles,
|
||||||
|
badInterpFixtures.map((fixture) => `/work/interp/bad/${fixture.file}`),
|
||||||
|
"interp bad staging manifest drift",
|
||||||
|
);
|
||||||
|
|
||||||
const g33_1Path = writeInterpRegressionFile("g33.1", "g33.1.ngc");
|
const g33_1Path = writeInterpRegressionFile("g33.1", "g33.1.ngc");
|
||||||
const g33_1NgcFiles = [
|
const g33_1NgcFiles = [
|
||||||
|
|||||||
Reference in New Issue
Block a user