Guard more interp staging paths
This commit is contained in:
41
text6.txt
41
text6.txt
@@ -286,3 +286,44 @@ wasm-port/tests/host/verify_host_smokes.sh
|
||||
coverage、且不依赖 HAL/task/tool DB/Python remap/user-M process 的 interp fixture 中,
|
||||
再选择 2 到 3 个只需要 host/filesystem staging 对账的 case。不要推进 blocked runtime
|
||||
promotion,也不要扩展 browser full 159 sim-config inventory。
|
||||
|
||||
八、2026-06-13 继续执行记录:flowsnake/inside-corners staging path guard
|
||||
|
||||
本批继续按“小批量 direct-file fixture staged path guard”推进,完成 3 个已有
|
||||
Node/browser coverage 的 interp fixture:
|
||||
|
||||
- `flowsnake/flowsnake.ngc`
|
||||
- `inside-corners/test.ngc`
|
||||
- `inverse-time-with-comp/inverse.ngc`
|
||||
|
||||
完成内容:
|
||||
|
||||
- Node 侧为上述 3 个 fixture 增加 fixed `.ngc` manifest;
|
||||
- Node 侧用 `interpRegressionNgcFilesRecursive(...)` 与 upstream vendored fixture
|
||||
精确对账;
|
||||
- Node 侧检查 staged path 与 fixed manifest 一致;
|
||||
- browser 侧增加 fixed-count 与 duplicate-free guard;
|
||||
- browser 侧检查 staged path 去掉 `/work/browser-interp/.../` 前缀后与 fixed
|
||||
manifest 一致;
|
||||
- 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
|
||||
```
|
||||
|
||||
结果:全部通过。
|
||||
|
||||
下一步建议:
|
||||
|
||||
继续沿 interp direct-file coverage 向后补 guard,但优先选择短小、单文件、
|
||||
无 INI/工具表依赖的 case。下一批可考虑 `g33.1/g33.1.ngc`、`g6164/test.ngc`,
|
||||
再搭配一个已明确 expected-error 或 direct-file loop case;如果 case 属于目录集合
|
||||
或带参数化循环,先检查是否已有固定 manifest 风格,避免扩大执行面。
|
||||
|
||||
@@ -6638,6 +6638,18 @@
|
||||
"flowsnake",
|
||||
"flowsnake.ngc",
|
||||
);
|
||||
const flowsnakeNgcFiles = [
|
||||
"flowsnake.ngc",
|
||||
];
|
||||
if (flowsnakeNgcFiles.length !== 1 || new Set(flowsnakeNgcFiles).size !== flowsnakeNgcFiles.length) {
|
||||
throw new Error("browser_interp_flowsnake_fixture_coverage: list drift");
|
||||
}
|
||||
const flowsnakeStagedNgcFiles = [
|
||||
flowsnakePath,
|
||||
].map((path) => path.replace("/work/browser-interp/flowsnake/", ""));
|
||||
if (flowsnakeStagedNgcFiles.join(",") !== flowsnakeNgcFiles.join(",")) {
|
||||
throw new Error("browser_interp_flowsnake_staging_manifest: list drift");
|
||||
}
|
||||
verifyExpectedOutput(
|
||||
"browser_interp_flowsnake",
|
||||
interp.runFile(flowsnakePath),
|
||||
@@ -6664,6 +6676,18 @@
|
||||
"inside-corners",
|
||||
"test.ngc",
|
||||
);
|
||||
const insideCornersNgcFiles = [
|
||||
"test.ngc",
|
||||
];
|
||||
if (insideCornersNgcFiles.length !== 1 || new Set(insideCornersNgcFiles).size !== insideCornersNgcFiles.length) {
|
||||
throw new Error("browser_interp_inside_corners_fixture_coverage: list drift");
|
||||
}
|
||||
const insideCornersStagedNgcFiles = [
|
||||
insideCornersPath,
|
||||
].map((path) => path.replace("/work/browser-interp/inside-corners/", ""));
|
||||
if (insideCornersStagedNgcFiles.join(",") !== insideCornersNgcFiles.join(",")) {
|
||||
throw new Error("browser_interp_inside_corners_staging_manifest: list drift");
|
||||
}
|
||||
verifyExpectedOutput(
|
||||
"browser_interp_inside_corners",
|
||||
interp.runFile(insideCornersPath),
|
||||
@@ -6691,6 +6715,18 @@
|
||||
"inverse-time-with-comp",
|
||||
"inverse.ngc",
|
||||
);
|
||||
const inverseTimeWithCompNgcFiles = [
|
||||
"inverse.ngc",
|
||||
];
|
||||
if (inverseTimeWithCompNgcFiles.length !== 1 || new Set(inverseTimeWithCompNgcFiles).size !== inverseTimeWithCompNgcFiles.length) {
|
||||
throw new Error("browser_interp_inverse_time_with_comp_fixture_coverage: list drift");
|
||||
}
|
||||
const inverseTimeWithCompStagedNgcFiles = [
|
||||
inverseTimeWithCompPath,
|
||||
].map((path) => path.replace("/work/browser-interp/inverse-time-with-comp/", ""));
|
||||
if (inverseTimeWithCompStagedNgcFiles.join(",") !== inverseTimeWithCompNgcFiles.join(",")) {
|
||||
throw new Error("browser_interp_inverse_time_with_comp_staging_manifest: list drift");
|
||||
}
|
||||
verifyExpectedOutput(
|
||||
"browser_interp_inverse_time_with_comp",
|
||||
interp.runFile(inverseTimeWithCompPath),
|
||||
|
||||
@@ -1579,6 +1579,21 @@ verifyExpectedOutput(
|
||||
);
|
||||
|
||||
const flowsnakePath = writeInterpRegressionFile("flowsnake", "flowsnake.ngc");
|
||||
const flowsnakeNgcFiles = [
|
||||
"flowsnake.ngc",
|
||||
];
|
||||
assert.deepEqual(
|
||||
flowsnakeNgcFiles,
|
||||
interpRegressionNgcFilesRecursive("flowsnake"),
|
||||
"interp flowsnake fixture coverage drift",
|
||||
);
|
||||
assert.deepEqual(
|
||||
[
|
||||
flowsnakePath,
|
||||
],
|
||||
flowsnakeNgcFiles.map((file) => `/work/interp/flowsnake/${file}`),
|
||||
"interp flowsnake staging manifest drift",
|
||||
);
|
||||
verifyExpectedOutput(
|
||||
"interp_flowsnake_wasm",
|
||||
interp.runFile(flowsnakePath),
|
||||
@@ -1601,6 +1616,21 @@ verifyExpectedOutput(
|
||||
);
|
||||
|
||||
const insideCornersPath = writeInterpRegressionFile("inside-corners", "test.ngc");
|
||||
const insideCornersNgcFiles = [
|
||||
"test.ngc",
|
||||
];
|
||||
assert.deepEqual(
|
||||
insideCornersNgcFiles,
|
||||
interpRegressionNgcFilesRecursive("inside-corners"),
|
||||
"interp inside-corners fixture coverage drift",
|
||||
);
|
||||
assert.deepEqual(
|
||||
[
|
||||
insideCornersPath,
|
||||
],
|
||||
insideCornersNgcFiles.map((file) => `/work/interp/inside-corners/${file}`),
|
||||
"interp inside-corners staging manifest drift",
|
||||
);
|
||||
verifyExpectedOutput(
|
||||
"interp_inside_corners_wasm",
|
||||
interp.runFile(insideCornersPath),
|
||||
@@ -1627,6 +1657,21 @@ const inverseTimeWithCompPath = writeInterpRegressionFile(
|
||||
"inverse-time-with-comp",
|
||||
"inverse.ngc",
|
||||
);
|
||||
const inverseTimeWithCompNgcFiles = [
|
||||
"inverse.ngc",
|
||||
];
|
||||
assert.deepEqual(
|
||||
inverseTimeWithCompNgcFiles,
|
||||
interpRegressionNgcFilesRecursive("inverse-time-with-comp"),
|
||||
"interp inverse-time-with-comp fixture coverage drift",
|
||||
);
|
||||
assert.deepEqual(
|
||||
[
|
||||
inverseTimeWithCompPath,
|
||||
],
|
||||
inverseTimeWithCompNgcFiles.map((file) => `/work/interp/inverse-time-with-comp/${file}`),
|
||||
"interp inverse-time-with-comp staging manifest drift",
|
||||
);
|
||||
verifyExpectedOutput(
|
||||
"interp_inverse_time_with_comp_wasm",
|
||||
interp.runFile(inverseTimeWithCompPath),
|
||||
|
||||
Reference in New Issue
Block a user