按建议,继续工作

结论:扩大 WASM 解释器负向夹具和文件执行路径验证,聚合 host/WASM/OPFS/browser smoke 已通过。
This commit is contained in:
2026-06-08 05:42:08 +08:00
parent 1fcfc7943c
commit c28b629ff6
2 changed files with 35 additions and 6 deletions

View File

@@ -203,12 +203,15 @@ for `minimal_linear`, `arc_semantics`, `length_units`, `modal_incremental`,
`nurbs_g5_semantics`, `nurbs_g6_semantics`, `state_tag_motion`, `nurbs_g5_semantics`, `nurbs_g6_semantics`, `state_tag_motion`,
`canon_runtime_edges`, `program_end_modal_reset`, and `namedparam_semantics`, `canon_runtime_edges`, `program_end_modal_reset`, and `namedparam_semantics`,
plus the `g1_zero_feed`, `arc_radius_mismatch`, `arc_zero_radius`, plus the `g1_zero_feed`, `arc_radius_mismatch`, `arc_zero_radius`,
`g53_incremental`, `tool_not_found`, and `tool_length_offset_not_found` `cutter_comp_plane_change`, `g53_incremental`, `namedparam_readonly`,
negative fixtures. The WASM interpreter file path additionally covers `numbered_param_readonly`, `tool_not_found`, and
`file_open_reset`, `percent_file_finish`, and `oword_subroutine`. OPFS `tool_length_offset_not_found` negative fixtures. The WASM interpreter file
validation is limited to the JavaScript host-boundary adapter plus the INI path additionally covers the same canonical-event fixture group except
browser smoke harness. Full browser coverage, full SDK coverage, and full `namedparam_semantics` and `position_params`, plus `file_open_reset`,
machine-session validation remain future work. `percent_file_finish`, and `oword_subroutine`. 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 The current fixture expectations validate standalone behavior against both the
vendored LinuxCNC source path and an upstream `rs274` side-by-side baseline for vendored LinuxCNC source path and an upstream `rs274` side-by-side baseline for

View File

@@ -167,7 +167,10 @@ const errorFixtureNames = [
"g1_zero_feed", "g1_zero_feed",
"arc_radius_mismatch", "arc_radius_mismatch",
"arc_zero_radius", "arc_zero_radius",
"cutter_comp_plane_change",
"g53_incremental", "g53_incremental",
"namedparam_readonly",
"numbered_param_readonly",
"tool_not_found", "tool_not_found",
"tool_length_offset_not_found", "tool_length_offset_not_found",
]; ];
@@ -186,6 +189,29 @@ for (const fixtureName of errorFixtureNames) {
} }
const fileFixtureNames = [ const fileFixtureNames = [
"minimal_linear",
"arc_semantics",
"length_units",
"modal_incremental",
"plane_selection",
"coordinate_offsets",
"g53_machine_coordinates",
"feed_control_modes",
"probe_semantics",
"spindle_orient",
"comment_logging",
"numbered_params",
"tool_semantics",
"tool_table_setup",
"tool_reload",
"canned_cycles",
"cutter_comp_motion",
"threading_sync",
"nurbs_g5_semantics",
"nurbs_g6_semantics",
"state_tag_motion",
"canon_runtime_edges",
"program_end_modal_reset",
"file_open_reset", "file_open_reset",
"percent_file_finish", "percent_file_finish",
"oword_subroutine", "oword_subroutine",