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 中,
|
coverage、且不依赖 HAL/task/tool DB/Python remap/user-M process 的 interp fixture 中,
|
||||||
再选择 2 到 3 个只需要 host/filesystem staging 对账的 case。不要推进 blocked runtime
|
再选择 2 到 3 个只需要 host/filesystem staging 对账的 case。不要推进 blocked runtime
|
||||||
promotion,也不要扩展 browser full 159 sim-config inventory。
|
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",
|
||||||
"flowsnake.ngc",
|
"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(
|
verifyExpectedOutput(
|
||||||
"browser_interp_flowsnake",
|
"browser_interp_flowsnake",
|
||||||
interp.runFile(flowsnakePath),
|
interp.runFile(flowsnakePath),
|
||||||
@@ -6664,6 +6676,18 @@
|
|||||||
"inside-corners",
|
"inside-corners",
|
||||||
"test.ngc",
|
"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(
|
verifyExpectedOutput(
|
||||||
"browser_interp_inside_corners",
|
"browser_interp_inside_corners",
|
||||||
interp.runFile(insideCornersPath),
|
interp.runFile(insideCornersPath),
|
||||||
@@ -6691,6 +6715,18 @@
|
|||||||
"inverse-time-with-comp",
|
"inverse-time-with-comp",
|
||||||
"inverse.ngc",
|
"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(
|
verifyExpectedOutput(
|
||||||
"browser_interp_inverse_time_with_comp",
|
"browser_interp_inverse_time_with_comp",
|
||||||
interp.runFile(inverseTimeWithCompPath),
|
interp.runFile(inverseTimeWithCompPath),
|
||||||
|
|||||||
@@ -1579,6 +1579,21 @@ verifyExpectedOutput(
|
|||||||
);
|
);
|
||||||
|
|
||||||
const flowsnakePath = writeInterpRegressionFile("flowsnake", "flowsnake.ngc");
|
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(
|
verifyExpectedOutput(
|
||||||
"interp_flowsnake_wasm",
|
"interp_flowsnake_wasm",
|
||||||
interp.runFile(flowsnakePath),
|
interp.runFile(flowsnakePath),
|
||||||
@@ -1601,6 +1616,21 @@ verifyExpectedOutput(
|
|||||||
);
|
);
|
||||||
|
|
||||||
const insideCornersPath = writeInterpRegressionFile("inside-corners", "test.ngc");
|
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(
|
verifyExpectedOutput(
|
||||||
"interp_inside_corners_wasm",
|
"interp_inside_corners_wasm",
|
||||||
interp.runFile(insideCornersPath),
|
interp.runFile(insideCornersPath),
|
||||||
@@ -1627,6 +1657,21 @@ const inverseTimeWithCompPath = writeInterpRegressionFile(
|
|||||||
"inverse-time-with-comp",
|
"inverse-time-with-comp",
|
||||||
"inverse.ngc",
|
"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(
|
verifyExpectedOutput(
|
||||||
"interp_inverse_time_with_comp_wasm",
|
"interp_inverse_time_with_comp_wasm",
|
||||||
interp.runFile(inverseTimeWithCompPath),
|
interp.runFile(inverseTimeWithCompPath),
|
||||||
|
|||||||
Reference in New Issue
Block a user