Guard nested remaps oword staging paths
This commit is contained in:
40
text6.txt
40
text6.txt
@@ -847,3 +847,43 @@ wasm-port/tests/host/verify_host_smokes.sh
|
|||||||
`testsub.ngc`,下一步应先判断是否应扩展 file list;若不扩展,则需要专门记录
|
`testsub.ngc`,下一步应先判断是否应扩展 file list;若不扩展,则需要专门记录
|
||||||
“vendored extra fixture intentionally unstaged”的 guard。继续避免 blocked runtime
|
“vendored extra fixture intentionally unstaged”的 guard。继续避免 blocked runtime
|
||||||
promotion、browser full inventory 扩面和 JS CNC 语义实现。
|
promotion、browser full inventory 扩面和 JS CNC 语义实现。
|
||||||
|
|
||||||
|
二十一、2026-06-13 继续执行记录:nested remaps oword unstaged fixture guard
|
||||||
|
|
||||||
|
本批继续按“remap file-list staged path guard”推进,完成剩余
|
||||||
|
`nested-remaps-oword` coverage 的 staged/unstaged 文件清单对账。
|
||||||
|
|
||||||
|
完成内容:
|
||||||
|
|
||||||
|
- Node 侧将 `nested-remaps-oword` inline remap file list 提成
|
||||||
|
`nestedRemapsOwordFiles` fixed manifest;
|
||||||
|
- Node 侧新增 `expectedUnstagedFiles` 参数,用 upstream vendored `.ini/.ngc`
|
||||||
|
文件清单与 staged manifest 加 expected-unstaged manifest 精确对账;
|
||||||
|
- Node 侧显式记录 `testsub.ngc` 为 vendored extra fixture、当前 smoke 不 staging;
|
||||||
|
- Node 侧检查 expected-unstaged 文件不得与 staged manifest 重叠;
|
||||||
|
- browser 侧新增同名 fixed manifest 与 expected-unstaged overlap guard;
|
||||||
|
- browser 侧继续只校验 fixed staged path,不依赖目录枚举;
|
||||||
|
- 仅校验文件清单与 staging 路径,不改变 remap 执行语义。
|
||||||
|
|
||||||
|
已运行验证:
|
||||||
|
|
||||||
|
```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
|
||||||
|
```
|
||||||
|
|
||||||
|
结果:全部通过。
|
||||||
|
|
||||||
|
下一步建议:
|
||||||
|
|
||||||
|
remap file-list guard 的当前显性剩余项已基本收束。下一批建议回到
|
||||||
|
`write*RegressionFiles(...)` helper 扫描,优先选择已有 Node/browser coverage、
|
||||||
|
文件清单固定且不涉及 HAL/task/tool DB/Python remap/user-M process 的 2 到 3 个
|
||||||
|
fixture;若没有合适小批次,转向补齐 staging guard 的文档索引或生成一个
|
||||||
|
machine-readable fixture coverage manifest。继续避免 blocked runtime promotion、
|
||||||
|
browser full inventory 扩面和 JS CNC 语义实现。
|
||||||
|
|||||||
@@ -4647,10 +4647,13 @@
|
|||||||
return wasmDir;
|
return wasmDir;
|
||||||
}
|
}
|
||||||
|
|
||||||
function assertRemapRegressionStaging(name, files, wasmDir) {
|
function assertRemapRegressionStaging(name, files, wasmDir, expectedUnstagedFiles = []) {
|
||||||
if (files.length === 0 || new Set(files).size !== files.length) {
|
if (files.length === 0 || new Set(files).size !== files.length) {
|
||||||
throw new Error(`browser_remap_${name}_fixture_coverage: list drift`);
|
throw new Error(`browser_remap_${name}_fixture_coverage: list drift`);
|
||||||
}
|
}
|
||||||
|
if (expectedUnstagedFiles.some((file) => files.includes(file))) {
|
||||||
|
throw new Error(`browser_remap_${name}_unstaged_fixture_overlap: list drift`);
|
||||||
|
}
|
||||||
const remapStagedRelativeFiles = files.map((file) => `${wasmDir}/${file}`.replace(`/work/browser-remap/${name}/`, ""));
|
const remapStagedRelativeFiles = files.map((file) => `${wasmDir}/${file}`.replace(`/work/browser-remap/${name}/`, ""));
|
||||||
if (remapStagedRelativeFiles.join(",") !== files.join(",")) {
|
if (remapStagedRelativeFiles.join(",") !== files.join(",")) {
|
||||||
throw new Error(`browser_remap_${name}_staging_manifest: list drift`);
|
throw new Error(`browser_remap_${name}_staging_manifest: list drift`);
|
||||||
@@ -6134,17 +6137,27 @@
|
|||||||
].join("\n"),
|
].join("\n"),
|
||||||
);
|
);
|
||||||
|
|
||||||
|
const nestedRemapsOwordFiles = [
|
||||||
|
"test.ini",
|
||||||
|
"test.ngc",
|
||||||
|
"rm400.ngc",
|
||||||
|
"rm401.ngc",
|
||||||
|
"rm402.ngc",
|
||||||
|
"rm403.ngc",
|
||||||
|
];
|
||||||
|
const nestedRemapsOwordUnstagedFiles = [
|
||||||
|
"testsub.ngc",
|
||||||
|
];
|
||||||
const nestedRemapsOwordDir = await writeRemapRegressionFiles(
|
const nestedRemapsOwordDir = await writeRemapRegressionFiles(
|
||||||
interp,
|
interp,
|
||||||
"nested-remaps-oword",
|
"nested-remaps-oword",
|
||||||
[
|
nestedRemapsOwordFiles,
|
||||||
"test.ini",
|
);
|
||||||
"test.ngc",
|
assertRemapRegressionStaging(
|
||||||
"rm400.ngc",
|
"nested-remaps-oword",
|
||||||
"rm401.ngc",
|
nestedRemapsOwordFiles,
|
||||||
"rm402.ngc",
|
nestedRemapsOwordDir,
|
||||||
"rm403.ngc",
|
nestedRemapsOwordUnstagedFiles,
|
||||||
],
|
|
||||||
);
|
);
|
||||||
verifyExpectedOutput(
|
verifyExpectedOutput(
|
||||||
"browser_nested_remaps_oword_remap",
|
"browser_nested_remaps_oword_remap",
|
||||||
|
|||||||
@@ -246,15 +246,20 @@ function writeRemapRegressionFiles(name, files) {
|
|||||||
return wasmDir;
|
return wasmDir;
|
||||||
}
|
}
|
||||||
|
|
||||||
function assertRemapRegressionStaging(name, files, wasmDir) {
|
function assertRemapRegressionStaging(name, files, wasmDir, expectedUnstagedFiles = []) {
|
||||||
const sourceDir = resolve(rootDir, "vendor/linuxcnc/tests/remap", name);
|
const sourceDir = resolve(rootDir, "vendor/linuxcnc/tests/remap", name);
|
||||||
assert.deepEqual(
|
assert.deepEqual(
|
||||||
readdirSync(sourceDir)
|
readdirSync(sourceDir)
|
||||||
.filter((filename) => filename.endsWith(".ini") || filename.endsWith(".ngc"))
|
.filter((filename) => filename.endsWith(".ini") || filename.endsWith(".ngc"))
|
||||||
.sort(),
|
.sort(),
|
||||||
[...files].sort(),
|
[...files, ...expectedUnstagedFiles].sort(),
|
||||||
`remap ${name} fixture coverage drift`,
|
`remap ${name} fixture coverage drift`,
|
||||||
);
|
);
|
||||||
|
assert.deepEqual(
|
||||||
|
files.filter((file) => expectedUnstagedFiles.includes(file)),
|
||||||
|
[],
|
||||||
|
`remap ${name} unstaged fixture overlap drift`,
|
||||||
|
);
|
||||||
assert.deepEqual(
|
assert.deepEqual(
|
||||||
files.map((file) => `${wasmDir}/${file}`),
|
files.map((file) => `${wasmDir}/${file}`),
|
||||||
files.map((file) => `/work/remap/${name}/${file}`),
|
files.map((file) => `/work/remap/${name}/${file}`),
|
||||||
@@ -1110,14 +1115,27 @@ verifyExpectedOutput(
|
|||||||
].join("\n"),
|
].join("\n"),
|
||||||
);
|
);
|
||||||
|
|
||||||
const nestedRemapsOwordDir = writeRemapRegressionFiles("nested-remaps-oword", [
|
const nestedRemapsOwordFiles = [
|
||||||
"test.ini",
|
"test.ini",
|
||||||
"test.ngc",
|
"test.ngc",
|
||||||
"rm400.ngc",
|
"rm400.ngc",
|
||||||
"rm401.ngc",
|
"rm401.ngc",
|
||||||
"rm402.ngc",
|
"rm402.ngc",
|
||||||
"rm403.ngc",
|
"rm403.ngc",
|
||||||
]);
|
];
|
||||||
|
const nestedRemapsOwordUnstagedFiles = [
|
||||||
|
"testsub.ngc",
|
||||||
|
];
|
||||||
|
const nestedRemapsOwordDir = writeRemapRegressionFiles(
|
||||||
|
"nested-remaps-oword",
|
||||||
|
nestedRemapsOwordFiles,
|
||||||
|
);
|
||||||
|
assertRemapRegressionStaging(
|
||||||
|
"nested-remaps-oword",
|
||||||
|
nestedRemapsOwordFiles,
|
||||||
|
nestedRemapsOwordDir,
|
||||||
|
nestedRemapsOwordUnstagedFiles,
|
||||||
|
);
|
||||||
verifyExpectedOutput(
|
verifyExpectedOutput(
|
||||||
"nested_remaps_oword_remap_wasm",
|
"nested_remaps_oword_remap_wasm",
|
||||||
interp.runRemapFile(
|
interp.runRemapFile(
|
||||||
|
|||||||
Reference in New Issue
Block a user