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 对账;只校验文件清单
|
||||
和 staging 路径,不改变 expected-error 语义。也可以继续找短小单文件 case,但仍需
|
||||
保持每批 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) {
|
||||
throw new Error("browser_interp_bad_fixture_coverage: list drift");
|
||||
}
|
||||
const badStagedNgcFiles = [];
|
||||
for (const badFixture of badInterpFixtures) {
|
||||
const badPath = await writeInterpRegressionFile(interp, "bad", badFixture.file);
|
||||
badStagedNgcFiles.push(badPath);
|
||||
verifyExpectedOutput(
|
||||
`browser_interp_bad_${badFixture.name}`,
|
||||
interp.runFile(badPath),
|
||||
@@ -7010,6 +7012,10 @@
|
||||
].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_1NgcFiles = [
|
||||
|
||||
@@ -1930,8 +1930,10 @@ assert.deepEqual(
|
||||
interpRegressionNgcFiles("bad"),
|
||||
"interp bad fixture coverage drift",
|
||||
);
|
||||
const badStagedNgcFiles = [];
|
||||
for (const badFixture of badInterpFixtures) {
|
||||
const badPath = writeInterpRegressionFile("bad", badFixture.file);
|
||||
badStagedNgcFiles.push(badPath);
|
||||
verifyExpectedOutput(
|
||||
`interp_bad_${badFixture.name}_wasm`,
|
||||
interp.runFile(badPath),
|
||||
@@ -1945,6 +1947,11 @@ for (const badFixture of badInterpFixtures) {
|
||||
].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_1NgcFiles = [
|
||||
|
||||
Reference in New Issue
Block a user