Guard g71 staging paths
This commit is contained in:
42
text6.txt
42
text6.txt
@@ -455,3 +455,45 @@ wasm-port/tests/host/verify_host_smokes.sh
|
|||||||
补 staged path guard;或者处理 `bad` expected-error 目录,只做 fixed list 与
|
补 staged path guard;或者处理 `bad` expected-error 目录,只做 fixed list 与
|
||||||
staged path 对账,不改变 expected-error 语义。继续避免 blocked runtime promotion、
|
staged path 对账,不改变 expected-error 语义。继续避免 blocked runtime promotion、
|
||||||
browser full inventory 扩面和 JS CNC 语义实现。
|
browser full inventory 扩面和 JS CNC 语义实现。
|
||||||
|
|
||||||
|
十二、2026-06-13 继续执行记录:g71 staging path guard
|
||||||
|
|
||||||
|
本批按“自然成组 direct-file fixture staged path guard”推进,完成 `g71` loop 组
|
||||||
|
4 个已有 Node/browser coverage 的 `.ngc` fixture:
|
||||||
|
|
||||||
|
- `g71-endless-loop/g71-endless-loop.ngc`
|
||||||
|
- `g71-endless-loop2/g71-endless-loop2.ngc`
|
||||||
|
- `g71-endless-loop_2/g71-endless-loop_2.ngc`
|
||||||
|
- `g71-with-g70/g71-with-g70.ngc`
|
||||||
|
|
||||||
|
完成内容:
|
||||||
|
|
||||||
|
- Node 侧将 `g71` inline loop 提成 `g71Fixtures` fixed manifest;
|
||||||
|
- Node 侧用 `interpRegressionNgcFilesRecursive(...)` 分别与 upstream vendored
|
||||||
|
fixture 目录精确对账;
|
||||||
|
- Node 侧检查 staged path 与 fixed manifest 一致;
|
||||||
|
- browser 侧增加 fixed-count 与 duplicate-free guard;
|
||||||
|
- browser 侧检查 staged path 去掉 `/work/browser-interp/` 前缀后与
|
||||||
|
`dir/file` 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
|
||||||
|
```
|
||||||
|
|
||||||
|
结果:全部通过。
|
||||||
|
|
||||||
|
下一步建议:
|
||||||
|
|
||||||
|
继续处理已有 fixed manifest 的 direct-file fixtures。优先候选:`bad` expected-error
|
||||||
|
目录,按现有 `badInterpFixtures` fixed list 补 staged path 对账;只校验文件清单
|
||||||
|
和 staging 路径,不改变 expected-error 语义。也可以继续找短小单文件 case,但仍需
|
||||||
|
保持每批 2 到 3 个或自然成组,不推进 blocked runtime promotion。
|
||||||
|
|||||||
@@ -7185,7 +7185,7 @@
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
for (const g71Fixture of [
|
const g71Fixtures = [
|
||||||
{
|
{
|
||||||
name: "endless_loop",
|
name: "endless_loop",
|
||||||
dir: "g71-endless-loop",
|
dir: "g71-endless-loop",
|
||||||
@@ -7237,8 +7237,16 @@
|
|||||||
"canon_event=STRAIGHT_FEED line=-1 x=15 y=0 z=-38.1",
|
"canon_event=STRAIGHT_FEED line=-1 x=15 y=0 z=-38.1",
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
]) {
|
];
|
||||||
|
if (g71Fixtures.length !== 4 || new Set(g71Fixtures.map((fixture) => `${fixture.dir}/${fixture.file}`)).size !== g71Fixtures.length) {
|
||||||
|
throw new Error("browser_interp_g71_fixture_coverage: list drift");
|
||||||
|
}
|
||||||
|
for (const g71Fixture of g71Fixtures) {
|
||||||
const g71Path = await writeInterpRegressionFile(interp, g71Fixture.dir, g71Fixture.file);
|
const g71Path = await writeInterpRegressionFile(interp, g71Fixture.dir, g71Fixture.file);
|
||||||
|
const g71StagedRelativeNgcFile = g71Path.replace("/work/browser-interp/", "");
|
||||||
|
if (g71StagedRelativeNgcFile !== `${g71Fixture.dir}/${g71Fixture.file}`) {
|
||||||
|
throw new Error(`browser_interp_g71_${g71Fixture.name}_staging_manifest: list drift`);
|
||||||
|
}
|
||||||
verifyExpectedOutput(
|
verifyExpectedOutput(
|
||||||
`browser_interp_g71_${g71Fixture.name}`,
|
`browser_interp_g71_${g71Fixture.name}`,
|
||||||
interp.runFile(g71Path),
|
interp.runFile(g71Path),
|
||||||
|
|||||||
@@ -2132,7 +2132,7 @@ for (const g72Fixture of g72Fixtures) {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
for (const g71Fixture of [
|
const g71Fixtures = [
|
||||||
{
|
{
|
||||||
name: "endless_loop",
|
name: "endless_loop",
|
||||||
dir: "g71-endless-loop",
|
dir: "g71-endless-loop",
|
||||||
@@ -2184,8 +2184,19 @@ for (const g71Fixture of [
|
|||||||
"canon_event=STRAIGHT_FEED line=-1 x=15 y=0 z=-38.1",
|
"canon_event=STRAIGHT_FEED line=-1 x=15 y=0 z=-38.1",
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
]) {
|
];
|
||||||
|
for (const g71Fixture of g71Fixtures) {
|
||||||
|
assert.deepEqual(
|
||||||
|
[g71Fixture.file],
|
||||||
|
interpRegressionNgcFilesRecursive(g71Fixture.dir),
|
||||||
|
`interp ${g71Fixture.dir} fixture coverage drift`,
|
||||||
|
);
|
||||||
const g71Path = writeInterpRegressionFile(g71Fixture.dir, g71Fixture.file);
|
const g71Path = writeInterpRegressionFile(g71Fixture.dir, g71Fixture.file);
|
||||||
|
assert.deepEqual(
|
||||||
|
[g71Path],
|
||||||
|
[`/work/interp/${g71Fixture.dir}/${g71Fixture.file}`],
|
||||||
|
`interp ${g71Fixture.dir} staging manifest drift`,
|
||||||
|
);
|
||||||
verifyExpectedOutput(
|
verifyExpectedOutput(
|
||||||
`interp_g71_${g71Fixture.name}_wasm`,
|
`interp_g71_${g71Fixture.name}_wasm`,
|
||||||
interp.runFile(g71Path),
|
interp.runFile(g71Path),
|
||||||
|
|||||||
Reference in New Issue
Block a user