Advance simulation parity and 3-axis tutorial coverage

This commit is contained in:
2026-08-23 18:00:56 +08:00
parent 4a11d9692b
commit 938654b19d
107 changed files with 13537 additions and 3565 deletions

View File

@@ -0,0 +1,129 @@
{
"case": "linuxcnc/configs/sim/axis/vismach/3axis-tutorial",
"checks": {
"determinism": {
"state_hash": "fnv1a64:79b6b470739e0e14"
},
"mdi": {
"active_program_rejected": "mdi_while_program_active",
"after_abort_recovery": "verified"
},
"program_control": [
"PROGRAM_LOAD",
"PROGRAM_RUN",
"PROGRAM_PAUSE",
"PROGRAM_RESUME",
"PROGRAM_STEP",
"PROGRAM_ABORT",
"PROGRAM_RESTART"
],
"rs274": {
"distance_modes": [
"G90/absolute",
"G91/incremental"
],
"feed_words": [
"F120",
"F60"
],
"motion": [
"G0",
"G1"
],
"program_end": "M2",
"units": "G21/mm"
}
},
"context_id": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1",
"entrypoint": "linuxcnc/configs/sim/axis/vismach/3axis-tutorial/3axis-tutorial.ini",
"inputs": [
{
"path": "linuxcnc/configs/sim/axis/vismach/3axis-tutorial/3axis-tutorial.ini",
"sha256": "b801d4fb7a3d66fac7a4202d56c384f75b039f55c70cce64c2975c5454875388"
},
{
"path": "linuxcnc/configs/sim/axis/vismach/3axis-tutorial/3axis-tutorial.hal",
"sha256": "6c01e40c2244d3b534c0d3c60f26a9cdc5232defc79611234c78477209cfda1f"
},
{
"path": "wasm-core/include/sim_interpreter.h",
"sha256": "c5feac77f9ee272fb66292317925c19b32f30ec49a57e99a4a8bf72f7136d7a6"
},
{
"path": "wasm-core/src/sim_interpreter.c",
"sha256": "83c7980028bbf2bcf8b57571acc8097813f0af69f958ce9acb20debd975fd6ac"
},
{
"path": "wasm-core/tests/sim_interpreter_test.c",
"sha256": "74129da940e2b6306b809f8d13b1bd5c7daf8577ab7cc52978e4f60ca860cda5"
},
{
"path": "web/worker/program-runner.mjs",
"sha256": "1e1794d0682851ea59602e3e13ea14d31a41e312b4f00276f750757d12322c81"
},
{
"path": "web/worker/sim-session.mjs",
"sha256": "47c0918797b6a60ed72dce6014fb3f365f620e31be34d8d66f5311971dbe16fd"
},
{
"path": "web/worker/test_axis3_tutorial_program.mjs",
"sha256": "77a2f2f7b85a8f2e4056b66ffa2c0ba22b26002a0866460ea70835ac09d986f6"
}
],
"known_boundaries": [
"native evidence is the locked interpreter regression, not a realtime hardware oracle",
"MDI is rejected while a program is paused/running and is accepted after abort/recovery",
"full LinuxCNC canonical trajectory/oracle remains outside this case slice"
],
"native_interpreter": {
"path": "build-native/sim_interpreter_test",
"returncode": 0,
"status": "verified",
"stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"stdout_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
},
"observed": {
"case": "linuxcnc/configs/sim/axis/vismach/3axis-tutorial/3axis-tutorial.ini",
"distance_modes": [
"G90",
"G91"
],
"final_hash": "fnv1a64:79b6b470739e0e14",
"invalid_code": "program_interpreter",
"mdi": {
"blocked_while_paused": "mdi_while_program_active",
"distance_mode": 90,
"position": {
"x": 2,
"y": 3,
"z": -1
},
"status": "verified"
},
"restart": "loaded",
"run": {
"final": "completed",
"paused": true,
"resumed": true,
"state": "STOPPED"
},
"schema": "axis3-tutorial-program.v1",
"status": "verified",
"step": "verified",
"units": "G21"
},
"report_sha256": "abdb15db09b4b0c4cf6b8e205d70e7b01ff917f92ca8fadcb62f742a52cc2c43",
"schema": "axis3-tutorial-program-report.v1",
"status": "verified",
"task_id": "TUTORIAL-05",
"worker": {
"command": [
"node",
"web/worker/test_axis3_tutorial_program.mjs"
],
"returncode": 0,
"status": "verified",
"stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"stdout_sha256": "e5ea393698cb71388596abd901d81d025fa2a4a47aaed14d45eb9af809cf956b"
}
}