diff --git a/wasm-port/docs/compatibility-validation.md b/wasm-port/docs/compatibility-validation.md index 73deca8..5b97d7d 100644 --- a/wasm-port/docs/compatibility-validation.md +++ b/wasm-port/docs/compatibility-validation.md @@ -135,7 +135,8 @@ to reject invalid INI-derived parameter/tool-table file names through the OPFS path model after the names are parsed by the LinuxCNC-backed INI WASM SDK. It also verifies that explicit session parameter/tool-table file-name options override INI-derived names before OPFS text is copied into the LinuxCNC-backed -WASM filesystem. +WASM filesystem, and that absent INI file-name values use the default OPFS +parameter/tool-table paths in a real browser session. The aggregate host smoke script builds the INI and interpreter-core WASM artifacts once, then runs the Node WASM smokes, the Node OPFS mock smoke, and @@ -279,7 +280,8 @@ session snapshot custom filename handling plus envelope/path rejection for unsupported format/version, wrong session id, and invalid snapshot filenames, and a browser interpreter smoke that uses the same session bridge with real LinuxCNC INI WASM parsing before saving OPFS-backed parameter and -tool-table text through vendored LinuxCNC file APIs. +tool-table text through vendored LinuxCNC file APIs, including default OPFS +path fallback when INI file-name values are absent. Full browser coverage, full SDK coverage, and richer machine-state validation remain future work. diff --git a/wasm-port/tests/browser/interp_smoke.html b/wasm-port/tests/browser/interp_smoke.html index c32a1cb..7911a9c 100644 --- a/wasm-port/tests/browser/interp_smoke.html +++ b/wasm-port/tests/browser/interp_smoke.html @@ -307,6 +307,18 @@ toolTableWasmPath: "/work/browser-random-tool.tbl", }, ); + if ( + loadedRandomSession.parameters.opfsPath !== + "linuxcnc/machines/browser-random-toolchanger/linuxcnc.var" + ) { + throw new Error(`unexpected default parameter path: ${loadedRandomSession.parameters.opfsPath}`); + } + if ( + loadedRandomSession.toolTable.opfsPath !== + "linuxcnc/machines/browser-random-toolchanger/tool.tbl" + ) { + throw new Error(`unexpected default tool path: ${loadedRandomSession.toolTable.opfsPath}`); + } verifyExpectedOutput( "opfs_load_random_tool_table", loadedRandomSession.toolTable.result,