继续推进浏览器 invalid INI reject groups guard

This commit is contained in:
2026-06-14 12:58:48 +08:00
parent b699828d74
commit 8de93be2ab
2 changed files with 76 additions and 14 deletions

View File

@@ -2378,3 +2378,59 @@ host_wasm_opfs_browser_smokes=ok
machine/session path assertions 或 remaining OPFS readback groups 是否还能进一步局部 machine/session path assertions 或 remaining OPFS readback groups 是否还能进一步局部
常量化或复用 existing helpers只改测试胶水不改变输入、OPFS path、WASM path 字符串 常量化或复用 existing helpers只改测试胶水不改变输入、OPFS path、WASM path 字符串
或保存/读取行为。 或保存/读取行为。
四十六、2026-06-14 继续执行记录browser invalid INI reject groups guard
本轮按上一条下一步建议继续收敛 invalid INI session reject groups范围仍只触及
`wasm-port/tests/browser/interp_smoke.html` 的 browser/OPFS test glue。
完成内容:
- 新增 `invalidParameterFileMachineId` 局部常量,承载 invalid parameter file session
machine id
- 新增 `invalidParameterFileIniLines` 局部常量,承载 invalid parameter file INI lines
- 新增 `invalidParameterFileErrorPattern` 局部常量,承载 invalid parameter file error
pattern
- 新增 `invalidToolTableMachineId` 局部常量,承载 invalid tool-table session machine id
- 新增 `invalidToolTableIniLines` 局部常量,承载 invalid tool-table INI lines
- 新增 `invalidToolTableErrorPattern` 局部常量,承载 invalid tool-table error pattern
- invalid parameter file 与 invalid tool-table reject 断言改为复用上述 input/error
groups
- 保持 invalid INI expected error 文本、machine id、INI section、INI line、OPFS path 与
WASM path 不变;
- 未改变任何 expected 字符串、输入、OPFS path、WASM path 字符串或 load/save/read
行为;
- 未改变 staging path 模型、OPFS bridge behavior、file-service、SDK planner、
interpreter、INI、tool、parameter 或 LinuxCNC-owned runtime semantics。
验证已通过:
```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
```
关键输出:
```text
vendor sync up to date
standalone CNC semantics guard complete
interp_wasm_node_smoke=ok
sim_configs_wasm_node_inventory_executed=28
sim_configs_wasm_node_inventory_passed=28
sim_configs_wasm_node_inventory_skipped=131
sim_configs_wasm_node_inventory_unexpected_fail=0
browser_interp_smoke=ok
host_wasm_opfs_browser_smokes=ok
```
下一步建议:
继续小批量 browser test glue guard。优先扫描 machine/session path assertions 或
remaining OPFS readback groups 是否还能进一步局部常量化或复用 existing helpers只改
测试胶水不改变输入、OPFS path、WASM path 字符串或保存/读取行为。

View File

@@ -10084,30 +10084,36 @@
explicitSavedToolTableTextLines, explicitSavedToolTableTextLines,
); );
const invalidParameterFileMachineId = "browser-invalid-param-file-session";
const invalidParameterFileIniLines = opfsInvalidIniLines(
invalidParameterFileMachineId,
"RS274NGC",
"PARAMETER_FILE = ../escape.var",
);
const invalidParameterFileErrorPattern = /Invalid parameter filename/;
await verifyOpfsInvalidIniSessionRejects( await verifyOpfsInvalidIniSessionRejects(
"opfs_reject_invalid_ini_parameter_file", "opfs_reject_invalid_ini_parameter_file",
interp, interp,
ini, ini,
"browser-invalid-param-file-session", invalidParameterFileMachineId,
opfsInvalidIniLines( invalidParameterFileIniLines,
"browser-invalid-param-file-session", invalidParameterFileErrorPattern,
"RS274NGC",
"PARAMETER_FILE = ../escape.var",
),
/Invalid parameter filename/,
); );
const invalidToolTableMachineId = "browser-invalid-tool-file-session";
const invalidToolTableIniLines = opfsInvalidIniLines(
invalidToolTableMachineId,
"EMCIO",
"TOOL_TABLE = nested/tool.tbl",
);
const invalidToolTableErrorPattern = /Invalid tool table filename/;
await verifyOpfsInvalidIniSessionRejects( await verifyOpfsInvalidIniSessionRejects(
"opfs_reject_invalid_ini_tool_table", "opfs_reject_invalid_ini_tool_table",
interp, interp,
ini, ini,
"browser-invalid-tool-file-session", invalidToolTableMachineId,
opfsInvalidIniLines( invalidToolTableIniLines,
"browser-invalid-tool-file-session", invalidToolTableErrorPattern,
"EMCIO",
"TOOL_TABLE = nested/tool.tbl",
),
/Invalid tool table filename/,
); );
status.textContent = "browser_interp_smoke=ok"; status.textContent = "browser_interp_smoke=ok";