Guard final interp per-file staging paths
This commit is contained in:
54
text6.txt
54
text6.txt
@@ -1809,3 +1809,57 @@ wasm-port/tests/host/verify_host_smokes.sh
|
||||
fixed manifest 和 Node/browser coverage,适合直接切换到 per-file helper。其后再按
|
||||
小批量处理 `do-while-break`、`cam-nisley`、`g76`。继续避免 blocked runtime promotion、
|
||||
browser full inventory 扩面和 JS CNC 语义实现。
|
||||
|
||||
四十二、2026-06-13 继续执行记录:final interp directory per-file staging guard
|
||||
|
||||
本批继续收敛剩余 ordinary interp directory aggregate staging guard:
|
||||
|
||||
- `m98m99/13-named-program`
|
||||
- `do-while-break`
|
||||
- `cam-nisley`
|
||||
- `g76`
|
||||
|
||||
完成内容:
|
||||
|
||||
- Node 侧将 `m98m99/13-named-program` 从 `assertInterpRegressionStaging(...)`
|
||||
切换为 `assertInterpRegressionFilesCoverage(...)` 加
|
||||
`assertInterpRegressionFilesStaging(...)`;
|
||||
- Node 侧同步将 `do-while-break`、`cam-nisley`、`g76` 切换到 coverage helper 加
|
||||
per-file staging helper;
|
||||
- browser 侧将上述 4 组切换为 `assertInterpRegressionFilesStaging(...)`;
|
||||
- 删除 Node/browser 侧已无调用的 ordinary `assertInterpRegressionStaging(...)`
|
||||
aggregate helper;
|
||||
- `cam-nisley` 和 `g76` 运行时生成的 `test.ini` 仍保持测试内生成,不纳入 vendored
|
||||
staged manifest;
|
||||
- browser 侧仍不枚举目录;
|
||||
- 仅整理 host/filesystem staging guard,不改变 do-while、CAM、G76 threading、
|
||||
named-program 或 interpreter 语义。
|
||||
|
||||
已运行验证:
|
||||
|
||||
```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_INI_BUILD=1 SKIP_INTERP_BUILD=1 wasm-port/tests/browser/verify_interp_browser.sh
|
||||
SKIP_INTERP_BUILD=1 wasm-port/tests/wasm/node/verify_sim_configs_inventory_wasm.sh
|
||||
wasm-port/tests/host/verify_host_smokes.sh
|
||||
```
|
||||
|
||||
结果:全部通过。
|
||||
|
||||
下一步建议:
|
||||
|
||||
ordinary interp directory aggregate guard 已清空。下一批建议继续按专用域收敛 staged
|
||||
path helper,优先候选:
|
||||
|
||||
- ccomp 专用 helper:`lathe-comp`、`mill-g90g91g92`、`mill-line-arc-entry`、
|
||||
`mill-zchanges`
|
||||
- g10 专用 helper:`g10-l1-l10`、`g10-l11`、`g10-l2-while-active`、
|
||||
`g10-l20-while-active`、`g10-with-g92`
|
||||
- remap 专用 helper保留 expected-unstaged 语义,需单独小心处理
|
||||
|
||||
建议下一批先处理 ccomp 4 组,因为 file manifest 固定为 `test.ngc`、`test.tbl`,
|
||||
且 Node/browser coverage 已成型。继续避免 blocked runtime promotion、browser full
|
||||
inventory 扩面和 JS CNC 语义实现。
|
||||
|
||||
@@ -4705,16 +4705,6 @@
|
||||
return wasmDir;
|
||||
}
|
||||
|
||||
function assertInterpRegressionStaging(name, files, wasmDir) {
|
||||
if (files.length === 0 || new Set(files).size !== files.length) {
|
||||
throw new Error(`browser_interp_${name}_fixture_coverage: list drift`);
|
||||
}
|
||||
const interpStagedRelativeFiles = files.map((file) => `${wasmDir}/${file}`.replace(`/work/browser-interp/${name}/`, ""));
|
||||
if (interpStagedRelativeFiles.join(",") !== files.join(",")) {
|
||||
throw new Error(`browser_interp_${name}_staging_manifest: list drift`);
|
||||
}
|
||||
}
|
||||
|
||||
async function writeCcompRegressionFiles(interp, name) {
|
||||
const sourceDir = `../../vendor/linuxcnc/tests/ccomp/${name}`;
|
||||
const wasmDir = `/work/browser-ccomp/${name}`;
|
||||
@@ -6374,7 +6364,7 @@
|
||||
"do-while-break",
|
||||
doWhileBreakNgcFiles,
|
||||
);
|
||||
assertInterpRegressionStaging("do-while-break", doWhileBreakNgcFiles, doWhileBreakDir);
|
||||
assertInterpRegressionFilesStaging("do-while-break", doWhileBreakNgcFiles, doWhileBreakDir);
|
||||
const doWhileBreakPath = `${doWhileBreakDir}/test.ngc`;
|
||||
verifyExpectedOutput(
|
||||
"browser_interp_do_while_break",
|
||||
@@ -6599,7 +6589,7 @@
|
||||
"test.tbl",
|
||||
];
|
||||
const camNisleyDir = await writeInterpRegressionFiles(interp, "cam-nisley", camNisleyFiles);
|
||||
assertInterpRegressionStaging("cam-nisley", camNisleyFiles, camNisleyDir);
|
||||
assertInterpRegressionFilesStaging("cam-nisley", camNisleyFiles, camNisleyDir);
|
||||
interp.writeTextFile(
|
||||
`${camNisleyDir}/test.ini`,
|
||||
[
|
||||
@@ -7296,7 +7286,7 @@
|
||||
"test.tbl",
|
||||
];
|
||||
const g76Dir = await writeInterpRegressionFiles(interp, "g76", g76Files);
|
||||
assertInterpRegressionStaging("g76", g76Files, g76Dir);
|
||||
assertInterpRegressionFilesStaging("g76", g76Files, g76Dir);
|
||||
interp.writeTextFile(
|
||||
`${g76Dir}/test.ini`,
|
||||
[
|
||||
@@ -8292,7 +8282,7 @@
|
||||
"m98m99/13-named-program",
|
||||
m98m99NamedProgramFiles,
|
||||
);
|
||||
assertInterpRegressionStaging(
|
||||
assertInterpRegressionFilesStaging(
|
||||
"m98m99/13-named-program",
|
||||
m98m99NamedProgramFiles,
|
||||
m98m99NamedProgramDir,
|
||||
|
||||
@@ -323,15 +323,6 @@ function assertInterpRegressionFilesStaging(name, files, wasmDir) {
|
||||
}
|
||||
}
|
||||
|
||||
function assertInterpRegressionStaging(name, files, wasmDir) {
|
||||
assertInterpRegressionFilesCoverage(name, files);
|
||||
assert.deepEqual(
|
||||
files.map((file) => `${wasmDir}/${file}`),
|
||||
files.map((file) => `/work/interp/${name}/${file}`),
|
||||
`interp ${name} staging manifest drift`,
|
||||
);
|
||||
}
|
||||
|
||||
function interpRegressionNgcFiles(name) {
|
||||
const sourceDir = resolve(rootDir, "vendor/linuxcnc/tests/interp", name);
|
||||
return readdirSync(sourceDir)
|
||||
@@ -1365,7 +1356,8 @@ const doWhileBreakNgcFiles = [
|
||||
"test.ngc",
|
||||
];
|
||||
const doWhileBreakDir = writeInterpRegressionFiles("do-while-break", doWhileBreakNgcFiles);
|
||||
assertInterpRegressionStaging("do-while-break", doWhileBreakNgcFiles, doWhileBreakDir);
|
||||
assertInterpRegressionFilesCoverage("do-while-break", doWhileBreakNgcFiles);
|
||||
assertInterpRegressionFilesStaging("do-while-break", doWhileBreakNgcFiles, doWhileBreakDir);
|
||||
const doWhileBreakPath = `${doWhileBreakDir}/test.ngc`;
|
||||
verifyExpectedOutput(
|
||||
"interp_do_while_break_wasm",
|
||||
@@ -1583,7 +1575,8 @@ const camNisleyFiles = [
|
||||
"test.tbl",
|
||||
];
|
||||
const camNisleyDir = writeInterpRegressionFiles("cam-nisley", camNisleyFiles);
|
||||
assertInterpRegressionStaging("cam-nisley", camNisleyFiles, camNisleyDir);
|
||||
assertInterpRegressionFilesCoverage("cam-nisley", camNisleyFiles);
|
||||
assertInterpRegressionFilesStaging("cam-nisley", camNisleyFiles, camNisleyDir);
|
||||
interp.writeTextFile(
|
||||
`${camNisleyDir}/test.ini`,
|
||||
[
|
||||
@@ -2265,7 +2258,8 @@ const g76Files = [
|
||||
"test.tbl",
|
||||
];
|
||||
const g76Dir = writeInterpRegressionFiles("g76", g76Files);
|
||||
assertInterpRegressionStaging("g76", g76Files, g76Dir);
|
||||
assertInterpRegressionFilesCoverage("g76", g76Files);
|
||||
assertInterpRegressionFilesStaging("g76", g76Files, g76Dir);
|
||||
interp.writeTextFile(
|
||||
`${g76Dir}/test.ini`,
|
||||
[
|
||||
@@ -3247,7 +3241,11 @@ const m98m99NamedProgramDir = writeInterpRegressionFiles(
|
||||
"m98m99/13-named-program",
|
||||
m98m99NamedProgramFiles,
|
||||
);
|
||||
assertInterpRegressionStaging(
|
||||
assertInterpRegressionFilesCoverage(
|
||||
"m98m99/13-named-program",
|
||||
m98m99NamedProgramFiles,
|
||||
);
|
||||
assertInterpRegressionFilesStaging(
|
||||
"m98m99/13-named-program",
|
||||
m98m99NamedProgramFiles,
|
||||
m98m99NamedProgramDir,
|
||||
|
||||
Reference in New Issue
Block a user