Guard rotation direct-file staging
This commit is contained in:
45
text6.txt
45
text6.txt
@@ -1162,3 +1162,48 @@ m98m99 direct-file 与目录级 staging guard 已基本收束。下一批建议
|
|||||||
这三个已有 Node/browser coverage 且属于同一 direct-file family,适合复用
|
这三个已有 Node/browser coverage 且属于同一 direct-file family,适合复用
|
||||||
`assertInterpRegressionFileStaging(...)` 替换当前 rotation aggregate slice。继续避免
|
`assertInterpRegressionFileStaging(...)` 替换当前 rotation aggregate slice。继续避免
|
||||||
blocked runtime promotion、browser full inventory 扩面和 JS CNC 语义实现。
|
blocked runtime promotion、browser full inventory 扩面和 JS CNC 语义实现。
|
||||||
|
|
||||||
|
二十八、2026-06-13 继续执行记录:rotation direct-file staging guard
|
||||||
|
|
||||||
|
本批转向 `rotation` direct-file family,复用 `assertInterpRegressionFileStaging(...)`
|
||||||
|
替换当前 rotation aggregate staged path guard:
|
||||||
|
|
||||||
|
- `rotation/abs-pts/test.ngc`
|
||||||
|
- `rotation/g28/g28.ngc`
|
||||||
|
- `rotation/g53/g53.ngc`
|
||||||
|
|
||||||
|
完成内容:
|
||||||
|
|
||||||
|
- Node 侧为上述 3 个 direct-file case 增加局部 staged path guard;
|
||||||
|
- Node 侧保留 `rotationRegressionFiles` 对 upstream `.ngc` manifest 的覆盖检查;
|
||||||
|
- Node 侧移除 aggregate staged path 对账;
|
||||||
|
- browser 侧同步增加 3 个局部 staged path guard;
|
||||||
|
- browser 侧保留 fixed `.ngc` manifest duplicate-free 检查;
|
||||||
|
- browser 侧移除 aggregate staged path 对账,仍不枚举目录;
|
||||||
|
- 注意 `rotation/abs-pts` vendored 目录含 `test.tbl`,但当前 smoke 未 staging 该
|
||||||
|
文件;本批只收敛现有 `.ngc` direct-file path guard,不扩大工具表语义。
|
||||||
|
|
||||||
|
已运行验证:
|
||||||
|
|
||||||
|
```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
|
||||||
|
```
|
||||||
|
|
||||||
|
结果:全部通过。
|
||||||
|
|
||||||
|
下一步建议:
|
||||||
|
|
||||||
|
继续处理其他 `writeInterpRegressionFile(...)` aggregate direct-file family。优先候选:
|
||||||
|
|
||||||
|
- `g71/g72` direct-file loop;
|
||||||
|
- 或 `good`/`bad` arc/error fixture loop。
|
||||||
|
|
||||||
|
建议先选 `g71/g72`,因为 file list 较短且已有 Node/browser coverage,适合继续复用
|
||||||
|
single-file helper 收敛 staging path guard。继续避免 blocked runtime promotion、
|
||||||
|
browser full inventory 扩面和 JS CNC 语义实现。
|
||||||
|
|||||||
@@ -7396,6 +7396,7 @@
|
|||||||
"rotation/abs-pts",
|
"rotation/abs-pts",
|
||||||
"test.ngc",
|
"test.ngc",
|
||||||
);
|
);
|
||||||
|
assertInterpRegressionFileStaging("rotation/abs-pts", "test.ngc", rotationAbsPtsPath);
|
||||||
const rotationRegressionFiles = [
|
const rotationRegressionFiles = [
|
||||||
"abs-pts/test.ngc",
|
"abs-pts/test.ngc",
|
||||||
"g28/g28.ngc",
|
"g28/g28.ngc",
|
||||||
@@ -7432,6 +7433,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
const rotationG28Path = await writeInterpRegressionFile(interp, "rotation/g28", "g28.ngc");
|
const rotationG28Path = await writeInterpRegressionFile(interp, "rotation/g28", "g28.ngc");
|
||||||
|
assertInterpRegressionFileStaging("rotation/g28", "g28.ngc", rotationG28Path);
|
||||||
const rotationG28Output = interp.runFile(rotationG28Path);
|
const rotationG28Output = interp.runFile(rotationG28Path);
|
||||||
verifyExpectedOutput(
|
verifyExpectedOutput(
|
||||||
"browser_interp_rotation_g28",
|
"browser_interp_rotation_g28",
|
||||||
@@ -7454,14 +7456,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
const rotationG53Path = await writeInterpRegressionFile(interp, "rotation/g53", "g53.ngc");
|
const rotationG53Path = await writeInterpRegressionFile(interp, "rotation/g53", "g53.ngc");
|
||||||
const rotationStagedNgcFiles = [
|
assertInterpRegressionFileStaging("rotation/g53", "g53.ngc", rotationG53Path);
|
||||||
rotationAbsPtsPath,
|
|
||||||
rotationG28Path,
|
|
||||||
rotationG53Path,
|
|
||||||
].map((path) => path.replace("/work/browser-interp/rotation/", ""));
|
|
||||||
if (rotationStagedNgcFiles.join(",") !== rotationRegressionFiles.join(",")) {
|
|
||||||
throw new Error("browser_interp_rotation_staging_manifest: list drift");
|
|
||||||
}
|
|
||||||
const rotationG53Output = interp.runFile(rotationG53Path);
|
const rotationG53Output = interp.runFile(rotationG53Path);
|
||||||
verifyExpectedOutput(
|
verifyExpectedOutput(
|
||||||
"browser_interp_rotation_g53",
|
"browser_interp_rotation_g53",
|
||||||
|
|||||||
@@ -2373,6 +2373,7 @@ verifyExpectedOutput(
|
|||||||
);
|
);
|
||||||
|
|
||||||
const rotationAbsPtsPath = writeInterpRegressionFile("rotation/abs-pts", "test.ngc");
|
const rotationAbsPtsPath = writeInterpRegressionFile("rotation/abs-pts", "test.ngc");
|
||||||
|
assertInterpRegressionFileStaging("rotation/abs-pts", "test.ngc", rotationAbsPtsPath);
|
||||||
const rotationRegressionFiles = [
|
const rotationRegressionFiles = [
|
||||||
"abs-pts/test.ngc",
|
"abs-pts/test.ngc",
|
||||||
"g28/g28.ngc",
|
"g28/g28.ngc",
|
||||||
@@ -2409,6 +2410,7 @@ assert.equal(
|
|||||||
);
|
);
|
||||||
|
|
||||||
const rotationG28Path = writeInterpRegressionFile("rotation/g28", "g28.ngc");
|
const rotationG28Path = writeInterpRegressionFile("rotation/g28", "g28.ngc");
|
||||||
|
assertInterpRegressionFileStaging("rotation/g28", "g28.ngc", rotationG28Path);
|
||||||
const rotationG28Output = interp.runFile(rotationG28Path);
|
const rotationG28Output = interp.runFile(rotationG28Path);
|
||||||
verifyExpectedOutput(
|
verifyExpectedOutput(
|
||||||
"interp_rotation_g28_wasm",
|
"interp_rotation_g28_wasm",
|
||||||
@@ -2433,15 +2435,7 @@ assert.match(
|
|||||||
);
|
);
|
||||||
|
|
||||||
const rotationG53Path = writeInterpRegressionFile("rotation/g53", "g53.ngc");
|
const rotationG53Path = writeInterpRegressionFile("rotation/g53", "g53.ngc");
|
||||||
assert.deepEqual(
|
assertInterpRegressionFileStaging("rotation/g53", "g53.ngc", rotationG53Path);
|
||||||
[
|
|
||||||
rotationAbsPtsPath,
|
|
||||||
rotationG28Path,
|
|
||||||
rotationG53Path,
|
|
||||||
],
|
|
||||||
rotationRegressionFiles.map((file) => `/work/interp/rotation/${file}`),
|
|
||||||
"interp rotation staging manifest drift",
|
|
||||||
);
|
|
||||||
const rotationG53Output = interp.runFile(rotationG53Path);
|
const rotationG53Output = interp.runFile(rotationG53Path);
|
||||||
verifyExpectedOutput(
|
verifyExpectedOutput(
|
||||||
"interp_rotation_g53_wasm",
|
"interp_rotation_g53_wasm",
|
||||||
|
|||||||
Reference in New Issue
Block a user