Guard iniparam staging manifests
This commit is contained in:
97
text5.txt
97
text5.txt
@@ -6802,3 +6802,100 @@ Guard abort and m19 staging manifests
|
|||||||
提交后再继续下一批已有 INI-context fixture 的 staging manifest guard;仍保持每批
|
提交后再继续下一批已有 INI-context fixture 的 staging manifest guard;仍保持每批
|
||||||
只选少量 pure interpreter/INI-context case,并按 native/Node/browser gate 顺序
|
只选少量 pure interpreter/INI-context case,并按 native/Node/browser gate 顺序
|
||||||
复核,不推进 blocked runtime promotion。
|
复核,不推进 blocked runtime promotion。
|
||||||
|
|
||||||
|
七十二、2026-06-13 继续执行记录:iniparam staging manifest guard
|
||||||
|
|
||||||
|
本轮先按上一节建议提交稳定批次:
|
||||||
|
|
||||||
|
```text
|
||||||
|
4680639 Guard abort and m19 staging manifests
|
||||||
|
```
|
||||||
|
|
||||||
|
随后继续当前 host 可执行路线。当前 host 仍按 blocked runtime 规则处理,不执行
|
||||||
|
任何 `ENABLE_*_RUNTIME_PROBE=1` opt-in native probe。
|
||||||
|
|
||||||
|
1. 候选选择。
|
||||||
|
|
||||||
|
选择已有 Node/browser 执行覆盖、且通过 `stageInterpIniContext()` staging
|
||||||
|
INI-context 的两个 interpreter regression family:
|
||||||
|
|
||||||
|
- `tests/interp/iniparam`
|
||||||
|
- `tests/interp/iniparam-failassign`
|
||||||
|
|
||||||
|
这两个 family 只验证 INI variable expansion/read-only assignment 相关解释器行为,
|
||||||
|
不需要 HAL/task/tool DB/Python remap/user-M process runtime。本轮只固定
|
||||||
|
host/filesystem staging manifest 对账,不新增 CNC 语义。
|
||||||
|
|
||||||
|
2. 覆盖对账。
|
||||||
|
|
||||||
|
`tests/interp/iniparam` 当前 upstream `.ngc` 文件:
|
||||||
|
|
||||||
|
```text
|
||||||
|
test.ngc
|
||||||
|
```
|
||||||
|
|
||||||
|
`tests/interp/iniparam-failassign` 当前 upstream `.ngc` 文件:
|
||||||
|
|
||||||
|
```text
|
||||||
|
test.ngc
|
||||||
|
```
|
||||||
|
|
||||||
|
3. 更新。
|
||||||
|
|
||||||
|
更新:
|
||||||
|
|
||||||
|
- `wasm-port/tests/wasm/node/verify_interp_wasm.mjs`
|
||||||
|
- `wasm-port/tests/browser/interp_smoke.html`
|
||||||
|
|
||||||
|
Node 新增:
|
||||||
|
|
||||||
|
- `iniparamNgcFiles` 固定 `test.ngc`;
|
||||||
|
- `iniparamFailassignNgcFiles` 固定 `test.ngc`;
|
||||||
|
- 分别与 `interpRegressionNgcFilesRecursive(...)` 精确对账;
|
||||||
|
- 检查 `stageInterpIniContext()` 返回的 `plan.files` 中 `.ngc` 文件集合与
|
||||||
|
fixed list 一致。
|
||||||
|
|
||||||
|
Browser 新增:
|
||||||
|
|
||||||
|
- fixed-count 和 duplicate-free guard;
|
||||||
|
- 检查 browser `stageInterpIniContext()` 返回的 `plan.files` 中 `.ngc` 文件集合
|
||||||
|
与 fixed list 一致;
|
||||||
|
- browser 仍不枚举目录。
|
||||||
|
|
||||||
|
4. 已执行验证。
|
||||||
|
|
||||||
|
```bash
|
||||||
|
git diff --check
|
||||||
|
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_interp_wasm.sh
|
||||||
|
SKIP_INTERP_BUILD=1 wasm-port/tests/wasm/node/verify_sim_configs_inventory_wasm.sh
|
||||||
|
SKIP_INI_BUILD=1 SKIP_INTERP_BUILD=1 wasm-port/tests/browser/verify_interp_browser.sh
|
||||||
|
wasm-port/tests/host/verify_host_smokes.sh
|
||||||
|
```
|
||||||
|
|
||||||
|
结果:
|
||||||
|
|
||||||
|
- `git diff --check` clean。
|
||||||
|
- `vendor sync up to date`
|
||||||
|
- `standalone CNC semantics guard complete`
|
||||||
|
- `interp_wasm_node_smoke=ok`
|
||||||
|
- Node inventory 保持:
|
||||||
|
- `executed=28`
|
||||||
|
- `passed=28`
|
||||||
|
- `skipped=131`
|
||||||
|
- `unexpected_fail=0`
|
||||||
|
- `browser_interp_smoke=ok`
|
||||||
|
- `host_wasm_opfs_browser_smokes=ok`
|
||||||
|
|
||||||
|
5. 下一步工作建议。
|
||||||
|
|
||||||
|
当前工作集已稳定。建议先做小提交,message:
|
||||||
|
|
||||||
|
```text
|
||||||
|
Guard iniparam staging manifests
|
||||||
|
```
|
||||||
|
|
||||||
|
提交后继续下一小批已有 interpreter fixture 的 staging manifest guard。优先选择
|
||||||
|
仍已具备 Node/browser coverage、且不依赖 HAL/task/tool DB/Python remap/user-M
|
||||||
|
process 的 case;不推进 blocked runtime promotion。
|
||||||
|
|||||||
@@ -7195,6 +7195,20 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
const iniparamPlan = await stageInterpIniContext(interp, "iniparam");
|
const iniparamPlan = await stageInterpIniContext(interp, "iniparam");
|
||||||
|
const iniparamNgcFiles = [
|
||||||
|
"test.ngc",
|
||||||
|
];
|
||||||
|
if (iniparamNgcFiles.length !== 1 || new Set(iniparamNgcFiles).size !== iniparamNgcFiles.length) {
|
||||||
|
throw new Error("browser_interp_iniparam_fixture_coverage: list drift");
|
||||||
|
}
|
||||||
|
const iniparamStagedNgcFiles = iniparamPlan.files
|
||||||
|
.map((file) => file.sourceRel)
|
||||||
|
.filter((sourceRel) => sourceRel.endsWith(".ngc"))
|
||||||
|
.map((sourceRel) => sourceRel.replace("tests/interp/iniparam/", ""))
|
||||||
|
.sort();
|
||||||
|
if (iniparamStagedNgcFiles.join(",") !== iniparamNgcFiles.join(",")) {
|
||||||
|
throw new Error("browser_interp_iniparam_staging_manifest: list drift");
|
||||||
|
}
|
||||||
verifyExpectedOutput(
|
verifyExpectedOutput(
|
||||||
"browser_interp_iniparam",
|
"browser_interp_iniparam",
|
||||||
interp.runFileWithIniContinueOnError(
|
interp.runFileWithIniContinueOnError(
|
||||||
@@ -7221,6 +7235,20 @@
|
|||||||
interp,
|
interp,
|
||||||
"iniparam-failassign",
|
"iniparam-failassign",
|
||||||
);
|
);
|
||||||
|
const iniparamFailassignNgcFiles = [
|
||||||
|
"test.ngc",
|
||||||
|
];
|
||||||
|
if (iniparamFailassignNgcFiles.length !== 1 || new Set(iniparamFailassignNgcFiles).size !== iniparamFailassignNgcFiles.length) {
|
||||||
|
throw new Error("browser_interp_iniparam_failassign_fixture_coverage: list drift");
|
||||||
|
}
|
||||||
|
const iniparamFailassignStagedNgcFiles = iniparamFailassignPlan.files
|
||||||
|
.map((file) => file.sourceRel)
|
||||||
|
.filter((sourceRel) => sourceRel.endsWith(".ngc"))
|
||||||
|
.map((sourceRel) => sourceRel.replace("tests/interp/iniparam-failassign/", ""))
|
||||||
|
.sort();
|
||||||
|
if (iniparamFailassignStagedNgcFiles.join(",") !== iniparamFailassignNgcFiles.join(",")) {
|
||||||
|
throw new Error("browser_interp_iniparam_failassign_staging_manifest: list drift");
|
||||||
|
}
|
||||||
verifyExpectedOutput(
|
verifyExpectedOutput(
|
||||||
"browser_interp_iniparam_failassign",
|
"browser_interp_iniparam_failassign",
|
||||||
interp.runFileWithIni(
|
interp.runFileWithIni(
|
||||||
|
|||||||
@@ -2093,6 +2093,23 @@ assert.match(
|
|||||||
);
|
);
|
||||||
|
|
||||||
const iniparamPlan = stageInterpIniContext("iniparam");
|
const iniparamPlan = stageInterpIniContext("iniparam");
|
||||||
|
const iniparamNgcFiles = [
|
||||||
|
"test.ngc",
|
||||||
|
];
|
||||||
|
assert.deepEqual(
|
||||||
|
iniparamNgcFiles,
|
||||||
|
interpRegressionNgcFilesRecursive("iniparam"),
|
||||||
|
"interp iniparam fixture coverage drift",
|
||||||
|
);
|
||||||
|
assert.deepEqual(
|
||||||
|
iniparamPlan.files
|
||||||
|
.map((file) => file.sourceRel)
|
||||||
|
.filter((sourceRel) => sourceRel.endsWith(".ngc"))
|
||||||
|
.map((sourceRel) => sourceRel.replace("tests/interp/iniparam/", ""))
|
||||||
|
.sort(),
|
||||||
|
iniparamNgcFiles,
|
||||||
|
"interp iniparam staging manifest drift",
|
||||||
|
);
|
||||||
verifyExpectedOutput(
|
verifyExpectedOutput(
|
||||||
"interp_iniparam_wasm",
|
"interp_iniparam_wasm",
|
||||||
interp.runFileWithIniContinueOnError(
|
interp.runFileWithIniContinueOnError(
|
||||||
@@ -2116,6 +2133,23 @@ verifyExpectedOutput(
|
|||||||
);
|
);
|
||||||
|
|
||||||
const iniparamFailassignPlan = stageInterpIniContext("iniparam-failassign");
|
const iniparamFailassignPlan = stageInterpIniContext("iniparam-failassign");
|
||||||
|
const iniparamFailassignNgcFiles = [
|
||||||
|
"test.ngc",
|
||||||
|
];
|
||||||
|
assert.deepEqual(
|
||||||
|
iniparamFailassignNgcFiles,
|
||||||
|
interpRegressionNgcFilesRecursive("iniparam-failassign"),
|
||||||
|
"interp iniparam-failassign fixture coverage drift",
|
||||||
|
);
|
||||||
|
assert.deepEqual(
|
||||||
|
iniparamFailassignPlan.files
|
||||||
|
.map((file) => file.sourceRel)
|
||||||
|
.filter((sourceRel) => sourceRel.endsWith(".ngc"))
|
||||||
|
.map((sourceRel) => sourceRel.replace("tests/interp/iniparam-failassign/", ""))
|
||||||
|
.sort(),
|
||||||
|
iniparamFailassignNgcFiles,
|
||||||
|
"interp iniparam-failassign staging manifest drift",
|
||||||
|
);
|
||||||
verifyExpectedOutput(
|
verifyExpectedOutput(
|
||||||
"interp_iniparam_failassign_wasm",
|
"interp_iniparam_failassign_wasm",
|
||||||
interp.runFileWithIni(
|
interp.runFileWithIni(
|
||||||
|
|||||||
Reference in New Issue
Block a user