Implement AXIS parity UI and execution baseline

This commit is contained in:
2026-08-23 07:28:37 +08:00
parent 1325504544
commit 06f96f85e5
463 changed files with 84893 additions and 692 deletions

View File

@@ -0,0 +1,313 @@
{
"boundaries": [
"upstream canonical logger parity remains SOURCE_BLOCKED; DO/ENDDO and G64/G61 now have Worker adapters",
"remap/filter Python is represented only through allowlisted PythonCallbacks; host imports remain REAL-EXCLUDED",
"source expected/checkresult hashes are evidence inputs, not an unverified parity claim"
],
"context_id": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1",
"counts": {
"fixture_files": 26,
"passed": 8,
"pending": 0,
"selected_cases": 8,
"worker_task_motion_pending": 0
},
"execution": {
"command": [
"node",
"web/worker/test_source_interpreter_s5.mjs"
],
"returncode": 0,
"status": "PASSED",
"stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"stdout_sha256": "8044dce216c91826bd03de964775cc75b4e34a19e2122b273f46ae8bfed63adc"
},
"expected_checkresult_comparison": {
"compared_byte_for_byte": false,
"fixture_hashes_verified": true,
"reason": "locked source expected/checkresult files are hashed and retained; upstream canonical logger is unavailable in this Worker adapter",
"status": "SOURCE_BLOCKED"
},
"parse_error": null,
"pending_adapters": [],
"report_sha256": "a0cc9567e85814a69d43ab535f3c7826f66a0289bc3134519600fab35643b6aa",
"schema": "linuxcnc-source-interpreter-execution.v1",
"scope": [
"tests/interp/**",
"tests/remap/**",
"tests/oword/**",
"filter capability boundary"
],
"status": "verified",
"task_id": "S5-04",
"wasm_core": {
"logical_tick": false,
"runner": "build-wasm/linuxcnc-sim-core.wasm",
"status": "PASSED"
},
"worker_golden": {
"aggregate_hash": "fnv1a64:32ac09b142f254d0",
"boundaries": [
"G64/G61 modal motion is represented by the Worker motion_control state; upstream canonical logger parity remains SOURCE_BLOCKED",
"remap Python handlers are represented by allowlisted PythonCallbacks; host imports remain REAL-EXCLUDED",
"expected/checkresult bytes are hashed and never treated as passed without an adapter result"
],
"cases": [
{
"adapter": "WORKER_SIM_ADAPTER",
"fixture": [
{
"bytes": 180,
"path": "linuxcnc/tests/interp/oword-bug315/test.ngc",
"sha256": "a6d38015aab2a29b15911ac58953bf234d2d5e086867dc31246e5146957e4822"
},
{
"bytes": 660,
"path": "linuxcnc/tests/interp/oword-bug315/expected",
"sha256": "40aa501232fe5fe516341480fb35735076653fce2224b6a17f1b54b0a338b5b7"
},
{
"bytes": 75,
"path": "linuxcnc/tests/interp/oword-bug315/test.sh",
"sha256": "5aca3854d97d0124e6dd9289ed71922ec287c2fcea27f7836ee6a4c21a1479fd"
}
],
"id": "source-test:linuxcnc/tests/interp/oword-bug315/test.sh",
"result": {
"canonical": "{\"a\":0,\"b\":0,\"c\":0,\"distance_mode\":90,\"feed\":0,\"line\":4,\"modal_hash\":13626864533805933641,\"motion_mode\":1,\"plane\":17,\"program_end\":1,\"speed\":0,\"spindle_mode\":5,\"status\":0,\"units\":21,\"u\":0,\"v\":0,\"w\":0,\"x\":0,\"y\":0,\"z\":0}",
"expected_status": "completed",
"interpreter_state_hash": "fnv1a64:00000000270e6260",
"line": 14,
"observed_detail": null,
"observed_status": "completed",
"source_hash": "fnv1a64:e1da3f5c4c27be39"
},
"result_hash": "fnv1a64:a3127bfb71663529"
},
{
"adapter": "WORKER_SIM_ADAPTER",
"fixture": [
{
"bytes": 236,
"path": "linuxcnc/tests/oword/sub.0/test.ngc",
"sha256": "91b6257cc40d83f39d7ceb39540d0e50819747515340a38947b90c37562e3614"
},
{
"bytes": 893,
"path": "linuxcnc/tests/oword/sub.0/expected",
"sha256": "ec31e8323062c27df87c8729ea0a4bb5bb973ae840f61b0e20221ddae9c10e02"
},
{
"bytes": 75,
"path": "linuxcnc/tests/oword/sub.0/test.sh",
"sha256": "5aca3854d97d0124e6dd9289ed71922ec287c2fcea27f7836ee6a4c21a1479fd"
}
],
"id": "source-test:linuxcnc/tests/oword/sub.0/test.sh",
"result": {
"canonical": "{\"a\":0,\"b\":0,\"c\":0,\"distance_mode\":90,\"feed\":0,\"line\":7,\"modal_hash\":5485903789020828696,\"motion_mode\":0,\"plane\":17,\"program_end\":1,\"speed\":0,\"spindle_mode\":5,\"status\":0,\"units\":21,\"u\":0,\"v\":0,\"w\":0,\"x\":0,\"y\":0,\"z\":0}",
"expected_status": "completed",
"interpreter_state_hash": "fnv1a64:000000009116a3c2",
"line": 17,
"observed_detail": null,
"observed_status": "completed",
"source_hash": "fnv1a64:6d93401fd98f128d"
},
"result_hash": "fnv1a64:7496ff11c7127f79"
},
{
"adapter": "PURE_FUNCTIONAL",
"fixture": [
{
"bytes": 31,
"path": "linuxcnc/tests/interp/oword-unwind/test.ngc",
"sha256": "2662d065bc501e05e7eee6bcc5941d93360a0d0ca0acf785d48232dd39492063"
},
{
"bytes": 625,
"path": "linuxcnc/tests/interp/oword-unwind/expected",
"sha256": "d49612c6b1b700b551f7d3bccf4794f0562e968fca052a45e6176d80ed611000"
},
{
"bytes": 92,
"path": "linuxcnc/tests/interp/oword-unwind/test.sh",
"sha256": "87e1fedef3a3fee58cc16e01091dab30d0d69fd74e4812d37ee31f64e8d16af6"
}
],
"id": "source-test:linuxcnc/tests/interp/oword-unwind/test.sh",
"result": {
"canonical": "{\"a\":0,\"b\":0,\"c\":0,\"distance_mode\":90,\"feed\":0,\"line\":0,\"modal_hash\":13626864533805933641,\"motion_mode\":1,\"plane\":17,\"program_end\":0,\"speed\":0,\"spindle_mode\":5,\"status\":0,\"units\":21,\"u\":0,\"v\":0,\"w\":0,\"x\":0,\"y\":0,\"z\":0}",
"expected_status": "error",
"interpreter_state_hash": "fnv1a64:00000000dee1b045",
"line": 1,
"observed_detail": "program_subroutine_missing",
"observed_status": "error",
"source_hash": "fnv1a64:5ce70e6f0f9571f6"
},
"result_hash": "fnv1a64:26b54c1eccc3d617"
},
{
"adapter": "WORKER_SIM_ADAPTER",
"fixture": [
{
"bytes": 658,
"path": "linuxcnc/tests/interp/do-while-break/test.ngc",
"sha256": "bdc3978b3fb61ff53febeb546fcc34713796a756483e0d1c883293e5ae3ad522"
},
{
"bytes": 790,
"path": "linuxcnc/tests/interp/do-while-break/expected",
"sha256": "c21310e5db7c1558243801485467f857af7cbf99f7813ede6dd439991ba0af61"
},
{
"bytes": 75,
"path": "linuxcnc/tests/interp/do-while-break/test.sh",
"sha256": "5aca3854d97d0124e6dd9289ed71922ec287c2fcea27f7836ee6a4c21a1479fd"
}
],
"id": "source-test:linuxcnc/tests/interp/do-while-break/test.sh",
"result": {
"canonical": "{\"a\":0,\"b\":0,\"c\":0,\"distance_mode\":90,\"feed\":0,\"line\":13,\"modal_hash\":13626864533805933641,\"motion_mode\":1,\"plane\":17,\"program_end\":1,\"speed\":0,\"spindle_mode\":5,\"status\":0,\"units\":21,\"u\":0,\"v\":0,\"w\":0,\"x\":0,\"y\":0,\"z\":0}",
"expected_status": "completed",
"interpreter_state_hash": "fnv1a64:0000000086efefe9",
"line": 30,
"observed_detail": null,
"observed_status": "completed",
"source_hash": "fnv1a64:23daa58d09abf802"
},
"result_hash": "fnv1a64:e03fcc463cf52b26"
},
{
"adapter": "WORKER_SIM_ADAPTER",
"fixture": [
{
"bytes": 31,
"path": "linuxcnc/tests/interp/g6164/test.ngc",
"sha256": "9a4f69ca8a8facfbffc37018fc69b1591849ac8e1aadff9574db29f6c8395894"
},
{
"bytes": 963,
"path": "linuxcnc/tests/interp/g6164/expected",
"sha256": "6d7cbe913ade6f4308162b8708a5d65c67b44004ef5d073b57509b38ec6f91cf"
},
{
"bytes": 75,
"path": "linuxcnc/tests/interp/g6164/test.sh",
"sha256": "5aca3854d97d0124e6dd9289ed71922ec287c2fcea27f7836ee6a4c21a1479fd"
}
],
"id": "source-test:linuxcnc/tests/interp/g6164/test.sh",
"result": {
"canonical": "{\"a\":0,\"b\":0,\"c\":0,\"distance_mode\":90,\"feed\":0,\"line\":1,\"modal_hash\":13626864533805933641,\"motion_mode\":1,\"plane\":17,\"program_end\":1,\"speed\":0,\"spindle_mode\":5,\"status\":0,\"units\":21,\"u\":0,\"v\":0,\"w\":0,\"x\":0,\"y\":0,\"z\":0}",
"expected_status": "completed",
"interpreter_state_hash": "fnv1a64:000000000d869e05",
"line": 6,
"observed_detail": null,
"observed_status": "completed",
"source_hash": "fnv1a64:a53b92e907dba4f9"
},
"result_hash": "fnv1a64:1b07b54b1a8fd090"
},
{
"adapter": "WORKER_SIM_ADAPTER",
"fixture": [
{
"bytes": 1429,
"path": "linuxcnc/tests/remap/oword-pycall/oword.py",
"sha256": "903751095b684c2105ea51aab9f011783439f3be6b73fe103bf4df818b7f25ba"
},
{
"bytes": 833,
"path": "linuxcnc/tests/remap/oword-pycall/subs.py",
"sha256": "d986503a92ab3ff12dd924cda39d18cc057d311c80f37ca1f228e00d5cf330e3"
},
{
"bytes": 103,
"path": "linuxcnc/tests/remap/oword-pycall/test.ini",
"sha256": "98c78807c8b691af357149778a3f022bd86e2d07d686eba18756427f47ef4b66"
},
{
"bytes": 1427,
"path": "linuxcnc/tests/remap/oword-pycall/expected",
"sha256": "6b2d0a541ec6c662d030ad5f71281b99f20b9e71a563af33716fe75dc2eaea07"
}
],
"id": "source-test:linuxcnc/tests/remap/oword-pycall/test.sh",
"result": {
"callbacks": 2,
"multiply": 210,
"square": 625,
"state_hash": "fnv1a64:6d520d540269ef1f"
},
"result_hash": "fnv1a64:6d470d5a25d09ced"
},
{
"adapter": "WORKER_SIM_ADAPTER",
"fixture": [
{
"bytes": 989,
"path": "linuxcnc/tests/remap/fail/body-py/remap.py",
"sha256": "fe7a6d499d135df6dd879b3401b387909af0dae79c6c05a9423f45904fb6048d"
},
{
"bytes": 836,
"path": "linuxcnc/tests/remap/fail/body-py/subs.py",
"sha256": "2457646599354453f1852aa1ce41c25fb3de32a8674d4ae5f89196e36eef2836"
},
{
"bytes": 146,
"path": "linuxcnc/tests/remap/fail/body-py/test.ini",
"sha256": "81ff92b89640212738f9008fa9b1d911c98bc911226a8c096e034c01ace795f2"
},
{
"bytes": 495,
"path": "linuxcnc/tests/remap/fail/body-py/expected",
"sha256": "6fe4cabf0d7a62699b4c7c9208302d287fa8ecd45842cb7f7f05f51a004fef1b"
}
],
"id": "source-test:linuxcnc/tests/remap/fail/body-py/test.sh",
"result": {
"code": "callback_exception",
"state_hash": "fnv1a64:7872677acffee276",
"status": "blocked"
},
"result_hash": "fnv1a64:8ccaf50f9fc9ceca"
},
{
"adapter": "WORKER_SIM_ADAPTER",
"fixture": [
{
"bytes": 1109,
"path": "linuxcnc/tests/remap/remap-io/remap.py",
"sha256": "5893f90e8f28f5887839926260a9bb91df105a0d8449388f7cedaa1e4f0d3950"
},
{
"bytes": 2566,
"path": "linuxcnc/tests/remap/remap-io/test-py.ini",
"sha256": "4cff1d633a2ec4d649cb3424450d4d9b523f2de6bb2da262b51f251377a98659"
},
{
"bytes": 5542,
"path": "linuxcnc/tests/remap/remap-io/expected",
"sha256": "64d216aaf7d78567423590088b31823e45ccea8e34b73da0fe675ee0749d024f"
}
],
"id": "source-test:linuxcnc/tests/remap/remap-io/test-py.ini",
"result": {
"blocked": "real_hardware_excluded",
"state_hash": "fnv1a64:443f0c72b715256a",
"status": "verified"
},
"result_hash": "fnv1a64:933bd136f99c4cd9"
}
],
"context_id": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1",
"counts": {
"PASSED": 8,
"WORKER_TASK_MOTION_PENDING": 0
},
"fixture_file_count": 26,
"pending": [],
"schema": "linuxcnc-source-interpreter-adapter.v1"
}
}