165 lines
10 KiB
JSON
165 lines
10 KiB
JSON
{
|
|
"boundaries": [
|
|
"host Python/dynamic loader/device paths remain explicit capability boundaries",
|
|
"official LinuxCNC canonical oracle remains separate",
|
|
"case-specific GUI plugin closure remains S8-10/browser work"
|
|
],
|
|
"checks": {
|
|
"capability_boundaries": {
|
|
"status": "verified"
|
|
},
|
|
"fixed_tick_extension_paths": {
|
|
"status": "verified"
|
|
},
|
|
"io_ack_and_recovery": {
|
|
"status": "verified"
|
|
},
|
|
"source_fixture_classification": {
|
|
"status": "verified"
|
|
}
|
|
},
|
|
"context_id": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1",
|
|
"counts": {
|
|
"failed": 0,
|
|
"passed": 10,
|
|
"runners": 10
|
|
},
|
|
"domains": {
|
|
"io_tool_probe": [
|
|
"test_device_io.mjs",
|
|
"test_io_ack.mjs",
|
|
"test_virtual_devices.mjs"
|
|
],
|
|
"plc": [
|
|
"test_plc_runtime.mjs"
|
|
],
|
|
"python_callbacks": [
|
|
"test_python_api_s3.mjs",
|
|
"test_python_callbacks_s3.mjs",
|
|
"test_python_bridge.mjs"
|
|
],
|
|
"remap_oword_filter": [
|
|
"test_source_interpreter_s5.mjs",
|
|
"test_source_do_s7_01.mjs",
|
|
"test_source_g6164_s7_02.mjs"
|
|
]
|
|
},
|
|
"execution": [
|
|
{
|
|
"command": [
|
|
"node",
|
|
"web/worker/test_source_interpreter_s5.mjs"
|
|
],
|
|
"returncode": 0,
|
|
"status": "passed",
|
|
"stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
|
|
"stdout_sha256": "8044dce216c91826bd03de964775cc75b4e34a19e2122b273f46ae8bfed63adc",
|
|
"stdout_tail": "6\"},\"result_hash\":\"fnv1a64:8ccaf50f9fc9ceca\"},{\"id\":\"source-test:linuxcnc/tests/remap/remap-io/test-py.ini\",\"adapter\":\"WORKER_SIM_ADAPTER\",\"fixture\":[{\"path\":\"linuxcnc/tests/remap/remap-io/remap.py\",\"bytes\":1109,\"sha256\":\"5893f90e8f28f5887839926260a9bb91df105a0d8449388f7cedaa1e4f0d3950\"},{\"path\":\"linuxcnc/tests/remap/remap-io/test-py.ini\",\"bytes\":2566,\"sha256\":\"4cff1d633a2ec4d649cb3424450d4d9b523f2de6bb2da262b51f251377a98659\"},{\"path\":\"linuxcnc/tests/remap/remap-io/expected\",\"bytes\":5542,\"sha256\":\"64d216aaf7d78567423590088b31823e45ccea8e34b73da0fe675ee0749d024f\"}],\"result\":{\"status\":\"verified\",\"blocked\":\"real_hardware_excluded\",\"state_hash\":\"fnv1a64:443f0c72b715256a\"},\"result_hash\":\"fnv1a64:933bd136f99c4cd9\"}],\"counts\":{\"PASSED\":8,\"WORKER_TASK_MOTION_PENDING\":0},\"fixture_file_count\":26,\"pending\":[],\"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\"],\"aggregate_hash\":\"fnv1a64:32ac09b142f254d0\"}\n"
|
|
},
|
|
{
|
|
"command": [
|
|
"node",
|
|
"web/worker/test_source_do_s7_01.mjs"
|
|
],
|
|
"returncode": 0,
|
|
"status": "passed",
|
|
"stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
|
|
"stdout_sha256": "69bd465d2249633e2b19c3425d3470751fc26ccb5d2a1657fdaed215762e6683",
|
|
"stdout_tail": "{\"schema\":\"linuxcnc-source-do-s7-01-sample.v1\",\"status\":\"verified\",\"context_id\":\"linuxcnc-2.10.0-pre0-wasm-m1-py-c1\",\"source\":{\"path\":\"linuxcnc/tests/interp/do-while-break/test.ngc\",\"source_hash\":\"fnv1a64:23daa58d09abf802\"},\"normal\":{\"status\":\"completed\",\"steps\":19,\"named_parameters\":{\"one_pass\":1,\"two_pass\":1,\"three_pass\":1},\"interpreter_state_hash\":\"fnv1a64:0000000086efefe9\"},\"pause_resume\":{\"status\":\"completed\",\"steps\":19,\"hash_equal\":true},\"errors\":{\"malformed_enddo\":\"program_enddo_without_do\",\"depth\":\"program_control_depth\"},\"recovery\":{\"equal\":true,\"difference\":null,\"checkpoint_hash\":\"fnv1a64:f581242f3cd81a99\"},\"boundaries\":[\"LinuxCNC canonical expected output remains SOURCE_BLOCKED\",\"G64/G61 remains S7 follow-up\",\"host/Python/real hardware paths unchanged\"]}\n"
|
|
},
|
|
{
|
|
"command": [
|
|
"node",
|
|
"web/worker/test_source_g6164_s7_02.mjs"
|
|
],
|
|
"returncode": 0,
|
|
"status": "passed",
|
|
"stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
|
|
"stdout_sha256": "320a8130b3e2121a1f8da02374cf8ed6d52998e41cbb34ee85f94bd6be132a0b",
|
|
"stdout_tail": "{\"schema\":\"linuxcnc-source-g6164-s7-02-sample.v1\",\"status\":\"verified\",\"context_id\":\"linuxcnc-2.10.0-pre0-wasm-m1-py-c1\",\"source\":{\"path\":\"linuxcnc/tests/interp/g6164/test.ngc\",\"source_hash\":\"fnv1a64:a53b92e907dba4f9\"},\"controls\":[{\"line\":1,\"mode\":\"continuous\",\"path_tolerance\":0,\"naive_cam_tolerance\":0},{\"line\":2,\"mode\":\"continuous\",\"path_tolerance\":1,\"naive_cam_tolerance\":0},{\"line\":3,\"mode\":\"continuous\",\"path_tolerance\":1,\"naive_cam_tolerance\":2},{\"line\":4,\"mode\":\"exact_path\",\"path_tolerance\":0,\"naive_cam_tolerance\":0},{\"line\":5,\"mode\":\"exact_stop\",\"path_tolerance\":0,\"naive_cam_tolerance\":0}],\"final_motion_control_hash\":\"fnv1a64:e0364fe4a01823da\",\"errors\":{\"negative_tolerance\":\"program_motion_control_range\",\"unsupported_g61\":\"program_motion_control_syntax\"},\"recovery\":{\"equal\":true,\"difference\":null,\"checkpoint_hash\":\"fnv1a64:6374004ebf3ac75b\"},\"boundaries\":[\"LinuxCNC canonical expected output remains SOURCE_BLOCKED\",\"TP blend/exact-stop numeric parity remains follow-up\",\"Safari/Firefox are out of scope\"]}\n"
|
|
},
|
|
{
|
|
"command": [
|
|
"node",
|
|
"web/worker/test_python_api_s3.mjs"
|
|
],
|
|
"returncode": 0,
|
|
"status": "passed",
|
|
"stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
|
|
"stdout_sha256": "7146142940719f923d7c8a3fbc5719d93086adc8cc50d937e5ba11710bf75eac",
|
|
"stdout_tail": "{\"schema\":\"python-api-s3-sample.v1\",\"status\":\"verified\",\"manifest_version\":\"0.29.4\",\"bridge_hash\":\"fnv1a64:0b74fea2bb927042\",\"restored_hash\":\"fnv1a64:0b74fea2bb927042\",\"session_tick\":0,\"checkpoint_hash\":\"fnv1a64:c441d82e62acc5a3\"}\n"
|
|
},
|
|
{
|
|
"command": [
|
|
"node",
|
|
"web/worker/test_python_callbacks_s3.mjs"
|
|
],
|
|
"returncode": 0,
|
|
"status": "passed",
|
|
"stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
|
|
"stdout_sha256": "a10351a0a28a6fa409bc17c009b6dd4c013334ba4f12d323aa08a1969d87c7f2",
|
|
"stdout_tail": "{\"schema\":\"python-callbacks-s3-sample.v1\",\"status\":\"verified\",\"calls\":3,\"errors\":8,\"callback_hash\":\"fnv1a64:67e7a5316f57b53d\",\"worker_hash\":\"fnv1a64:88c1a0e2e868fbc4\",\"checkpoint_hash\":\"fnv1a64:7c556a9f10303d3b\"}\n"
|
|
},
|
|
{
|
|
"command": [
|
|
"node",
|
|
"web/worker/test_python_bridge.mjs"
|
|
],
|
|
"returncode": 0,
|
|
"status": "passed",
|
|
"stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
|
|
"stdout_sha256": "fc8f0fe87b0f5108877980686b1ea3abbfe415a27d60d126ed0a2f52d4aa3209",
|
|
"stdout_tail": "python_bridge=passed calls=7 errors=4 hash=fnv1a64:21646389b3adc61b\n"
|
|
},
|
|
{
|
|
"command": [
|
|
"node",
|
|
"web/worker/test_device_io.mjs"
|
|
],
|
|
"returncode": 0,
|
|
"status": "passed",
|
|
"stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
|
|
"stdout_sha256": "598ff9e07a3fe026fa74bd8235eed6ba85647529df00ecad7a766d28293f0fa2",
|
|
"stdout_tail": "{\"schema\":\"device-io-worker-sample.v1\",\"status\":\"verified\",\"tick\":12,\"count\":40,\"state_hash\":\"fnv1a64:d303b40b131396ff\",\"worker_tick\":2,\"worker_state_hash\":\"fnv1a64:128eb22bfba5d6f9\",\"checkpoint_hash\":\"fnv1a64:7e2d1d371e931b90\"}\n"
|
|
},
|
|
{
|
|
"command": [
|
|
"node",
|
|
"web/worker/test_io_ack.mjs"
|
|
],
|
|
"returncode": 0,
|
|
"status": "passed",
|
|
"stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
|
|
"stdout_sha256": "bfbcda8b9c187024c056226ae2e0e951cd3085494ccb9ef9a2c5a1d7dcfaacd1",
|
|
"stdout_tail": "io_ack=passed timeout=timed_out worker=io_ack_late hash=fnv1a64:d017728dd8296b29\n"
|
|
},
|
|
{
|
|
"command": [
|
|
"node",
|
|
"web/worker/test_virtual_devices.mjs"
|
|
],
|
|
"returncode": 0,
|
|
"status": "passed",
|
|
"stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
|
|
"stdout_sha256": "a5a07a0d0e2b847212c0028807022fa4c6e28ba0d1d56c74d53653e821eb4059",
|
|
"stdout_tail": "code\":\"sim_io_estop\",\"status\":\"blocked\",\"state_hash\":\"fnv1a64:c9fbf3ebca943045\"},{\"kind\":\"SPINDLE_COMMAND\",\"code\":\"sim_io_estop\",\"status\":\"blocked\",\"state_hash\":\"fnv1a64:c9fbf3ebca943045\"},{\"kind\":\"ESTOP\",\"code\":\"sim_io_ok\",\"status\":\"verified\",\"state_hash\":\"fnv1a64:c103c846827f7ff5\"},{\"kind\":\"IO_RECOVER\",\"code\":\"sim_io_ok\",\"status\":\"verified\",\"state_hash\":\"fnv1a64:c94eac708756480a\"}],\"events\":25,\"state_hash\":\"fnv1a64:c94eac708756480a\",\"replay_state_hash\":\"fnv1a64:c94eac708756480a\",\"state_hash_equal\":true,\"final\":{\"ready\":true,\"estop\":false,\"fault\":false,\"fault_reason\":0,\"tick\":40,\"recovery_epoch\":1,\"spindle_count\":1,\"tool_capacity\":1001,\"spindles\":[{\"command_rpm\":0,\"speed_rpm\":0,\"at_speed\":true,\"enabled\":false,\"inhibit\":false,\"amp_fault\":false,\"brake\":true,\"orient\":false,\"locked\":false,\"is_oriented\":false,\"orient_angle\":0,\"orient_mode\":0,\"orient_fault\":0,\"index_enable\":false,\"revs\":40}],\"tool\":{\"state\":\"idle\",\"current\":7,\"prepared\":7,\"pocket\":3,\"prepare\":false,\"prepared_ack\":false,\"changed\":false,\"fault\":false,\"reason\":0},\"probe\":{\"state\":\"tripped\",\"type\":0,\"input\":true,\"tripped\":true,\"tick\":40,\"position\":{\"x\":1,\"y\":2,\"z\":3}},\"limits\":{\"x-positive\":true},\"last_error\":\"sim_io_ok\"}}\n"
|
|
},
|
|
{
|
|
"command": [
|
|
"node",
|
|
"web/worker/test_plc_runtime.mjs"
|
|
],
|
|
"returncode": 0,
|
|
"status": "passed",
|
|
"stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
|
|
"stdout_sha256": "c6c6ee4249124b09e18b57630c7ea3ad53269c02a2a52edd0dc0f8e5c97ce440",
|
|
"stdout_tail": "plc_runtime=passed count=2 dropped=0 worker_tick=1\n"
|
|
}
|
|
],
|
|
"implementation_status": "verified",
|
|
"report_sha256": "ca1af4d50d33158133fad003f9a1759aff3e9e27defd07a9a3f974fbc8e88841",
|
|
"schema": "runtime-extensions-s8-09-report.v1",
|
|
"status": "verified",
|
|
"task_id": "S8-09"
|
|
}
|