Guard g10 per-file staging paths
This commit is contained in:
52
text6.txt
52
text6.txt
@@ -1917,3 +1917,55 @@ wasm-port/tests/host/verify_host_smokes.sh
|
|||||||
注意 `test.tbl` 存在时 `test.ini` 仍由 `writeG10RegressionFiles(...)` 运行时生成,
|
注意 `test.tbl` 存在时 `test.ini` 仍由 `writeG10RegressionFiles(...)` 运行时生成,
|
||||||
不要纳入 vendored staged manifest。继续避免 blocked runtime promotion、browser full
|
不要纳入 vendored staged manifest。继续避免 blocked runtime promotion、browser full
|
||||||
inventory 扩面和 JS CNC 语义实现。
|
inventory 扩面和 JS CNC 语义实现。
|
||||||
|
|
||||||
|
四十四、2026-06-13 继续执行记录:g10 per-file staging helper guard
|
||||||
|
|
||||||
|
本批按第 43 批建议处理 g10 专用 staged path helper:
|
||||||
|
|
||||||
|
- `g10-l1-l10`
|
||||||
|
- `g10-l11`
|
||||||
|
- `g10-l2-while-active`
|
||||||
|
- `g10-l20-while-active`
|
||||||
|
- `g10-with-g92`
|
||||||
|
|
||||||
|
完成内容:
|
||||||
|
|
||||||
|
- Node 侧将 `assertG10RegressionStaging(...)` 拆分为
|
||||||
|
`assertG10RegressionCoverage(...)` 和 `assertG10RegressionFilesStaging(...)`;
|
||||||
|
- Node 侧保留 vendored `.ngc/.tbl` manifest coverage;
|
||||||
|
- Node 侧将 5 个 g10 fixture 切换为 coverage helper 加 per-file staging helper;
|
||||||
|
- browser 侧将 g10 helper 改为逐个文件检查
|
||||||
|
`/work/browser-interp/g10/<name>/<file>` staged path;
|
||||||
|
- browser 侧同步替换 5 个 g10 fixture 调用;
|
||||||
|
- `test.tbl` 存在时,`test.ini` 仍由 `writeG10RegressionFiles(...)` 运行时生成,
|
||||||
|
不纳入 vendored staged manifest;
|
||||||
|
- browser 侧仍不枚举目录;
|
||||||
|
- 仅整理 host/filesystem staging guard,不改变 G10 coordinate/tool offset、G92、
|
||||||
|
generated INI 或 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
|
||||||
|
```
|
||||||
|
|
||||||
|
结果:全部通过。
|
||||||
|
|
||||||
|
下一步建议:
|
||||||
|
|
||||||
|
继续处理剩余 remap 专用 helper,但必须保留 expected-unstaged 语义。优先小批量候选:
|
||||||
|
|
||||||
|
- `duplicate-o-word`
|
||||||
|
- `fail/args.0`
|
||||||
|
- `fail/args.1`
|
||||||
|
|
||||||
|
这些 remap fixture file list 较短、没有 expected-unstaged 额外清单,适合先将
|
||||||
|
`assertRemapRegressionStaging(...)` 拆成 coverage helper 与 per-file staging helper。
|
||||||
|
`nested-remaps-oword` 含 expected-unstaged 文件,应留到后续单独处理。继续避免
|
||||||
|
blocked runtime promotion、browser full inventory 扩面和 JS CNC 语义实现。
|
||||||
|
|||||||
@@ -4765,13 +4765,14 @@
|
|||||||
return wasmDir;
|
return wasmDir;
|
||||||
}
|
}
|
||||||
|
|
||||||
function assertG10RegressionStaging(name, files, wasmDir) {
|
function assertG10RegressionFilesStaging(name, files, wasmDir) {
|
||||||
if (files.length === 0 || new Set(files).size !== files.length) {
|
if (files.length === 0 || new Set(files).size !== files.length) {
|
||||||
throw new Error(`browser_interp_g10_${name}_fixture_coverage: list drift`);
|
throw new Error(`browser_interp_g10_${name}_fixture_coverage: list drift`);
|
||||||
}
|
}
|
||||||
const g10StagedRelativeFiles = files.map((file) => `${wasmDir}/${file}`.replace(`/work/browser-interp/g10/${name}/`, ""));
|
for (const file of files) {
|
||||||
if (g10StagedRelativeFiles.join(",") !== files.join(",")) {
|
if (`${wasmDir}/${file}` !== `/work/browser-interp/g10/${name}/${file}`) {
|
||||||
throw new Error(`browser_interp_g10_${name}_staging_manifest: list drift`);
|
throw new Error(`browser_interp_g10_${name}_${file}_staging_manifest: list drift`);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -8364,7 +8365,7 @@
|
|||||||
"test.ngc",
|
"test.ngc",
|
||||||
"test.tbl",
|
"test.tbl",
|
||||||
]);
|
]);
|
||||||
assertG10RegressionStaging("g10-l1-l10", ["test.ngc", "test.tbl"], g10L1L10Dir);
|
assertG10RegressionFilesStaging("g10-l1-l10", ["test.ngc", "test.tbl"], g10L1L10Dir);
|
||||||
verifyExpectedOutput(
|
verifyExpectedOutput(
|
||||||
"browser_interp_g10_l1_l10",
|
"browser_interp_g10_l1_l10",
|
||||||
interp.runFileWithIni(`${g10L1L10Dir}/test.ngc`, `${g10L1L10Dir}/test.ini`),
|
interp.runFileWithIni(`${g10L1L10Dir}/test.ngc`, `${g10L1L10Dir}/test.ini`),
|
||||||
@@ -8387,7 +8388,7 @@
|
|||||||
"test.ngc",
|
"test.ngc",
|
||||||
"test.tbl",
|
"test.tbl",
|
||||||
]);
|
]);
|
||||||
assertG10RegressionStaging("g10-l11", ["test.ngc", "test.tbl"], g10L11Dir);
|
assertG10RegressionFilesStaging("g10-l11", ["test.ngc", "test.tbl"], g10L11Dir);
|
||||||
verifyExpectedOutput(
|
verifyExpectedOutput(
|
||||||
"browser_interp_g10_l11",
|
"browser_interp_g10_l11",
|
||||||
interp.runFileWithIni(`${g10L11Dir}/test.ngc`, `${g10L11Dir}/test.ini`),
|
interp.runFileWithIni(`${g10L11Dir}/test.ngc`, `${g10L11Dir}/test.ini`),
|
||||||
@@ -8409,7 +8410,7 @@
|
|||||||
"g10-l2-while-active",
|
"g10-l2-while-active",
|
||||||
["test.ngc"],
|
["test.ngc"],
|
||||||
);
|
);
|
||||||
assertG10RegressionStaging("g10-l2-while-active", ["test.ngc"], g10L2WhileActiveDir);
|
assertG10RegressionFilesStaging("g10-l2-while-active", ["test.ngc"], g10L2WhileActiveDir);
|
||||||
verifyExpectedOutput(
|
verifyExpectedOutput(
|
||||||
"browser_interp_g10_l2_while_active",
|
"browser_interp_g10_l2_while_active",
|
||||||
interp.runFile(`${g10L2WhileActiveDir}/test.ngc`),
|
interp.runFile(`${g10L2WhileActiveDir}/test.ngc`),
|
||||||
@@ -8432,7 +8433,7 @@
|
|||||||
"g10-l20-while-active",
|
"g10-l20-while-active",
|
||||||
["test.ngc"],
|
["test.ngc"],
|
||||||
);
|
);
|
||||||
assertG10RegressionStaging("g10-l20-while-active", ["test.ngc"], g10L20WhileActiveDir);
|
assertG10RegressionFilesStaging("g10-l20-while-active", ["test.ngc"], g10L20WhileActiveDir);
|
||||||
verifyExpectedOutput(
|
verifyExpectedOutput(
|
||||||
"browser_interp_g10_l20_while_active",
|
"browser_interp_g10_l20_while_active",
|
||||||
interp.runFile(`${g10L20WhileActiveDir}/test.ngc`),
|
interp.runFile(`${g10L20WhileActiveDir}/test.ngc`),
|
||||||
@@ -8453,7 +8454,7 @@
|
|||||||
"test.ngc",
|
"test.ngc",
|
||||||
"test.tbl",
|
"test.tbl",
|
||||||
]);
|
]);
|
||||||
assertG10RegressionStaging("g10-with-g92", ["test.ngc", "test.tbl"], g10WithG92Dir);
|
assertG10RegressionFilesStaging("g10-with-g92", ["test.ngc", "test.tbl"], g10WithG92Dir);
|
||||||
verifyExpectedOutput(
|
verifyExpectedOutput(
|
||||||
"browser_interp_g10_with_g92",
|
"browser_interp_g10_with_g92",
|
||||||
interp.runFileWithIni(`${g10WithG92Dir}/test.ngc`, `${g10WithG92Dir}/test.ini`),
|
interp.runFileWithIni(`${g10WithG92Dir}/test.ngc`, `${g10WithG92Dir}/test.ini`),
|
||||||
|
|||||||
@@ -422,7 +422,7 @@ function writeG10RegressionFiles(name, files) {
|
|||||||
return wasmDir;
|
return wasmDir;
|
||||||
}
|
}
|
||||||
|
|
||||||
function assertG10RegressionStaging(name, files, wasmDir) {
|
function assertG10RegressionCoverage(name, files) {
|
||||||
const sourceDir = resolve(rootDir, "vendor/linuxcnc/tests/interp/g10", name);
|
const sourceDir = resolve(rootDir, "vendor/linuxcnc/tests/interp/g10", name);
|
||||||
assert.deepEqual(
|
assert.deepEqual(
|
||||||
readdirSync(sourceDir)
|
readdirSync(sourceDir)
|
||||||
@@ -431,11 +431,16 @@ function assertG10RegressionStaging(name, files, wasmDir) {
|
|||||||
[...files].sort(),
|
[...files].sort(),
|
||||||
`interp g10 ${name} fixture coverage drift`,
|
`interp g10 ${name} fixture coverage drift`,
|
||||||
);
|
);
|
||||||
assert.deepEqual(
|
}
|
||||||
files.map((file) => `${wasmDir}/${file}`),
|
|
||||||
files.map((file) => `/work/interp/g10/${name}/${file}`),
|
function assertG10RegressionFilesStaging(name, files, wasmDir) {
|
||||||
`interp g10 ${name} staging manifest drift`,
|
for (const file of files) {
|
||||||
);
|
assert.equal(
|
||||||
|
`${wasmDir}/${file}`,
|
||||||
|
`/work/interp/g10/${name}/${file}`,
|
||||||
|
`interp g10 ${name}/${file} staging manifest drift`,
|
||||||
|
);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function writeUserMCodeFixture(name, code) {
|
function writeUserMCodeFixture(name, code) {
|
||||||
@@ -3333,7 +3338,8 @@ assert.deepEqual(
|
|||||||
);
|
);
|
||||||
|
|
||||||
const g10L1L10Dir = writeG10RegressionFiles("g10-l1-l10", ["test.ngc", "test.tbl"]);
|
const g10L1L10Dir = writeG10RegressionFiles("g10-l1-l10", ["test.ngc", "test.tbl"]);
|
||||||
assertG10RegressionStaging("g10-l1-l10", ["test.ngc", "test.tbl"], g10L1L10Dir);
|
assertG10RegressionCoverage("g10-l1-l10", ["test.ngc", "test.tbl"]);
|
||||||
|
assertG10RegressionFilesStaging("g10-l1-l10", ["test.ngc", "test.tbl"], g10L1L10Dir);
|
||||||
verifyExpectedOutput(
|
verifyExpectedOutput(
|
||||||
"interp_g10_l1_l10_wasm",
|
"interp_g10_l1_l10_wasm",
|
||||||
interp.runFileWithIni(`${g10L1L10Dir}/test.ngc`, `${g10L1L10Dir}/test.ini`),
|
interp.runFileWithIni(`${g10L1L10Dir}/test.ngc`, `${g10L1L10Dir}/test.ini`),
|
||||||
@@ -3353,7 +3359,8 @@ verifyExpectedOutput(
|
|||||||
);
|
);
|
||||||
|
|
||||||
const g10L11Dir = writeG10RegressionFiles("g10-l11", ["test.ngc", "test.tbl"]);
|
const g10L11Dir = writeG10RegressionFiles("g10-l11", ["test.ngc", "test.tbl"]);
|
||||||
assertG10RegressionStaging("g10-l11", ["test.ngc", "test.tbl"], g10L11Dir);
|
assertG10RegressionCoverage("g10-l11", ["test.ngc", "test.tbl"]);
|
||||||
|
assertG10RegressionFilesStaging("g10-l11", ["test.ngc", "test.tbl"], g10L11Dir);
|
||||||
verifyExpectedOutput(
|
verifyExpectedOutput(
|
||||||
"interp_g10_l11_wasm",
|
"interp_g10_l11_wasm",
|
||||||
interp.runFileWithIni(`${g10L11Dir}/test.ngc`, `${g10L11Dir}/test.ini`),
|
interp.runFileWithIni(`${g10L11Dir}/test.ngc`, `${g10L11Dir}/test.ini`),
|
||||||
@@ -3371,7 +3378,8 @@ verifyExpectedOutput(
|
|||||||
);
|
);
|
||||||
|
|
||||||
const g10L2WhileActiveDir = writeG10RegressionFiles("g10-l2-while-active", ["test.ngc"]);
|
const g10L2WhileActiveDir = writeG10RegressionFiles("g10-l2-while-active", ["test.ngc"]);
|
||||||
assertG10RegressionStaging("g10-l2-while-active", ["test.ngc"], g10L2WhileActiveDir);
|
assertG10RegressionCoverage("g10-l2-while-active", ["test.ngc"]);
|
||||||
|
assertG10RegressionFilesStaging("g10-l2-while-active", ["test.ngc"], g10L2WhileActiveDir);
|
||||||
verifyExpectedOutput(
|
verifyExpectedOutput(
|
||||||
"interp_g10_l2_while_active_wasm",
|
"interp_g10_l2_while_active_wasm",
|
||||||
interp.runFile(`${g10L2WhileActiveDir}/test.ngc`),
|
interp.runFile(`${g10L2WhileActiveDir}/test.ngc`),
|
||||||
@@ -3390,7 +3398,8 @@ verifyExpectedOutput(
|
|||||||
);
|
);
|
||||||
|
|
||||||
const g10L20WhileActiveDir = writeG10RegressionFiles("g10-l20-while-active", ["test.ngc"]);
|
const g10L20WhileActiveDir = writeG10RegressionFiles("g10-l20-while-active", ["test.ngc"]);
|
||||||
assertG10RegressionStaging("g10-l20-while-active", ["test.ngc"], g10L20WhileActiveDir);
|
assertG10RegressionCoverage("g10-l20-while-active", ["test.ngc"]);
|
||||||
|
assertG10RegressionFilesStaging("g10-l20-while-active", ["test.ngc"], g10L20WhileActiveDir);
|
||||||
verifyExpectedOutput(
|
verifyExpectedOutput(
|
||||||
"interp_g10_l20_while_active_wasm",
|
"interp_g10_l20_while_active_wasm",
|
||||||
interp.runFile(`${g10L20WhileActiveDir}/test.ngc`),
|
interp.runFile(`${g10L20WhileActiveDir}/test.ngc`),
|
||||||
@@ -3408,7 +3417,8 @@ verifyExpectedOutput(
|
|||||||
);
|
);
|
||||||
|
|
||||||
const g10WithG92Dir = writeG10RegressionFiles("g10-with-g92", ["test.ngc", "test.tbl"]);
|
const g10WithG92Dir = writeG10RegressionFiles("g10-with-g92", ["test.ngc", "test.tbl"]);
|
||||||
assertG10RegressionStaging("g10-with-g92", ["test.ngc", "test.tbl"], g10WithG92Dir);
|
assertG10RegressionCoverage("g10-with-g92", ["test.ngc", "test.tbl"]);
|
||||||
|
assertG10RegressionFilesStaging("g10-with-g92", ["test.ngc", "test.tbl"], g10WithG92Dir);
|
||||||
verifyExpectedOutput(
|
verifyExpectedOutput(
|
||||||
"interp_g10_with_g92_wasm",
|
"interp_g10_with_g92_wasm",
|
||||||
interp.runFileWithIni(`${g10WithG92Dir}/test.ngc`, `${g10WithG92Dir}/test.ini`),
|
interp.runFileWithIni(`${g10WithG92Dir}/test.ngc`, `${g10WithG92Dir}/test.ini`),
|
||||||
|
|||||||
Reference in New Issue
Block a user