Guard oword-unwind staging manifest
This commit is contained in:
56
text5.txt
56
text5.txt
@@ -6577,3 +6577,59 @@ wasm-port/tests/native/verify_native_probes.sh
|
||||
2. 或暂停新增 coverage,保持当前 native/Node/browser gate 绿色;
|
||||
3. 若 `verify_nc_files.sh` 再次出现 `comp-g1.ngc` unexpected failure,再单独调查
|
||||
tool-table staging/build cache 顺序,而不是改 expected baseline。
|
||||
|
||||
六十九、2026-06-12 继续执行记录:oword-unwind staging manifest guard
|
||||
|
||||
本轮继续当前 host 可执行路线,选择已有 INI-context 覆盖的
|
||||
`tests/interp/oword-unwind` 做小范围 staging manifest guard。不新增 runtime 面,
|
||||
不执行任何 `ENABLE_*_RUNTIME_PROBE=1` opt-in native probe。
|
||||
|
||||
1. 覆盖对账。
|
||||
|
||||
`tests/interp/oword-unwind` 当前 upstream `.ngc` 文件:
|
||||
|
||||
```text
|
||||
fail.ngc
|
||||
test.ngc
|
||||
```
|
||||
|
||||
该 family 已通过 `stageInterpIniContext("oword-unwind")` 在 Node/browser 中执行
|
||||
覆盖,并依赖 `[RS274NGC]SUBROUTINE_PATH=.` staging `fail.ngc`。
|
||||
|
||||
2. 更新。
|
||||
|
||||
更新:
|
||||
|
||||
- `wasm-port/tests/wasm/node/verify_interp_wasm.mjs`
|
||||
- `wasm-port/tests/browser/interp_smoke.html`
|
||||
|
||||
Node 新增:
|
||||
|
||||
- `owordUnwindNgcFiles` 固定 `fail.ngc` 和 `test.ngc`;
|
||||
- 与 `interpRegressionNgcFilesRecursive("oword-unwind")` 精确对账;
|
||||
- 检查 `stageInterpIniContext()` 返回的 `plan.files` 中 `.ngc` 文件集合与该
|
||||
fixed list 一致。
|
||||
|
||||
Browser 新增:
|
||||
|
||||
- fixed-count 和 duplicate-free guard;
|
||||
- 检查 browser `stageInterpIniContext()` 返回的 `plan.files` 中 `.ngc` 文件集合
|
||||
与 fixed list 一致;
|
||||
- browser 仍不枚举目录。
|
||||
|
||||
3. 下一步工作建议。
|
||||
|
||||
先复跑:
|
||||
|
||||
```bash
|
||||
git diff --check
|
||||
wasm-port/tests/wasm/node/verify_interp_wasm.sh
|
||||
wasm-port/tests/browser/verify_interp_browser.sh
|
||||
wasm-port/tests/host/verify_host_smokes.sh
|
||||
```
|
||||
|
||||
如果通过,做小提交,建议 message:
|
||||
|
||||
```text
|
||||
Guard oword-unwind staging manifest
|
||||
```
|
||||
|
||||
@@ -7344,6 +7344,21 @@
|
||||
);
|
||||
|
||||
const owordUnwindPlan = await stageInterpIniContext(interp, "oword-unwind");
|
||||
const owordUnwindNgcFiles = [
|
||||
"fail.ngc",
|
||||
"test.ngc",
|
||||
];
|
||||
if (owordUnwindNgcFiles.length !== 2 || new Set(owordUnwindNgcFiles).size !== owordUnwindNgcFiles.length) {
|
||||
throw new Error("browser_interp_oword_unwind_fixture_coverage: list drift");
|
||||
}
|
||||
const owordUnwindStagedNgcFiles = owordUnwindPlan.files
|
||||
.map((file) => file.sourceRel)
|
||||
.filter((sourceRel) => sourceRel.endsWith(".ngc"))
|
||||
.map((sourceRel) => sourceRel.replace("tests/interp/oword-unwind/", ""))
|
||||
.sort();
|
||||
if (owordUnwindStagedNgcFiles.join(",") !== owordUnwindNgcFiles.join(",")) {
|
||||
throw new Error("browser_interp_oword_unwind_staging_manifest: list drift");
|
||||
}
|
||||
verifyExpectedOutput(
|
||||
"browser_interp_oword_unwind",
|
||||
interp.runFileWithIniContinueOnError(
|
||||
|
||||
@@ -2242,6 +2242,24 @@ verifyExpectedOutput(
|
||||
);
|
||||
|
||||
const owordUnwindPlan = stageInterpIniContext("oword-unwind");
|
||||
const owordUnwindNgcFiles = [
|
||||
"fail.ngc",
|
||||
"test.ngc",
|
||||
];
|
||||
assert.deepEqual(
|
||||
owordUnwindNgcFiles,
|
||||
interpRegressionNgcFilesRecursive("oword-unwind"),
|
||||
"interp oword-unwind fixture coverage drift",
|
||||
);
|
||||
assert.deepEqual(
|
||||
owordUnwindPlan.files
|
||||
.map((file) => file.sourceRel)
|
||||
.filter((sourceRel) => sourceRel.endsWith(".ngc"))
|
||||
.map((sourceRel) => sourceRel.replace("tests/interp/oword-unwind/", ""))
|
||||
.sort(),
|
||||
owordUnwindNgcFiles,
|
||||
"interp oword-unwind staging manifest drift",
|
||||
);
|
||||
verifyExpectedOutput(
|
||||
"interp_oword_unwind_wasm",
|
||||
interp.runFileWithIniContinueOnError(
|
||||
|
||||
Reference in New Issue
Block a user