扩展解释器WASM夹具覆盖

结论:解释器核心WASM验证已从minimal_linear扩展到弧、单位、增量、平面和坐标偏置等第一批基础夹具,仍直接调用LinuxCNC解释器源码。
This commit is contained in:
2026-06-08 05:08:17 +08:00
parent 09304115ef
commit 52bfa175ab
2 changed files with 42 additions and 26 deletions

View File

@@ -73,9 +73,9 @@ queries against a file written to the Emscripten filesystem.
The WASM interpreter-core smoke script builds
`build/wasm/core/linuxcnc_interp.js` and `linuxcnc_interp.wasm` from the same
vendored LinuxCNC interpreter source set used by the native minimal
interpreter harness. It loads the module in Node, runs the `minimal_linear`
G-code fixture through `Interp::execute()`, and compares emitted canonical
events with `tests/fixtures/canon/minimal_linear.events`.
interpreter harness. It loads the module in Node, runs the first WASM
interpreter fixture group through `Interp::execute()`, and compares emitted
canonical events with the matching files in `tests/fixtures/canon/`.
The OPFS host-boundary script validates the JavaScript file-service adapter
with a Node mock of the browser File System Access handles. It covers nested
@@ -92,8 +92,9 @@ module, queries vendored LinuxCNC INI parsing through the SDK, and performs an
OPFS text-file, generic session snapshot, machine file, and G-code text
round trip.
The aggregate host smoke script builds the INI WASM artifact once, then runs
the Node WASM smoke, the Node OPFS mock smoke, and the Chromium browser smoke.
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
the Chromium browser smoke.
## Source Coverage
@@ -142,7 +143,7 @@ The validation fails if:
| Harness | Purpose |
| --- | --- |
| `tests/wasm/node/verify_ini_wasm.sh` | Validates the browser-facing INI WASM module can be built from vendored LinuxCNC `inifile.cc`, loaded through the JS SDK in Node, and queried through the exported C ABI. |
| `tests/wasm/node/verify_interp_wasm.sh` | Validates the initial interpreter-core WASM module can be built from vendored LinuxCNC interpreter source, run `minimal_linear.ngc` through `Interp::execute()`, and match the native canonical event fixture. |
| `tests/wasm/node/verify_interp_wasm.sh` | Validates the initial interpreter-core WASM module can be built from vendored LinuxCNC interpreter source, run the first fixture group through `Interp::execute()`, and match the native canonical event fixtures. |
| `tests/opfs/node/verify_file_service.sh` | Validates the host-owned OPFS text-file adapter, path model, session snapshot store, machine file store, and G-code text store used by the browser INI panel without moving file persistence into the WASM core. |
| `tests/browser/verify_ini_panel_browser.sh` | Validates the INI SDK, WASM module loading, OPFS text-file round trip, generic session snapshot round trip, machine file text round trip, and G-code text round trip in a real browser runtime. |
| `tests/host/verify_host_smokes.sh` | Runs the current host-side Node, WASM interpreter-core, OPFS, and browser smoke validation with shared WASM builds. |
@@ -190,10 +191,11 @@ Negative fixtures currently cover:
Current full-core validation is native-only. WASM/SDK validation covers the
INI parser smoke harness and an initial interpreter-core canonical event smoke
for `minimal_linear`. OPFS validation is limited to the JavaScript
host-boundary adapter plus the INI browser smoke harness. Full browser
coverage, full SDK coverage, and full machine-session validation remain future
work.
for `minimal_linear`, `arc_semantics`, `length_units`, `modal_incremental`,
`plane_selection`, and `coordinate_offsets`. OPFS validation is limited to the
JavaScript host-boundary adapter plus the INI browser smoke harness. Full
browser coverage, full SDK coverage, and full machine-session validation remain
future work.
The current fixture expectations validate standalone behavior against both the
vendored LinuxCNC source path and an upstream `rs274` side-by-side baseline for