From 1a77863ddb562c0d77e06ce14da0fa2da85f52f6 Mon Sep 17 00:00:00 2001 From: wangdequan Date: Sun, 14 Jun 2026 07:36:48 +0800 Subject: [PATCH] Guard browser INI-named parameter object adapters --- text9.txt | 61 +++++++++++++++++++++++ wasm-port/tests/browser/interp_smoke.html | 30 +++++++---- 2 files changed, 81 insertions(+), 10 deletions(-) diff --git a/text9.txt b/text9.txt index 360ffb3..219268b 100644 --- a/text9.txt +++ b/text9.txt @@ -903,3 +903,64 @@ host_wasm_opfs_browser_smokes=ok 继续小批量 browser test glue guard。优先扫描 parameter 的 direct helper 是否还能 合并命名,或者转向更少层级的 `parameter result/text` adapter;只改测试胶水,不改变 输入、OPFS path、WASM path 字符串或保存/读取行为。 + +十九、2026-06-14 继续执行记录:browser INI-named parameter object adapter guard + +本轮按上一条下一步建议继续收敛 INI-named custom session parameter result/text +helper 调用点的参数展开,范围仍只触及 +`wasm-port/tests/browser/interp_smoke.html` 的 browser/OPFS test glue。 + +完成内容: + +- `iniNamedInitialParameterValues` 改为 `opfsParameterValueSet(...)`; +- `iniNamedParameterValues`、`iniNamedParameterExpectedValues` 与 + `iniNamedParameterReadbackValues` 改为 `opfsParameterValueSet(...)`; +- INI-named custom session parameter restore/save/readback/backup 调用点改为复用 + `opfsParameterResultLinesForValues(...)`、 + `opfsParameterTextLinesForValues(...)` 与 + `opfsParameterValuesForValueSet(...)`; +- seed file 写入仍显式展开 `parameter5161/5162/5221/5399` 字段,不推导 + LinuxCNC-owned parameter 文件格式; +- 未改变任何 expected 字符串、输入、OPFS path、WASM path 字符串或 save/read/load + 行为; +- 未改变 staging path 模型、OPFS bridge behavior、file-service、SDK planner、 + interpreter、INI、tool、parameter 或 LinuxCNC-owned runtime semantics。 + +验证已通过: + +```bash +git diff --check +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_interp_wasm.sh +SKIP_INTERP_BUILD=1 wasm-port/tests/wasm/node/verify_sim_configs_inventory_wasm.sh +wasm-port/tests/host/verify_host_smokes.sh +``` + +关键输出: + +```text +browser_interp_smoke=ok +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 +host_wasm_opfs_browser_smokes=ok +``` + +备注: + +- 当前 sandbox 会拦截本地 HTTP server socket bind;browser smoke 与 + `verify_host_smokes.sh` 的 browser 阶段需授权运行; +- 本轮 browser smoke 与 host smoke 均已授权运行并通过。 + +下一步建议: + +继续小批量 browser test glue guard。优先扫描 explicit custom session parameter +value groups,把 `explicit*Parameter*` 数组也收敛到 +`opfsParameterValueSet(...)` object adapter;只改测试胶水,不改变输入、OPFS path、 +WASM path 字符串或保存/读取行为。 diff --git a/wasm-port/tests/browser/interp_smoke.html b/wasm-port/tests/browser/interp_smoke.html index 28aec8e..97ed368 100644 --- a/wasm-port/tests/browser/interp_smoke.html +++ b/wasm-port/tests/browser/interp_smoke.html @@ -9693,11 +9693,16 @@ browserIniFileTextPaths, iniFileMachineId, ); - const iniNamedInitialParameterValues = ["31.25", "62.5", "4.5", "99"]; + const iniNamedInitialParameterValues = opfsParameterValueSet("31.25", "62.5", "4.5", "99"); await writeOpfsMachineFile( iniFileMachineId, iniFileParameterFilename, - opfsParameterSeedText(...iniNamedInitialParameterValues), + opfsParameterSeedText( + iniNamedInitialParameterValues.parameter5161, + iniNamedInitialParameterValues.parameter5162, + iniNamedInitialParameterValues.parameter5221, + iniNamedInitialParameterValues.parameter5399, + ), ); const iniNamedToolTable = opfsToolTableToolValues( "8", @@ -9740,15 +9745,20 @@ verifyOpfsLoadResult( "opfs_load_ini_named_parameter_file", loadedIniFileSession.parameters, - opfsParameterResultLines("restore", ...iniNamedInitialParameterValues), + opfsParameterResultLinesForValues("restore", iniNamedInitialParameterValues), + ); + const iniNamedParameterValues = opfsParameterValueSet(33.75, 67.5, 5.25, 199); + const iniNamedParameterExpectedValues = opfsParameterValueSet("33.75", "67.5", "5.25", "199"); + const iniNamedParameterReadbackValues = opfsParameterValueSet( + "33.750000", + "67.500000", + "5.250000", + "199.000000", ); - const iniNamedParameterValues = [33.75, 67.5, 5.25, 199]; - const iniNamedParameterExpectedValues = ["33.75", "67.5", "5.25", "199"]; - const iniNamedParameterReadbackValues = ["33.750000", "67.500000", "5.250000", "199.000000"]; const savedIniNamedParameters = await saveMachineParametersToOpfs( interp, iniFileMachineId, - opfsParameterValues(...iniNamedParameterValues), + opfsParameterValuesForValueSet(iniNamedParameterValues), opfsLoadedFileSaveOptions(loadedIniFileSession.parameters), ); assertOpfsSavedParameterStaging( @@ -9761,17 +9771,17 @@ verifyOpfsSaveResult( "opfs_save_ini_named_parameter_file", savedIniNamedParameters, - opfsParameterResultLines("save", ...iniNamedParameterExpectedValues), + opfsParameterResultLinesForValues("save", iniNamedParameterExpectedValues), ); await verifyOpfsReadback( "opfs_saved_ini_named_parameter_text", loadedIniFileSession.parameters.opfsPath, - opfsParameterTextLines("\t", ...iniNamedParameterReadbackValues), + opfsParameterTextLinesForValues("\t", iniNamedParameterReadbackValues), ); await verifyOpfsReadback( "opfs_saved_ini_named_parameter_backup_text", savedIniNamedParameters.backupOpfsPath, - opfsParameterTextLines(" ", ...iniNamedInitialParameterValues), + opfsParameterTextLinesForValues(" ", iniNamedInitialParameterValues), ); verifyOpfsLoadResult( "opfs_load_ini_named_tool_table",