oep-client-python 0.0.43__tar.gz → 0.0.45__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/CHANGELOG.md +122 -4
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/PKG-INFO +5 -7
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/README.ja.md +4 -6
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/README.md +4 -6
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/docs/README.ja.md +6 -6
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/docs/allocator-conformance.ja.md +1 -1
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/docs/analog-payload-conformance.ja.md +6 -7
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/docs/arm-adi-conformance.ja.md +1 -1
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/docs/attach-conformance.ja.md +1 -1
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/docs/capture-group-geometry-conformance.ja.md +3 -3
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/docs/capture-metadata-conformance.ja.md +0 -1
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/docs/capture-serial-conformance.ja.md +1 -3
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/docs/capture-timeline-lifecycle-conformance.ja.md +1 -1
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/docs/config-conformance.ja.md +2 -2
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/docs/config-execution-conformance.ja.md +1 -1
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/docs/config-fallback-conformance.ja.md +2 -2
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/docs/config-paging-conformance.ja.md +4 -4
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/docs/config-power-loss-conformance.ja.md +4 -4
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/docs/config-storage-conformance.ja.md +1 -1
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/docs/conformance-checks.ja.md +13 -13
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/docs/conformance-spec-compatibility.ja.md +8 -11
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/docs/core-fixed-fields-review.ja.md +1 -1
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/docs/core-smoke-conformance.ja.md +4 -5
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/docs/corr-conformance.ja.md +1 -1
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/docs/cut-conformance.ja.md +2 -2
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/docs/data-conformance.ja.md +3 -3
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/docs/gpio-lifecycle-conformance.ja.md +1 -1
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/docs/hardware-configuration.ja.md +3 -18
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/docs/hardware-quickstart.ja.md +1 -1
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/docs/hardware-schema.ja.md +6 -8
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/docs/host-core-shapes-conformance.ja.md +2 -2
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/docs/host-deadline-conformance.ja.md +2 -2
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/docs/host-request-conformance.ja.md +7 -10
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/docs/host-resend-conformance.ja.md +3 -4
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/docs/host-wait-conformance.ja.md +2 -2
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/docs/interface-conformance.ja.md +1 -1
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/docs/interface-smoke-conformance.ja.md +1 -1
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/docs/notification-retention-conformance.ja.md +2 -3
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/docs/notification-sequence-conformance.ja.md +1 -1
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/docs/oep-example-smoke-conformance.ja.md +3 -3
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/docs/outcome-conformance.ja.md +1 -1
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/docs/pin-constraints-conformance.ja.md +4 -5
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/docs/pipeline-conformance.ja.md +3 -3
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/docs/port-speed-conformance.ja.md +3 -3
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/docs/recovery-conformance.ja.md +2 -2
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/docs/recovery-races-conformance.ja.md +2 -2
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/docs/refusal-order-conformance.ja.md +3 -3
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/docs/replay-pressure-conformance.ja.md +2 -2
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/docs/resource-conformance.ja.md +1 -1
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/docs/response-race-conformance.ja.md +1 -2
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/docs/retention-conformance.ja.md +2 -2
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/docs/retention-lifecycle-conformance.ja.md +1 -1
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/docs/retry-conformance.ja.md +2 -2
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/docs/route-conformance.ja.md +2 -2
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/docs/run-conformance.ja.md +1 -1
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/docs/session-loss-conformance.ja.md +1 -1
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/docs/session-smoke-conformance.ja.md +2 -2
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/docs/stream-conformance.ja.md +3 -3
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/docs/subscription-conformance.ja.md +4 -4
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/docs/tcp-recovery-conformance.ja.md +2 -3
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/docs/testing-consumers.ja.md +2 -2
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/docs/testing-policy.ja.md +4 -40
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/docs/trace/README.ja.md +1 -1
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/docs/trace/capture.json +133 -471
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/docs/trace/common.json +3 -3
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/docs/trace/console.json +7 -7
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/docs/trace/core.json +180 -171
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/docs/trace/debug.json +130 -82
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/docs/trace/fixture.json +35 -35
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/docs/trace/link.json +14 -14
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/docs/trace/plan.json +27 -27
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/docs/trace/restart.json +2 -2
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/docs/trace/transports.json +16 -16
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/docs/usb-conformance.ja.md +22 -2
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/docs/writer-lease-conformance.ja.md +1 -1
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/pyproject.toml +1 -1
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/__init__.py +1 -1
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/__main__.py +4 -4
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/acquire.py +6 -3
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/capture.py +20 -50
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/conformance/__init__.py +47 -6
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/conformance/allocator.py +1 -1
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/conformance/capture_serial.py +1 -1
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/conformance/core_smoke.py +1 -1
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/conformance/cut.py +1 -1
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/conformance/data.py +1 -1
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/conformance/dependencies.py +1 -1
- oep_client_python-0.0.45/src/oep_client/conformance/force_hw.py +147 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/conformance/gpio_lifecycle.py +2 -2
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/conformance/host_core.py +1 -1
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/conformance/host_deadline.py +2 -2
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/conformance/host_request_sample.py +1 -2
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/conformance/host_requests.py +10 -15
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/conformance/host_wait.py +2 -2
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/conformance/lease.py +1 -1
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/conformance/notification_sequence.py +1 -1
- oep_client_python-0.0.45/src/oep_client/conformance/notify_hw.py +322 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/conformance/oep_smoke.py +3 -3
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/conformance/recovery.py +1 -1
- oep_client_python-0.0.45/src/oep_client/conformance/release_hw.py +123 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/conformance/retention.py +2 -2
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/conformance/retention_lifecycle.py +2 -2
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/conformance/retry.py +1 -1
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/conformance/routes.py +1 -1
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/conformance/serial.py +5 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/conformance/tcp_peers.py +17 -8
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/conformance/tcp_recovery.py +1 -1
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/conformance/usb.py +24 -7
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/conformance/usb_cases.py +40 -1
- oep_client_python-0.0.45/src/oep_client/conformance/usb_hw.py +313 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/conformance/writer_lease.py +1 -1
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/dump.py +3 -3
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/endpoint.py +13 -23
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/frames.py +1 -1
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/host.py +8 -8
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/interfaces.py +3 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/link.py +77 -78
- oep_client_python-0.0.45/src/oep_client/memo.py +101 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/pins.py +2 -2
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/registry.py +7 -3
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/riscv.py +1 -1
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/speed_record.py +3 -3
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/targets.py +6 -5
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/virtual_bench.py +19 -48
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/virtual_bench_capture.py +50 -276
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/virtual_bench_serve.py +3 -3
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/virtual_core.py +3 -4
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/hw/README.ja.md +7 -7
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/hw/README.md +6 -6
- oep_client_python-0.0.45/tests/hw/results/e8f60ae84e28-0.0.44+34c0b0b-0.0.44-20261104T190820.json +851 -0
- oep_client_python-0.0.45/tests/hw/results/e8f60ae84e28-0.0.44+34c0b0b-0.0.44-20261104T190903.json +178 -0
- oep_client_python-0.0.45/tests/hw/results/e8f60ae84e28-unknown-0.0.44-20261104T190857.json +45 -0
- oep_client_python-0.0.45/tests/hw/results/esp32-series-30eda0e31108-0.0.44+34c0b0b-0.0.44-20261104T190941.json +928 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/hw/test_probe.py +10 -6
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/spec/DOCS_SHA256 +8 -7
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/spec/oep-v1.toml +18 -60
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/test_capabilities.py +1 -1
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/test_capture.py +1 -1
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/test_capture_blocks.py +1 -1
- oep_client_python-0.0.43/tests/test_spec_2c6d18d.py → oep_client_python-0.0.45/tests/test_capture_generation_rules.py +7 -7
- oep_client_python-0.0.45/tests/test_capture_rules.py +448 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/test_conformance.py +2 -2
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/test_conformance_core_fixed_fields.py +1 -1
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/test_conformance_core_smoke.py +1 -1
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/test_conformance_data.py +1 -1
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/test_conformance_fixture_metadata.py +1 -1
- oep_client_python-0.0.45/tests/test_conformance_force_hw.py +24 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/test_conformance_host_core.py +2 -2
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/test_conformance_host_critical_calls.py +1 -1
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/test_conformance_host_deadline.py +1 -1
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/test_conformance_host_resend.py +1 -1
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/test_conformance_host_tlv.py +1 -1
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/test_conformance_host_wait.py +1 -1
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/test_conformance_i2c.py +1 -1
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/test_conformance_lease.py +4 -4
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/test_conformance_logic.py +1 -1
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/test_conformance_port_speed.py +1 -1
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/test_conformance_port_speed_execution.py +1 -1
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/test_conformance_reconnect.py +1 -1
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/test_conformance_replay_records_optional.py +1 -1
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/test_conformance_response_race.py +1 -1
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/test_conformance_retention.py +2 -2
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/test_conformance_retention_lifecycle.py +1 -1
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/test_conformance_reviewed_pins.py +2 -2
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/test_conformance_routes.py +4 -4
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/test_conformance_selected_metadata.py +1 -1
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/test_conformance_spi.py +2 -2
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/test_conformance_tcp_peers.py +2 -2
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/test_conformance_usb.py +94 -2
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/test_conformance_wire_options.py +2 -2
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/test_conformance_writer_lease.py +1 -1
- oep_client_python-0.0.45/tests/test_core_rules.py +792 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/test_debug_attach.py +2 -2
- oep_client_python-0.0.45/tests/test_debug_rules.py +881 -0
- oep_client_python-0.0.43/tests/test_spec_3cc50c8.py → oep_client_python-0.0.45/tests/test_describe_unset_idle_rules.py +1 -1
- oep_client_python-0.0.43/tests/test_review7_exact_payload.py → oep_client_python-0.0.45/tests/test_exact_payload_rules.py +8 -8
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/test_extension_patterns.py +1 -1
- oep_client_python-0.0.45/tests/test_fixture_link_settings_rules.py +430 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/test_gpio_drive_and_serve_options.py +1 -1
- oep_client_python-0.0.43/tests/test_review7_host_recovery.py → oep_client_python-0.0.45/tests/test_host_recovery_rules.py +3 -3
- oep_client_python-0.0.43/tests/test_host_rules_2026_10_06.py → oep_client_python-0.0.45/tests/test_host_rules_bounds_options.py +26 -27
- oep_client_python-0.0.43/tests/test_host_rules_2026_10_02.py → oep_client_python-0.0.45/tests/test_host_rules_waits_lines.py +37 -39
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/test_host_wait_bound.py +1 -1
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/test_interfaces.py +2 -2
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/test_link_serial.py +1 -1
- oep_client_python-0.0.45/tests/test_memo.py +128 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/test_no_resume.py +1 -1
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/test_pins.py +3 -2
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/test_plan.py +1 -1
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/test_port_speed.py +14 -14
- oep_client_python-0.0.43/tests/test_review7_request_validation.py → oep_client_python-0.0.45/tests/test_request_validation_rules.py +1 -1
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/test_session.py +2 -2
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/test_spec_sections.py +1 -1
- oep_client_python-0.0.43/tests/test_review7_state_resources.py → oep_client_python-0.0.45/tests/test_state_resource_rules.py +1 -1
- oep_client_python-0.0.43/tests/test_review7_tlv_readers.py → oep_client_python-0.0.45/tests/test_tlv_reader_rules.py +2 -2
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/test_trace_capture.py +20 -20
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/test_trace_common.py +1 -1
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/test_trace_console.py +1 -1
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/test_trace_core.py +3 -3
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/test_trace_core_names.py +1 -1
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/test_trace_debug.py +2 -2
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/test_trace_fixture.py +2 -2
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/test_trace_link.py +3 -3
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/test_trace_plan.py +1 -1
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/test_trace_restart.py +2 -2
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/test_trace_transports.py +1 -1
- oep_client_python-0.0.43/tests/test_spec_283e5b5.py → oep_client_python-0.0.45/tests/test_transport_session_rules.py +1 -1
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/test_virtual_bench_capture_formats.py +3 -3
- oep_client_python-0.0.45/tests/test_virtual_bench_capture_options.py +147 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/test_virtual_bench_pin_constraints.py +1 -1
- oep_client_python-0.0.43/tests/test_virtual_bench_rules_2026_10_02.py → oep_client_python-0.0.45/tests/test_virtual_bench_rules_core.py +45 -46
- oep_client_python-0.0.43/tests/test_virtual_bench_rules_2026_10_06.py → oep_client_python-0.0.45/tests/test_virtual_bench_rules_ops_lines.py +36 -37
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/test_virtual_bench_spec.py +3 -3
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/test_virtual_bench_targets.py +1 -1
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/test_virtual_core.py +41 -2
- oep_client_python-0.0.45/tests/vectors/SPEC_COMMIT +1 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/vectors/SPEC_SHA256 +4 -4
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/vectors/capture_formats.json +1 -27
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/vectors/ops.json +1 -1
- oep_client_python-0.0.43/tests/test_review4_capture.py +0 -227
- oep_client_python-0.0.43/tests/test_review4_debug.py +0 -201
- oep_client_python-0.0.43/tests/test_review4_small.py +0 -176
- oep_client_python-0.0.43/tests/test_review5_capture.py +0 -111
- oep_client_python-0.0.43/tests/test_review5_core_a.py +0 -202
- oep_client_python-0.0.43/tests/test_review5_core_b.py +0 -166
- oep_client_python-0.0.43/tests/test_review5_debug_targets.py +0 -106
- oep_client_python-0.0.43/tests/test_review5_debug_wires.py +0 -237
- oep_client_python-0.0.43/tests/test_review5_small.py +0 -157
- oep_client_python-0.0.43/tests/test_review6_capture_console.py +0 -127
- oep_client_python-0.0.43/tests/test_review6_core_early.py +0 -166
- oep_client_python-0.0.43/tests/test_review6_core_late.py +0 -146
- oep_client_python-0.0.43/tests/test_review6_debug_a.py +0 -149
- oep_client_python-0.0.43/tests/test_review6_debug_b.py +0 -164
- oep_client_python-0.0.43/tests/test_review6_rest.py +0 -118
- oep_client_python-0.0.43/tests/test_review8_core_1.py +0 -43
- oep_client_python-0.0.43/tests/test_review8_core_2.py +0 -144
- oep_client_python-0.0.43/tests/test_review8_debug.py +0 -101
- oep_client_python-0.0.43/tests/test_virtual_bench_capture_options.py +0 -322
- oep_client_python-0.0.43/tests/vectors/SPEC_COMMIT +0 -1
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/.gitignore +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/LICENSE +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/docs/analog-conformance.ja.md +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/docs/block-conformance.ja.md +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/docs/capture-group-conformance.ja.md +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/docs/capture-timeline-conformance.ja.md +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/docs/clock-conformance.ja.md +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/docs/debug-conformance.ja.md +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/docs/dependency-conformance.ja.md +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/docs/discovery-conformance.ja.md +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/docs/dmseq-conformance.ja.md +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/docs/dmseq-target-conformance.ja.md +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/docs/execution-order-conformance.ja.md +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/docs/exhausted-conformance.ja.md +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/docs/fixture-metadata-conformance.ja.md +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/docs/gpio-conformance.ja.md +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/docs/host-notification-conformance.ja.md +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/docs/host-tlv-conformance.ja.md +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/docs/host-value-conformance.ja.md +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/docs/i2c-conformance.ja.md +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/docs/lease-conformance.ja.md +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/docs/link-routes-conformance.ja.md +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/docs/link-transfer-conformance.ja.md +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/docs/logic-conformance.ja.md +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/docs/mailbox-conformance.ja.md +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/docs/notification-output-sample.ja.md +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/docs/oep-declaration-conformance.ja.md +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/docs/probe-input-conformance.ja.md +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/docs/registered-ops-conformance.ja.md +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/docs/reset-conformance.ja.md +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/docs/restart-conformance.ja.md +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/docs/scan-conformance.ja.md +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/docs/scan-options-conformance.ja.md +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/docs/selected-metadata-conformance.ja.md +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/docs/spec-follow-notes.ja.md +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/docs/spi-conformance.ja.md +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/docs/step-conformance.ja.md +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/docs/tlv-request-conformance.ja.md +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/docs/uart-conformance.ja.md +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/docs/uart-stream-conformance.ja.md +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/docs/wire-options-conformance.ja.md +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/arm.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/capture_blocks.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/catalog.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/ch32_flash.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/cobs.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/conformance/allocator_model.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/conformance/allocator_sample.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/conformance/analog.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/conformance/analog_model.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/conformance/analog_payload.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/conformance/analog_sample.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/conformance/arm_adi.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/conformance/arm_adi_blocks.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/conformance/arm_adi_model.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/conformance/arm_adi_sample.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/conformance/attach.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/conformance/attach_model.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/conformance/attach_sample.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/conformance/block_model.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/conformance/block_sample.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/conformance/blocks.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/conformance/capture_group.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/conformance/capture_group_geometry.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/conformance/capture_group_geometry_model.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/conformance/capture_group_model.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/conformance/capture_group_sample.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/conformance/capture_metadata.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/conformance/capture_metadata_model.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/conformance/capture_serial_sample.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/conformance/capture_timeline.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/conformance/capture_timeline_lifecycle.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/conformance/capture_timeline_model.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/conformance/capture_timeline_sample.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/conformance/clock.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/conformance/clock_model.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/conformance/clock_sample.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/conformance/core_fixed_fields.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/conformance/corr.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/conformance/cut_model.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/conformance/cut_sample.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/conformance/data_model.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/conformance/data_sample.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/conformance/debug.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/conformance/debug_model.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/conformance/debug_sample.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/conformance/declaration_model.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/conformance/dependency_model.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/conformance/dependency_sample.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/conformance/discovery.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/conformance/dmseq.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/conformance/dmseq_model.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/conformance/dmseq_sample.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/conformance/dmseq_target.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/conformance/dmseq_target_model.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/conformance/dmseq_target_sample.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/conformance/execution_order.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/conformance/execution_order_sample.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/conformance/exhausted.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/conformance/exhausted_sample.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/conformance/fixture_metadata.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/conformance/fixture_metadata_model.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/conformance/gpio.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/conformance/gpio_lifecycle_model.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/conformance/gpio_lifecycle_sample.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/conformance/gpio_model.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/conformance/gpio_sample.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/conformance/host_core_sample.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/conformance/host_deadline_sample.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/conformance/host_notifications.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/conformance/host_notifications_sample.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/conformance/host_resend.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/conformance/host_resend_sample.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/conformance/host_tlv.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/conformance/host_tlv_sample.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/conformance/host_values.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/conformance/host_values_sample.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/conformance/host_wait_sample.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/conformance/i2c.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/conformance/i2c_model.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/conformance/i2c_sample.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/conformance/interface_smoke.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/conformance/interfaces.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/conformance/lease_sample.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/conformance/link_routes.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/conformance/link_routes_model.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/conformance/link_routes_sample.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/conformance/link_transfer_model.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/conformance/link_transfer_sample.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/conformance/link_transfers.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/conformance/logic.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/conformance/logic_model.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/conformance/logic_sample.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/conformance/mailbox.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/conformance/mailbox_model.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/conformance/mailbox_sample.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/conformance/notification_model.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/conformance/notification_retention.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/conformance/notification_retention_sample.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/conformance/notification_sequence_sample.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/conformance/oep_declaration_model.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/conformance/oep_declarations.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/conformance/outcome_model.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/conformance/outcome_sample.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/conformance/outcomes.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/conformance/pipeline.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/conformance/pipeline_model.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/conformance/pipeline_sample.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/conformance/port_speed.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/conformance/port_speed_execution.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/conformance/port_speed_execution_model.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/conformance/port_speed_execution_sample.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/conformance/port_speed_lifecycle.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/conformance/port_speed_model.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/conformance/port_speed_sample.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/conformance/probe_input.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/conformance/probe_input_sample.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/conformance/recovery_race_sample.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/conformance/recovery_races.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/conformance/recovery_sample.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/conformance/refusal_order.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/conformance/refusal_order_sample.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/conformance/registered_ops.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/conformance/registered_ops_model.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/conformance/replay_pressure.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/conformance/reset.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/conformance/reset_model.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/conformance/reset_sample.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/conformance/resource_model.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/conformance/resource_sample.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/conformance/resources.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/conformance/response_race.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/conformance/response_race_sample.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/conformance/restart.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/conformance/restart_model.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/conformance/restart_sample.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/conformance/retention_lifecycle_sample.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/conformance/retention_model.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/conformance/retention_sample.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/conformance/retry_model.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/conformance/retry_sample.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/conformance/route_model.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/conformance/route_sample.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/conformance/run.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/conformance/run_model.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/conformance/run_sample.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/conformance/scan.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/conformance/scan_model.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/conformance/scan_options.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/conformance/scan_options_model.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/conformance/scan_options_sample.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/conformance/scan_sample.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/conformance/selected_metadata.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/conformance/selected_metadata_model.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/conformance/session_loss.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/conformance/session_loss_sample.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/conformance/session_smoke.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/conformance/spi.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/conformance/spi_model.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/conformance/spi_sample.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/conformance/step.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/conformance/step_model.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/conformance/step_sample.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/conformance/stream.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/conformance/stream_model.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/conformance/stream_sample.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/conformance/subscription_sample.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/conformance/subscriptions.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/conformance/tcp.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/conformance/tcp_recovery_sample.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/conformance/tlv_request_model.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/conformance/tlv_requests.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/conformance/uart.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/conformance/uart_model.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/conformance/uart_sample.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/conformance/uart_stream.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/conformance/uart_stream_sample.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/conformance/usb_model.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/conformance/wire_options.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/conformance/wire_options_model.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/conformance/wire_options_sample.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/conformance/writer_lease_model.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/conformance/writer_lease_sample.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/console.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/core.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/decode.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/discovery.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/fixture.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/hardware.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/hid_stream.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/kept_session.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/linktest.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/message.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/names.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/probe_log.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/pytest_conformance.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/rp2350.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/settings.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/stimulus.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/uiapduino.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/usb_stream.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/virtual_bench_mdns.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/virtual_bench_serial.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/virtual_bench_trigger.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/virtual_bench_usb.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/virtual_fixture_drive.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/src/oep_client/virtual_names.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/conftest.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/equipment/.env.example +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/equipment/test_core_contract.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/equipment/test_preflight.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/fixtures/hardware.virtual.toml +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/hw/.env.example +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/hw/.env.virtual.example +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/hw/__init__.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/hw/boards.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/hw/conftest.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/hw/firmware.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/hw/flash.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/hw/hardware.example.toml +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/hw/hardware.resolved.example.toml +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/hw/record.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/hw/results/.gitignore +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/hw/results/9489dd2ae0953650-0.0.26+5bafb92-0.0.26.json +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/hw/results/9489dd2ae0953650-0.0.26+654b06a-0.0.26.json +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/hw/results/9489dd2ae0953650-0.0.27+ec1df99-0.0.27.json +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/hw/results/9489dd2ae0953650-0.0.32+1491c13-0.0.31-20261016T133559.json +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/hw/results/9489dd2ae0953650-0.0.32+672bf7b-0.0.32-20261016T164655.json +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/hw/results/9489dd2ae0953650-0.0.32-0.0.31-20261016T131458.json +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/hw/results/9489dd2ae0953650-0.0.32-0.0.31-20261016T131510.json +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/hw/results/9489dd2ae0953650-0.0.32-0.0.31-20261016T131526.json +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/hw/results/9489dd2ae0953650-0.0.32-0.0.31-20261016T131532.json +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/hw/results/9489dd2ae0953650-0.0.32-0.0.31-20261016T131656.json +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/hw/results/9489dd2ae0953650-0.0.32-0.0.31-20261016T131703.json +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/hw/results/9489dd2ae0953650-0.0.32-0.0.31-20261016T131708.json +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/hw/results/9489dd2ae0953650-0.0.32-0.0.31-20261016T132050.json +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/hw/results/9489dd2ae0953650-0.0.32-0.0.31-20261016T132057.json +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/hw/results/9489dd2ae0953650-0.0.32-0.0.31-20261016T132104.json +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/hw/results/9489dd2ae0953650-0.0.36+f8ac55a-0.0.36-20261022T160307.json +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/hw/results/9489dd2ae0953650-0.0.36+f8ac55a-0.0.36-20261022T161655.json +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/hw/results/9489dd2ae0953650-0.0.37+1031feb-0.0.37-20261023T214002.json +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/hw/results/9489dd2ae0953650-0.0.38+7c158ff-0.0.38-20261027T081156.json +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/hw/results/9489dd2ae0953650-0.0.39+1ad47c7-0.0.39-20261027T182907.json +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/hw/results/9489dd2ae0953650-0.0.39+2c0c41f-0.0.39-20261027T174907.json +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/hw/results/9489dd2ae0953650-0.0.39+9317805-0.0.39-20261027T191153.json +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/hw/results/9489dd2ae0953650-0.0.39+a75fd45-0.0.39-20261027T205055.json +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/hw/results/9489dd2ae0953650-0.0.39+ca5f896-0.0.39-20261027T201038.json +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/hw/results/9489dd2ae0953650-0.0.39+ca5f896-0.0.39-20261027T201057.json +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/hw/results/9489dd2ae0953650-0.0.39+ca5f896-0.0.39-20261027T201058.json +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/hw/results/9489dd2ae0953650-0.0.39+ca5f896-0.0.39-20261027T201059.json +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/hw/results/9489dd2ae0953650-0.0.39+ca5f896__crash_at_2106_s_-0.0.39-20261027T204608.json +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/hw/results/9489dd2ae0953650-0.0.39+d4d323c-0.0.39-20261028T190815.json +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/hw/results/9489dd2ae0953650-0.0.39+d4d323c-0.0.39-20261028T191854.json +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/hw/results/e8f60ae84e28-0.0.39+1ad47c7-0.0.39-20261027T181116.json +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/hw/results/e8f60ae84e28-0.0.39+1ad47c7-0.0.39-20261027T181812.json +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/hw/results/e8f60ae84e28-0.0.39+1ad47c7-0.0.39-20261027T182903.json +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/hw/results/e8f60ae84e28-0.0.39+62463f2-0.0.39-20261029T145541.json +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/hw/results/e8f60ae84e28-0.0.39+9317805-0.0.39-20261027T191150.json +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/hw/results/e8f60ae84e28-0.0.39+a75fd45-0.0.39-20261028T190803.json +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/hw/results/e8f60ae84e28-0.0.39+b7fbdf9-0.0.39-20261027T191727.json +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/hw/results/e8f60ae84e28-0.0.39+b7fbdf9-0.0.39-20261027T204611.json +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/hw/results/e8f60ae84e28-0.0.39+bb371fb-0.0.39-20261028T191811.json +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/hw/results/e8f60ae84e28-0.0.39+bb371fb-0.0.39-20261028T191849.json +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/hw/results/esp32-d0wd-v3-0070070d9394-0.0.26+4fad559-0.0.26.json +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/hw/results/esp32-d0wd-v3-0070070d9394-0.0.26+5bafb92-0.0.26.json +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/hw/results/esp32-d0wd-v3-0070070d9394-0.0.32+1491c13-0.0.31-20261016T133501.json +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/hw/results/esp32-d0wd-v3-0070070d9394-0.0.32+672bf7b-0.0.32-20261016T164559.json +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/hw/results/esp32-d0wd-v3-0070070d9394-0.0.32-0.0.31-20261016T130922.json +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/hw/results/esp32-d0wd-v3-0070070d9394-0.0.32-0.0.31-20261016T131024.json +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/hw/results/esp32-d0wd-v3-0070070d9394-0.0.36+12e1222-0.0.37-20261023T214016.json +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/hw/results/esp32-d0wd-v3-0070070d9394-0.0.36+f8ac55a-0.0.36-20261022T160134.json +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/hw/results/esp32-d0wd-v3-0070070d9394-0.0.37+1031feb-0.0.37-20261023T214230.json +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/hw/results/esp32-d0wd-v3-0070070d9394-0.0.38+7c158ff-0.0.38-20261027T081159.json +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/hw/results/esp32-d0wd-v3-0070070d9394-0.0.39+2c0c41f-0.0.39-20261027T174933.json +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/hw/results/esp32-d0wd-v3-0070070d9394-0.0.39+9317805-0.0.39-20261027T191154.json +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/hw/results/esp32-d0wd-v3-0070070d9394-0.0.39+b7fbdf9-0.0.39-20261027T204617.json +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/hw/results/esp32-d0wd-v3-0070070d9394-0.0.39+bb371fb-0.0.39-20261028T191816.json +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/hw/results/esp32-pico-d4-50029191fe34-0.0.25-0.0.26.json +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/hw/results/esp32-pico-d4-50029191fe34-0.0.26+5bafb92-0.0.26.json +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/hw/results/esp32-pico-d4-50029191fe34-0.0.26+654b06a-0.0.26.json +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/hw/results/esp32-pico-d4-50029191fe34-0.0.26+e877631-0.0.26.json +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/hw/results/esp32-pico-d4-50029191fe34-0.0.27+ac80e07-0.0.27.json +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/hw/results/esp32-pico-d4-50029191fe34-0.0.27+ec1df99-0.0.27.json +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/hw/results/esp32-pico-d4-50029191fe34-0.0.27-0.0.27.json +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/hw/results/esp32-pico-d4-50029191fe34-0.0.28-0.0.28.json +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/hw/results/esp32-pico-d4-50029191fe34-0.0.37+1031feb-0.0.37-20261023T220718.json +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/hw/results/esp32-pico-d4-50029191fe34-0.0.37+1031feb-0.0.37-20261023T221106.json +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/hw/results/esp32-pico-d4-50029191fe34-0.0.37+1031feb__panic_at_11_s_-0.0.37-20261023T220856.json +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/hw/results/esp32-pico-d4-50029191fe34-0.0.37+1031feb__panic_at_11_s_-0.0.37-20261023T220901.json +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/hw/results/esp32-pico-d4-50029191fe34-0.0.37+1031feb__panic_at_11_s_-0.0.37-20261023T220915.json +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/hw/results/esp32-pico-d4-50029191fe34-unknown-0.0.26.json +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/hw/results/esp32-pico-d4-50029191fe34-unknown-0.0.37-20261023T214102.json +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/hw/results/esp32-pico-d4-50029191fe34-unknown-0.0.39-20261028T190818.json +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/hw/results/esp32-series-30eda0e31108-0.0.26+5bafb92-0.0.26.json +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/hw/results/esp32-series-30eda0e31108-0.0.26+654b06a-0.0.26.json +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/hw/results/esp32-series-30eda0e343c6-0.0.26+5bafb92-0.0.26.json +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/hw/results/esp32-series-30eda0e343c6-0.0.26+654b06a-0.0.26.json +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/hw/results/esp32-series-30eda0e343c6-0.0.27+ec1df99-0.0.27.json +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/hw/results/esp32-series-30eda0e343c6-0.0.28+ffe4eb1-0.0.28.json +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/hw/results/esp32-series-30eda0e343c6-0.0.28-0.0.28.json +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/hw/results/esp32-series-30eda0ea068b-0.0.28+0f013b7-0.0.28.json +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/hw/results/esp32-series-30eda0ea068b-0.0.28+1c940ca-0.0.28.json +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/hw/results/esp32-series-30eda0ea068b-0.0.28+4ef21db+4ef21db-dirty-0.0.28.json +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/hw/results/esp32-series-30eda0ea068b-0.0.28+68d9694-0.0.28.json +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/hw/results/esp32-series-30eda0ea068b-0.0.28+ec38b1d-0.0.28.json +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/hw/results/esp32-series-30eda0ea068b-0.0.28+ffe4eb1-0.0.28.json +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/hw/results/esp32-series-30eda0ea068b-0.0.28-0.0.28.json +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/hw/results/esp32-series-30eda0ea068b-0.0.36+f8ac55a-0.0.36-20261022T160503.json +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/hw/results/esp32-series-30eda0ea068b-0.0.37+1031feb-0.0.37-20261023T214005.json +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/hw/results/esp32-series-30eda0ea068b-0.0.38+7c158ff-0.0.38-20261027T081145.json +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/hw/results/esp32-series-30eda0ea068b-0.0.38+7c158ff-0.0.38-20261027T081152.json +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/hw/results/esp32-series-30eda0ea068b-0.0.39+1ad47c7-0.0.39-20261027T180716.json +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/hw/results/esp32-series-30eda0ea068b-0.0.39+1ad47c7-0.0.39-20261027T182855.json +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/hw/results/esp32-series-30eda0ea068b-0.0.39+1ad47c7-0.0.39-20261027T183107.json +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/hw/results/esp32-series-30eda0ea068b-0.0.39+2c0c41f-0.0.39-20261027T174908.json +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/hw/results/esp32-series-30eda0ea068b-0.0.39+2c0c41f__task-wdt_at_18_s_-0.0.39-20261027T175743.json +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/hw/results/esp32-series-30eda0ea068b-0.0.39+2c0c41f__task-wdt_at_18_s_-0.0.39-20261027T175815.json +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/hw/results/esp32-series-30eda0ea068b-0.0.39+2c0c41f__task-wdt_at_33_s_-0.0.39-20261027T175634.json +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/hw/results/esp32-series-30eda0ea068b-0.0.39+2c0c41f__task-wdt_at_431_s_-0.0.39-20261027T175709.json +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/hw/results/esp32-series-30eda0ea068b-0.0.39+62463f2-0.0.39-20261029T145536.json +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/hw/results/esp32-series-30eda0ea068b-0.0.39+7445bee-0.0.39-20261027T155413.json +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/hw/results/esp32-series-30eda0ea068b-0.0.39+9317805-0.0.39-20261027T191146.json +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/hw/results/esp32-series-30eda0ea068b-0.0.39+b7fbdf9-0.0.39-20261027T191724.json +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/hw/results/esp32-series-30eda0ea068b-0.0.39+bb371fb-0.0.39-20261028T191806.json +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/hw/results/esp32-series-30eda0ea068b-0.0.39+bb371fb-0.0.39-20261028T191843.json +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/hw/results/esp32-series-30eda0ea068b-0.0.39+d4d323c-0.0.39-20261028T190809.json +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/hw/results/esp32-series-30eda0ea068b-unknown-0.0.36-20261022T160222.json +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/hw/results/esp32-series-30eda0ea068b-unknown-0.0.39-20261027T155301.json +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/hw/results/esp32-series-30eda0ea068b-unknown-0.0.39-20261027T155340.json +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/hw/test_harness.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/spec_names.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/test_acquire.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/test_address.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/test_cobs.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/test_conformance_allocator.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/test_conformance_analog.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/test_conformance_analog_payload.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/test_conformance_arm_adi.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/test_conformance_arm_adi_blocks.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/test_conformance_attach.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/test_conformance_blocks.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/test_conformance_capture_group.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/test_conformance_capture_group_geometry.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/test_conformance_capture_metadata.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/test_conformance_capture_serial.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/test_conformance_capture_timeline.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/test_conformance_capture_timeline_lifecycle.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/test_conformance_clock.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/test_conformance_corr.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/test_conformance_cut.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/test_conformance_debug.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/test_conformance_dependencies.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/test_conformance_discovery.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/test_conformance_dmseq.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/test_conformance_dmseq_target.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/test_conformance_execution_order.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/test_conformance_exhausted.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/test_conformance_gpio.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/test_conformance_gpio_lifecycle.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/test_conformance_host_notifications.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/test_conformance_host_requests.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/test_conformance_host_values.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/test_conformance_interface_smoke.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/test_conformance_interfaces.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/test_conformance_link_routes.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/test_conformance_link_transfers.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/test_conformance_mailbox.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/test_conformance_notification_output.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/test_conformance_notification_retention.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/test_conformance_notification_sequence.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/test_conformance_oep_declarations.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/test_conformance_oep_smoke.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/test_conformance_outcomes.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/test_conformance_pipeline.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/test_conformance_port_speed_lifecycle.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/test_conformance_probe_input.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/test_conformance_recovery.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/test_conformance_recovery_races.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/test_conformance_refusal_order.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/test_conformance_registered_ops.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/test_conformance_replay_pressure.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/test_conformance_reset.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/test_conformance_resources.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/test_conformance_restart.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/test_conformance_retry.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/test_conformance_run.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/test_conformance_scan.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/test_conformance_scan_options.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/test_conformance_serial.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/test_conformance_session_loss.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/test_conformance_session_smoke.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/test_conformance_spec_guard.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/test_conformance_step.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/test_conformance_stream.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/test_conformance_subscriptions.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/test_conformance_tcp.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/test_conformance_tcp_recovery.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/test_conformance_tlv_requests.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/test_conformance_uart.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/test_conformance_uart_stream.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/test_console_queue_and_reset_settle.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/test_fixture_controllers.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/test_fixture_out.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/test_fixture_targets.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/test_flash_console.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/test_hardware.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/test_hid_stream.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/test_host_boot_lifecycle.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/test_link_drop.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/test_link_host.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/test_linktest.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/test_literals.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/test_minimal_ops.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/test_open_extensions.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/test_passthrough.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/test_probe_log.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/test_request_tails.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/test_restart.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/test_resubscribe_after_reopen.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/test_rvswd_rest.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/test_settings.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/test_spec_vectors.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/test_stimulus.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/test_target_parts.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/test_tcp_discovery.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/test_trace_fixture_drive.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/test_usb_identity.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/test_usb_stream.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/test_virtual_bench_analog_roles.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/test_virtual_bench_announce.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/test_virtual_bench_capture.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/test_virtual_bench_capture_changing_trigger.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/test_virtual_bench_capture_channel_time.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/test_virtual_bench_capture_format_2.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/test_virtual_bench_capture_initial_trigger_time.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/test_virtual_bench_capture_lifetime.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/test_virtual_bench_capture_notifications.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/test_virtual_bench_capture_one_shot_time.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/test_virtual_bench_capture_pretrigger.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/test_virtual_bench_capture_query.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/test_virtual_bench_capture_rates.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/test_virtual_bench_capture_requests.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/test_virtual_bench_capture_resume_calibration.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/test_virtual_bench_capture_trigger_modes.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/test_virtual_bench_capture_trigger_source.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/test_virtual_bench_capture_trigger_source_more.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/test_virtual_bench_capture_waiting.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/test_virtual_bench_serve_reboot.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/test_virtual_bench_serve_tcp_connections.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/test_virtual_core_bool.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/test_wire_hold.py +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/vectors/checks.json +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/vectors/cobs.json +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/vectors/confirm.json +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/vectors/core_extensions.json +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/vectors/core_lifecycle.json +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/vectors/core_policy.json +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/vectors/discovery.json +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/vectors/headers.json +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/vectors/interface_boundaries.json +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/vectors/interface_profiles.json +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/vectors/logic_layout.json +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/vectors/ops_encoding.json +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/vectors/refusals.json +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/vectors/sessions.json +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/tests/vectors/settings_file.json +0 -0
- {oep_client_python-0.0.43 → oep_client_python-0.0.45}/udev/70-oep-probe.rules +0 -0
|
@@ -2,6 +2,124 @@
|
|
|
2
2
|
|
|
3
3
|
## Unreleased
|
|
4
4
|
|
|
5
|
+
## 0.0.45
|
|
6
|
+
- (EN) Added: `oep_client.memo` for `oep.probe.memo` (oep-if-memo): list (paged, by prefix), read and write in parts at the
|
|
7
|
+
route's max_frame, delete; a read whose data does not match its crc raises MemoTorn. `oep dump` names the interface and
|
|
8
|
+
its max_object / max_objects. Registry and documents synced from oep-spec 2cd20aa (the memo interface; MUSTs that only
|
|
9
|
+
touch quality relaxed to SHOULD); the conformance checkers' pins moved with it after a review (none checks a relaxed rule).
|
|
10
|
+
- (JA) 追加: `oep.probe.memo`(oep-if-memo)の `oep_client.memo`。list(ページ分け、prefix)、経路の max_frame に合わせて分ける read と
|
|
11
|
+
write、delete。データが crc と合わない read は MemoTorn。`oep dump` がこのインターフェースと max_object / max_objects を示す。registry と
|
|
12
|
+
文書を oep-spec 2cd20aa から同期した(メモ欄。品質だけにかかわる必須を推奨にした)。適合の検査の固定は、見直して合わせた(緩めた規則を
|
|
13
|
+
確かめる検査は無い)。
|
|
14
|
+
- (EN) Fixed (tests/hw): capture_repeat_rearm configured 100 kHz whatever the probe declared, so a probe whose lowest rate
|
|
15
|
+
is above it (ESP32-P4: 627 kHz) refused the rate and the test skipped as if rearm were missing. It takes a declared
|
|
16
|
+
rate, and skips only when trigger_opts is the refused tag. It passes on ESP32-P4 and P4X probes.
|
|
17
|
+
- (JA) 修正(tests/hw): capture_repeat_rearm は probe の宣言によらず 100 kHz で configure していたので、最も遅いレートがそれより速い
|
|
18
|
+
probe(ESP32-P4: 627 kHz)ではレートで断られ、rearm が無いかのように skip していた。宣言したレートを使い、断られた tag が
|
|
19
|
+
trigger_opts のときだけ skip する。ESP32-P4 と P4X のプローブで通る。
|
|
20
|
+
- (EN) Added: `python -m oep_client.conformance.release_hw` checks electrically that a released pin goes back to its idle
|
|
21
|
+
state whatever released it (core §8, §9, §6.4): the channel's idle is set to pull-up / pull-down, fixture gpio drives the
|
|
22
|
+
line the other way, and a CH32 target's GPIO input, read over the probe's debug wire, must read the drive and then the
|
|
23
|
+
pull after plan_release, end, another id's force and the lease running out. All eight pass on an ESP32-P4 probe with a
|
|
24
|
+
CH32X035.
|
|
25
|
+
- (JA) 追加: `python -m oep_client.conformance.release_hw` は、どの道で解いても解いたピンが空きの状態に戻ることを電気的に確かめる
|
|
26
|
+
(core §8、§9、§6.4): channel の idle を pull-up / pull-down にし、fixture gpio で逆に駆動し、プローブの debug の線で読む CH32 の
|
|
27
|
+
target の GPIO の入力が、駆動を読み、plan_release、end、別の id の force、lease の期限切れの後にプルを読む。ESP32-P4 のプローブと
|
|
28
|
+
CH32X035 で 8 つとも通る。
|
|
29
|
+
- (EN) Added: `python -m oep_client.conformance.notify_hw` checks subscriptions and notifications on a real probe
|
|
30
|
+
(core §10, §9, §6.4; transports §3) with a logic capture streaming on one channel the user names: subscribe needs the
|
|
31
|
+
lock, unsubscribe with none succeeds, seq from 0 one by one with positions back to back, answers first while it
|
|
32
|
+
streams, a new subscribe restarts seq, max_delay_ms batches, nothing on another route, nothing after end or a force.
|
|
33
|
+
All nine pass on ESP32-P4 and P4X probes.
|
|
34
|
+
- (JA) 追加: `python -m oep_client.conformance.notify_hw` は、利用者が名指した 1 本の線でロジックのキャプチャをストリーミングさせ、
|
|
35
|
+
実機で購読と通知を確かめる(core §10、§9、§6.4、transports §3): subscribe はロックが要る、購読が無い unsubscribe は成功、seq は 0 から
|
|
36
|
+
1 ずつで position は途切れない、ストリーミング中も応答が先、subscribe し直すと seq は 0 から、max_delay_ms でまとめて送る、ほかの
|
|
37
|
+
経路には届かない、end と force の後は届かない。ESP32-P4 と P4X のプローブで 9 つとも通る。
|
|
38
|
+
- (EN) Added: `python -m oep_client.conformance.force_hw` checks on a real probe that force releases the resources of the
|
|
39
|
+
session it takes from (core §6.4, §9): S attaches to a target (a debug connection), T of another id opens with force;
|
|
40
|
+
S's connection is gone from connections, its number is no_resource, S's keepalive is refused, and T's attach gets a new,
|
|
41
|
+
larger number. It passes on an ESP32-P4 probe with a CH32V208 over rvswd.
|
|
42
|
+
- (JA) 追加: `python -m oep_client.conformance.force_hw` は、実機で force が奪ったセッションの資源を解放することを確かめる(core §6.4、
|
|
43
|
+
§9): S が target に attach し(debug の接続)、別の id の T が force で open する。S の接続は connections から消え、その番号は
|
|
44
|
+
no_resource、S の keepalive は断られ、T の attach は新しい大きい番号になる。ESP32-P4 のプローブと rvswd の CH32V208 で通る。
|
|
45
|
+
- (EN) Added: the two-route checks (one lock seen from both routes, another session's open refused locked with its owner,
|
|
46
|
+
an answer only on the route of its request; transports §3) run on any second route, not only a second TCP connection:
|
|
47
|
+
`usb_hw --peer hid|bulk` opens the other USB kind of the same device, `--peer-port` its OEP CDC port (CORE-ROUTE-PEER-*).
|
|
48
|
+
They pass on ESP32-P4 and P4X probes for bulk with HID and bulk with CDC.
|
|
49
|
+
- (JA) 追加: 2 つの経路の検査(どちらの経路からも同じ 1 つのロックが見え、別のセッションの open は持ち主つきの locked で断られ、
|
|
50
|
+
答えは要求の来た経路にだけ返る。transports §3)を、2 本目の TCP の接続だけでなく、どの経路でも回す: `usb_hw --peer hid|bulk` は同じ
|
|
51
|
+
device のもう一方の USB の経路を、`--peer-port` はその OEP の CDC の口を開く(CORE-ROUTE-PEER-*)。ESP32-P4 と P4X のプローブで、bulk と
|
|
52
|
+
HID、bulk と CDC の組で通る。
|
|
53
|
+
- (EN) Added: oep-conformance runs the reconnect checks over TCP too (a new connection is the route moving, transports §3):
|
|
54
|
+
the session, its lock, its replay record and its lease outlive the connection. New check CORE-RECONNECT-UNREAD (serial
|
|
55
|
+
and TCP): a request whose answer is lost with the closed route is resent on the new one and comes back as the recorded
|
|
56
|
+
answer or result_lost, never run again (core §5.1; a recorded clock answer is told by its uptime). The virtual bench's
|
|
57
|
+
loopback TCP passes all five.
|
|
58
|
+
- (JA) 追加: oep-conformance は、接続し直しの検査を TCP でも回す(新しい接続は経路の移動、transports §3): セッション、ロック、再送の
|
|
59
|
+
記録、lease は接続より長く残る。新しい検査 CORE-RECONNECT-UNREAD(シリアルと TCP): 閉じた経路で答えを失った要求を新しい経路で
|
|
60
|
+
送り直すと、記録した答えか result_lost が返り、二度は実行されない(core §5.1。記録した clock の答えは uptime で分かる)。仮想ベンチの
|
|
61
|
+
loopback の TCP は 5 つとも通る。
|
|
62
|
+
- (EN) Added: `python -m oep_client.conformance.usb_hw` runs the raw bulk / HID checks on a real probe, named by
|
|
63
|
+
VID:PID and its serial number (the unit id), under the shared lock; it checks the USB descriptors too (serial = unit
|
|
64
|
+
id, one OEP vendor interface with one bulk pair, one OEP HID with one report ID, MS OS 2.0 WINUSB as a SHOULD). New
|
|
65
|
+
check CORE-USB-IN-END: answers framed to exactly one and two IN packets (oep.probe.link's source) must arrive without
|
|
66
|
+
more data after them (transports §1, the probe's last transfer ended). On ESP32-P4 and P4X probes every bulk and HID
|
|
67
|
+
check passes.
|
|
68
|
+
- (JA) 追加: `python -m oep_client.conformance.usb_hw` は、VID:PID と serial number(unit id)で名指した実機に、共通のロックを取って、
|
|
69
|
+
bulk / HID の生の検査を回す。USB の descriptor も確かめる(serial が unit id、OEP の vendor interface が 1 つで bulk が 1 組、OEP の HID が
|
|
70
|
+
1 つで report ID が 1 つ、MS OS 2.0 の WINUSB は SHOULD)。新しい検査 CORE-USB-IN-END: 枠がちょうど IN packet 1 個分と 2 個分の答え
|
|
71
|
+
(oep.probe.link の source)が、続く data なしで届くこと(transports §1、probe の最後の転送の終わり)。ESP32-P4 と P4X のプローブで、
|
|
72
|
+
bulk と HID の検査はすべて通る。
|
|
73
|
+
- (EN) Docs: the rule-by-rule trace (docs/trace) names the tests as they are now (the subject-named modules, no review
|
|
74
|
+
rounds or item numbers; the later-copy tests as the refusal tests that replaced them), and core §2.3's rows follow the
|
|
75
|
+
spec's split of the twice-sent tag into requests (malformed) and answers (the first is used). tools/check_trace.py
|
|
76
|
+
passes on oep-spec 3b6dbbc.
|
|
77
|
+
- (JA) 文書: 規則ごとの対応表(docs/trace)は、今の試験の名前を指す(主題で名付けたモジュール、回や項目の番号なし。後の写しの試験は、
|
|
78
|
+
置き換えた断りの試験)。core §2.3 の行は、2 回送られた tag を要求(malformed)と応答(最初を使う)に分けた仕様に合わせた。
|
|
79
|
+
tools/check_trace.py は oep-spec 3b6dbbc で通る。
|
|
80
|
+
- (EN) Removed: capture's optional features no probe implemented, as oep-spec 3b6dbbc drops them. `configure` no longer
|
|
81
|
+
takes `format_name`, and its `options` take only `glitch_filter` (group 0) and `clock`; `Config.format_name` and the
|
|
82
|
+
`threshold_used`, `coupling_used`, `offset_used`, `bandwidth_used`, `resolution_used` and `oversample_used` entries of
|
|
83
|
+
`Config.used` are gone. The virtual bench no longer offers the external data paths (`Endpoint.external_disconnect`,
|
|
84
|
+
`virtual_bench.EXTERNAL_TCP_PORT` / `EXTERNAL_UDP_PORT`), the named format (`NAMED_FORMAT`) or the analog front-end
|
|
85
|
+
settings; `with_capture_options` adds format 3, the external clock and the glitch filter to the logic track. The spec
|
|
86
|
+
snapshot follows 3b6dbbc, the trace's capture rows follow the spec's sections (§0, §3.8, trigger records at §3.9), and
|
|
87
|
+
the host-request checker's reviewed pins move with it.
|
|
88
|
+
- (JA) 削除: oep-spec 3b6dbbc に合わせ、どの probe も持たなかった capture の任意の機能を外した。`configure` は `format_name` を
|
|
89
|
+
取らず、`options` は `glitch_filter`(群 0)と `clock` だけを取る。`Config.format_name` と、`Config.used` の `threshold_used`、
|
|
90
|
+
`coupling_used`、`offset_used`、`bandwidth_used`、`resolution_used`、`oversample_used` は無くなった。仮想ベンチは、データの外部の
|
|
91
|
+
経路(`Endpoint.external_disconnect`、`virtual_bench.EXTERNAL_TCP_PORT` / `EXTERNAL_UDP_PORT`)、名前付きの形式(`NAMED_FORMAT`)、
|
|
92
|
+
アナログの前段の設定を出さない。`with_capture_options` は、ロジックのトラックに形式 3、外部クロック、グリッチフィルタを足す。仕様の
|
|
93
|
+
写しは 3b6dbbc に合わせ、対応表の capture の行は仕様の節(§0、§3.8、トリガの記録は §3.9)に合わせ、host の要求の検査器の
|
|
94
|
+
固定もそれに移した。
|
|
95
|
+
- (EN) Tests: the spec snapshot (vectors, registry, the documents' digests) follows oep-spec b8d63c6, and the conformance
|
|
96
|
+
checkers' reviewed pins move with it: the core, capture and fixture changes since are wording only (a §0 heading, the
|
|
97
|
+
state table's stopped 2, the critical-bit sentence, no product names). The core checker passes on an ESP32-P4 probe.
|
|
98
|
+
- (JA) 試験: 仕様の写し(ベクタ、registry、文書のハッシュ)を oep-spec b8d63c6 に合わせ、適合の検査器の固定も移した。core、capture、
|
|
99
|
+
fixture のその間の変更は文言だけ(§0 の見出し、状態の表の stopped 2、critical の bit の文、製品名の削除)。core の検査器は
|
|
100
|
+
ESP32-P4 のプローブで通る。
|
|
101
|
+
- (EN) Docs: comments, docstrings and documents cite the spec's sections as they are now (core §10 for notifications,
|
|
102
|
+
§5.1 for resending, plan §2.4, restart §2, link §3). The port_speed procedure, once host guide §17 and now this
|
|
103
|
+
client's own, is cited as the README's section. `acquire` takes describe's tags and the trigger types from the
|
|
104
|
+
registry instead of writing their numbers.
|
|
105
|
+
- (JA) 文書: 注釈、docstring、文書は、仕様の今の節を指す(通知は core §10、再送は §5.1、plan §2.4、restart §2、link §3)。
|
|
106
|
+
前は host ガイド §17 にあり今はこの client 自身のものになった port_speed の手順は、README の節として指す。`acquire` は describe の
|
|
107
|
+
tag とトリガの型を、番号を書かずに registry から引く。
|
|
108
|
+
|
|
109
|
+
## 0.0.44
|
|
110
|
+
- (EN) Changed: `targets` names the CH32V20x family `ch32v20x` (was `ch32v203`) and knows the CH32V208 by its target_id
|
|
111
|
+
(top 12 bits 0x208; a CH32V208WBU6 measured), so `oep pins` identifies it and maps its pads; the CH32V203's id is not
|
|
112
|
+
recorded yet. The module and `oep pins` no longer point to documents oep-spec no longer has.
|
|
113
|
+
- (JA) 変更: `targets` は CH32V20x の系列を `ch32v20x` と呼び(前は `ch32v203`)、CH32V208 を target_id(上位 12 ビット 0x208。
|
|
114
|
+
CH32V208WBU6 で測定)で知る。`oep pins` が識別してパッドを map できる。CH32V203 の id はまだ記録していない。モジュールと `oep pins`
|
|
115
|
+
は、oep-spec に今は無い文書を指さなくなった。
|
|
116
|
+
- (EN) Docs: the conformance, testing and hardware documents describe the current state only (no interim wording, no
|
|
117
|
+
pinned commits; how checkers pin the reviewed spec is in docs/conformance-spec-compatibility.ja.md). The README no longer
|
|
118
|
+
calls the client experimental. `tests/test_conformance_reviewed_pins.py` also checks the capture-serial checker's pins.
|
|
119
|
+
- (JA) 文書: 適合検査、テスト方針、実機設定の文書を今の状態だけにした(途中の状態の言葉と、固定した commit の番号を外した。
|
|
120
|
+
検査器がレビュー済みの仕様に固定する仕方は docs/conformance-spec-compatibility.ja.md)。README の「実験段階」を外した。
|
|
121
|
+
`tests/test_conformance_reviewed_pins.py` は capture-serial の検査器の固定も確かめる。
|
|
122
|
+
|
|
5
123
|
## 0.0.43
|
|
6
124
|
- (EN) Added: `Host.open`, `Host.take` and `core.take` take `extensions` - named extensions (a name, or (name, data))
|
|
7
125
|
carried on the open after the owner, sent critical, so a probe that does not know one refuses it (`Unsupported`, its
|
|
@@ -522,7 +640,7 @@
|
|
|
522
640
|
missing bits 0); read_rx's ns is when CS went inactive (I2C: the STOP or next START).
|
|
523
641
|
- Virtual bench: the configure contract and answer rows, wrapping generations and serials, generations on every
|
|
524
642
|
event and in the group's start answer / status, marks and segments paging, release by core §2.6, step's zeros,
|
|
525
|
-
spi-target masking and an optional ns (`Endpoint.spi_ns`). New tests/
|
|
643
|
+
spi-target masking and an optional ns (`Endpoint.spi_ns`). New tests/test_capture_generation_rules.py; the new vectors and
|
|
526
644
|
ops.json `events` run both ways (arm-adi's probe side skipped: the virtual bench has no arm-adi).
|
|
527
645
|
- (JA) **oep-spec 0098b56〜2c6d18d(0991759 の外部レビューのインターフェース再確認)に合わせた。** registry と vectors を同期し、
|
|
528
646
|
README は 2c6d18d を名乗る。壊れる変更(wire と API):
|
|
@@ -544,7 +662,7 @@
|
|
|
544
662
|
read_rx の ns は CS が無効になった時刻(I2C は STOP か次の START)。
|
|
545
663
|
- 仮想ベンチ: configure の契約と応答の行、一周する世代と serial、どの出来事にも世代、組の start の応答と status の世代、marks と
|
|
546
664
|
segments のページング、core §2.6 での release、step の 0、spi-target のビットの消去と任意の ns(`Endpoint.spi_ns`)。
|
|
547
|
-
tests/
|
|
665
|
+
tests/test_capture_generation_rules.py を足した。新しい vectors と ops.json の `events` を両側から通す(arm-adi の probe 側は飛ばす: 仮想ベンチに
|
|
548
666
|
arm-adi は無い)。
|
|
549
667
|
- (EN) **`oep find` and `discovery.find_unit` verify what they find (oep-spec 0991759, host guide §4.1).** The DNS-SD
|
|
550
668
|
service name `oep` is not registered, so another service may advertise `_oep._tcp`. `discovery.verify(found)` checks
|
|
@@ -776,7 +894,7 @@
|
|
|
776
894
|
- oep-if-link / host guide §17 (44aa045): the sink count is max_frame - 12, which this client already sends
|
|
777
895
|
(`core.link_sink_size`); nothing changed.
|
|
778
896
|
- The tests run with `OEP_SESSION_DIR` in a temporary directory (tests/conftest.py; tests/hw keeps the real one).
|
|
779
|
-
New tests/
|
|
897
|
+
New tests/test_transport_session_rules.py. README / tests/hw README (EN / JA).
|
|
780
898
|
- (JA) **oep-spec 283e5b5〜f8bb2de**(2026-10-07 の外部レビューの再確認と、その後の直し)。README は `f8bb2de` を名乗る。registry と
|
|
781
899
|
ベクタを写した(`tools/sync_registry.sh`): `resend_max` は無くなった(送り直しは host が決める。この client の送り直し - 待ちの後に
|
|
782
900
|
1 回、持っているシリアルの口で壊れたフレームが来たらすぐ 3 回まで - はそのまま)。`interface_name_max_bytes` は 64 -> 48
|
|
@@ -801,7 +919,7 @@
|
|
|
801
919
|
- oep-if-link / host ガイド §17(44aa045): sink の count は max_frame − 12 で、この client はもとからそれを送る(`core.link_sink_size`)。
|
|
802
920
|
変更なし。
|
|
803
921
|
- 試験は `OEP_SESSION_DIR` を一時の場所にして走る(tests/conftest.py。tests/hw は本当の場所のまま)。新しい
|
|
804
|
-
tests/
|
|
922
|
+
tests/test_transport_session_rules.py。README と tests/hw の README(EN / JA)。
|
|
805
923
|
- (EN) **Breaking (API, CLI): the fake probe is the virtual bench**, with no aliases (pre-freeze). The virtual bench is a
|
|
806
924
|
probe, the targets behind it and the fixture wiring, modelled after the real jigs: the environment host software is
|
|
807
925
|
tested in. "Bench" alone still means the real HIL jigs. Renamed: module `oep_client.fake` -> `oep_client.virtual_bench`,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: oep-client-python
|
|
3
|
-
Version: 0.0.
|
|
3
|
+
Version: 0.0.45
|
|
4
4
|
Summary: Open Embedded Probe (OEP) v1 host: serial / USB / TCP transports, the session rules, the standard interfaces, and a virtual bench
|
|
5
5
|
Project-URL: Homepage, https://github.com/Open-Embedded-Probe/oep-client-python
|
|
6
6
|
Project-URL: Repository, https://github.com/Open-Embedded-Probe/oep-client-python
|
|
@@ -31,11 +31,10 @@ Description-Content-Type: text/markdown
|
|
|
31
31
|
|
|
32
32
|
The host side of Open Embedded Probe (OEP). It speaks the v1 protocol of
|
|
33
33
|
[oep-spec](https://github.com/Open-Embedded-Probe/oep-spec) (the core `docs/oep-core.ja.md`, `docs/oep-transports.ja.md`
|
|
34
|
-
and the interfaces `interfaces/*.ja.md`)
|
|
35
|
-
oep-spec's generated `generated/oep-v1/oep_v1_registry.py`.
|
|
36
|
-
no compatible API is promised.
|
|
34
|
+
and the interfaces `interfaces/*.ja.md`). The wire numbers come from `oep_client.registry`, a verbatim copy of
|
|
35
|
+
oep-spec's generated `generated/oep-v1/oep_v1_registry.py`.
|
|
37
36
|
|
|
38
|
-
**The spec this implements: the oep-spec commit in `tests/vectors/SPEC_COMMIT`** (
|
|
37
|
+
**The spec this implements: the oep-spec commit in `tests/vectors/SPEC_COMMIT`** (oep-spec versioning §2 / §6: before the
|
|
39
38
|
freeze, revision 1 alone does not fix the forms, so an implementation names the spec commit it implements). The registry
|
|
40
39
|
and the shared vectors in `tests/vectors/` are copied from that commit; the history is in [CHANGELOG.md](CHANGELOG.md).
|
|
41
40
|
|
|
@@ -66,7 +65,7 @@ sets the version in pyproject.toml, uv.lock and `oep_client.__version__` and tur
|
|
|
66
65
|
the tests and the build it commits, tags, makes the GitHub Release and publishes to PyPI (Trusted Publishing). Record changes
|
|
67
66
|
under Unreleased in CHANGELOG.md, (EN) and (JA).
|
|
68
67
|
|
|
69
|
-
A minimal check: [hardware quickstart](docs/hardware-quickstart.ja.md). See the shared [testing policy](docs/testing-policy.ja.md) and [guide for projects using OEP](docs/testing-consumers.ja.md).
|
|
68
|
+
A minimal check: [hardware quickstart](docs/hardware-quickstart.ja.md). See the shared [testing policy](docs/testing-policy.ja.md) and [guide for projects using OEP](docs/testing-consumers.ja.md). Equipment configuration: [hardware design](docs/hardware-configuration.ja.md) and [configuration examples](docs/hardware-schema.ja.md) (in Japanese).
|
|
70
69
|
|
|
71
70
|
## Modules (`oep_client`)
|
|
72
71
|
|
|
@@ -500,4 +499,3 @@ IP_MULTICAST_IF 127.0.0.1. A different `--unit-id` per job keeps parallel jobs a
|
|
|
500
499
|
name too). A container or VM answers only on its own network. tests/test_virtual_bench_announce.py does this with
|
|
501
500
|
`oep find`, `discovery.find_unit` and `oep://UNIT_ID?via=net` (both engines) - with in-process responders announcing a non-OEP
|
|
502
501
|
TCP service and a wrong TXT unit_id beside it, which the verify drops - skipped where multicast does not loop back.
|
|
503
|
-
|
|
@@ -2,11 +2,10 @@
|
|
|
2
2
|
|
|
3
3
|
[English](README.md)
|
|
4
4
|
|
|
5
|
-
Open Embedded Probe の host 側。v1(oep-spec の本体 `docs/oep-core.ja.md`、`docs/oep-transports.ja.md` とインターフェース `interfaces/*.ja.md
|
|
6
|
-
`generated/oep-v1/oep_v1_registry.py` をそのまま写した `oep_client.registry`
|
|
7
|
-
実験段階で、互換 API は約束しない。
|
|
5
|
+
Open Embedded Probe の host 側。v1(oep-spec の本体 `docs/oep-core.ja.md`、`docs/oep-transports.ja.md` とインターフェース `interfaces/*.ja.md`)を話す。番号は oep-spec の
|
|
6
|
+
`generated/oep-v1/oep_v1_registry.py` をそのまま写した `oep_client.registry` から取る。
|
|
8
7
|
|
|
9
|
-
**実装する仕様: `tests/vectors/SPEC_COMMIT` にある oep-spec の commit
|
|
8
|
+
**実装する仕様: `tests/vectors/SPEC_COMMIT` にある oep-spec の commit**(oep-spec versioning §2 / §6: 凍結の前は revision 1 だけでは
|
|
10
9
|
形が決まらないので、実装は自分が実装する仕様の commit を名乗る)。番号の表と `tests/vectors/` の共有ベクタはその commit から写したもの。
|
|
11
10
|
変更の履歴は [CHANGELOG.md](CHANGELOG.md) にある。
|
|
12
11
|
|
|
@@ -33,7 +32,7 @@ HEAD 以外の commit を選べる。commit とファイルの hash は `tests/v
|
|
|
33
32
|
pyproject.toml、uv.lock、`oep_client.__version__` を書き換え、CHANGELOG.md の Unreleased をその版にし、試験と build の後に commit と tag、
|
|
34
33
|
GitHub Release、PyPI(Trusted Publishing)へ出す。変更は CHANGELOG.md の Unreleased に (EN) / (JA) で書き足しておく。
|
|
35
34
|
|
|
36
|
-
最小構成の確認は [動作確認手順](docs/hardware-quickstart.ja.md)。共通の [テスト方針](docs/testing-policy.ja.md) と [OEP を使うプロジェクトのガイド](docs/testing-consumers.ja.md)
|
|
35
|
+
最小構成の確認は [動作確認手順](docs/hardware-quickstart.ja.md)。共通の [テスト方針](docs/testing-policy.ja.md) と [OEP を使うプロジェクトのガイド](docs/testing-consumers.ja.md) も見る。設備の設定は[構成設計](docs/hardware-configuration.ja.md)と[設定形式・雛形](docs/hardware-schema.ja.md)にある。
|
|
37
36
|
|
|
38
37
|
## モジュール(`oep_client`)
|
|
39
38
|
|
|
@@ -414,4 +413,3 @@ multicast の経路が無い host では `--announce-on 127.0.0.1` にし、問
|
|
|
414
413
|
tests/test_virtual_bench_announce.py がこれを `oep find`、`discovery.find_unit`、`oep://UNIT_ID?via=net`(両方の engine)で試す(同じ process の responder が、OEP でない TCP の
|
|
415
414
|
サービスと違う TXT の unit_id を並べて広告し、確かめでそれが外れることも見る)。multicast が
|
|
416
415
|
戻らない所では skip する。
|
|
417
|
-
|
|
@@ -4,11 +4,10 @@
|
|
|
4
4
|
|
|
5
5
|
The host side of Open Embedded Probe (OEP). It speaks the v1 protocol of
|
|
6
6
|
[oep-spec](https://github.com/Open-Embedded-Probe/oep-spec) (the core `docs/oep-core.ja.md`, `docs/oep-transports.ja.md`
|
|
7
|
-
and the interfaces `interfaces/*.ja.md`)
|
|
8
|
-
oep-spec's generated `generated/oep-v1/oep_v1_registry.py`.
|
|
9
|
-
no compatible API is promised.
|
|
7
|
+
and the interfaces `interfaces/*.ja.md`). The wire numbers come from `oep_client.registry`, a verbatim copy of
|
|
8
|
+
oep-spec's generated `generated/oep-v1/oep_v1_registry.py`.
|
|
10
9
|
|
|
11
|
-
**The spec this implements: the oep-spec commit in `tests/vectors/SPEC_COMMIT`** (
|
|
10
|
+
**The spec this implements: the oep-spec commit in `tests/vectors/SPEC_COMMIT`** (oep-spec versioning §2 / §6: before the
|
|
12
11
|
freeze, revision 1 alone does not fix the forms, so an implementation names the spec commit it implements). The registry
|
|
13
12
|
and the shared vectors in `tests/vectors/` are copied from that commit; the history is in [CHANGELOG.md](CHANGELOG.md).
|
|
14
13
|
|
|
@@ -39,7 +38,7 @@ sets the version in pyproject.toml, uv.lock and `oep_client.__version__` and tur
|
|
|
39
38
|
the tests and the build it commits, tags, makes the GitHub Release and publishes to PyPI (Trusted Publishing). Record changes
|
|
40
39
|
under Unreleased in CHANGELOG.md, (EN) and (JA).
|
|
41
40
|
|
|
42
|
-
A minimal check: [hardware quickstart](docs/hardware-quickstart.ja.md). See the shared [testing policy](docs/testing-policy.ja.md) and [guide for projects using OEP](docs/testing-consumers.ja.md).
|
|
41
|
+
A minimal check: [hardware quickstart](docs/hardware-quickstart.ja.md). See the shared [testing policy](docs/testing-policy.ja.md) and [guide for projects using OEP](docs/testing-consumers.ja.md). Equipment configuration: [hardware design](docs/hardware-configuration.ja.md) and [configuration examples](docs/hardware-schema.ja.md) (in Japanese).
|
|
43
42
|
|
|
44
43
|
## Modules (`oep_client`)
|
|
45
44
|
|
|
@@ -473,4 +472,3 @@ IP_MULTICAST_IF 127.0.0.1. A different `--unit-id` per job keeps parallel jobs a
|
|
|
473
472
|
name too). A container or VM answers only on its own network. tests/test_virtual_bench_announce.py does this with
|
|
474
473
|
`oep find`, `discovery.find_unit` and `oep://UNIT_ID?via=net` (both engines) - with in-process responders announcing a non-OEP
|
|
475
474
|
TCP service and a wrong TXT unit_id beside it, which the verify drops - skipped where multicast does not loop back.
|
|
476
|
-
|
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
|
|
3
3
|
| 文書 | 対象と状態 |
|
|
4
4
|
|---|---|
|
|
5
|
-
| [最小構成の動作確認](hardware-quickstart.ja.md) |
|
|
5
|
+
| [最小構成の動作確認](hardware-quickstart.ja.md) | validate/plan/仮想 smoke と `.env` の実行手順 |
|
|
6
6
|
| [SPECからの適合検査](conformance-checks.ja.md) | core / interfaceの公開検査器と実行範囲 |
|
|
7
|
-
| [lease・forceの大枠検査](session-smoke-conformance.ja.md) | 明示time/resource adapter
|
|
7
|
+
| [lease・forceの大枠検査](session-smoke-conformance.ja.md) | 明示time/resource adapterでleaseの期限・再送・所有者交代を確認 |
|
|
8
8
|
| [有限保持の通知出力](notification-output-sample.ja.md) | 限定raw fixtureで購読拒否・seq抜け・部分frame・応答優先を確認 |
|
|
9
9
|
| [Host TLVの読出し検査](host-tlv-conformance.ja.md) | 明示readerアダプタで未知tag・critical・重複・破損と長さ境界を確認 |
|
|
10
10
|
| [Host通知と期限](host-notification-conformance.ja.md) | 現SPECのrole振り分け、未知kindのseq、通知が続く時の応答待ち/pumpを確認 |
|
|
@@ -14,11 +14,11 @@
|
|
|
14
14
|
| [core発見処理の検査](discovery-conformance.ja.md) | list/fn 0 describeの任意cursor、labelと宣言の不変性を確認 |
|
|
15
15
|
| [資源番号の上限](allocator-conformance.ja.md) | 明示seedでu16上限、解放後の非再利用、再送と再起動を確認 |
|
|
16
16
|
| [通知seqと再購読](notification-sequence-conformance.ja.md) | 論理経路でseqの一周・drop・購読置換・再送を確認 |
|
|
17
|
-
| [raw USB検査](usb-conformance.ja.md) | bulk/HID
|
|
18
|
-
| [全体テスト方針](testing-policy.ja.md) | OEP
|
|
17
|
+
| [raw USB検査](usb-conformance.ja.md) | bulk/HIDの独立検査器と最小ソフトウェアモデル |
|
|
18
|
+
| [全体テスト方針](testing-policy.ja.md) | OEP と利用プロジェクトの保証対象と責任 |
|
|
19
19
|
| [利用プロジェクト向けガイド](testing-consumers.ja.md) | 任意の言語・target・framework で OEP を使う側のテスト手順 |
|
|
20
20
|
| [構成と配線の確定](hardware-configuration.ja.md) | 個体、探索、確認済み接続、役割、共有制御の設計 |
|
|
21
|
-
| [実機設定形式](hardware-schema.ja.md) | 公開のキーと判定、入力と確定 TOML、`.env`
|
|
22
|
-
| [
|
|
21
|
+
| [実機設定形式](hardware-schema.ja.md) | 公開のキーと判定、入力と確定 TOML、`.env` の雛形 |
|
|
22
|
+
| [Python 実機ハーネス](../tests/hw/README.ja.md) | 設定と手順 |
|
|
23
23
|
|
|
24
24
|
ここにある文書の保守窓口は oep-client-python です。保証と合否の所有者は各実装に分かれ、通信の規範は oep-spec に置きます。全体方針はプロジェクト共通で、Python のテストだけの説明ではありません。実設備の台帳は外部で管理し、runner へ明示設定で渡します。
|
|
@@ -18,7 +18,7 @@ privateベンチや隣接checkoutは探索しない。資源opの符号化はres
|
|
|
18
18
|
境界seed 0xFFFFFFFE/0xFFFFFFFFと時計はlogical fixtureの明示制御であり、実機opではない。
|
|
19
19
|
seedを設定するのはfresh/空のallocatorだけ。この検査で2^32−1回の実割当を行ったとは主張しない。
|
|
20
20
|
通常の容量不足と区別し、sample容量8に対して同時資源は最大2で試す。
|
|
21
|
-
|
|
21
|
+
予約だけで失敗した番号は欠番にしてよく、一般の作成失敗でnext_id不変は要求しない。
|
|
22
22
|
|
|
23
23
|
client checkoutのルートで実行する。
|
|
24
24
|
|
|
@@ -52,7 +52,7 @@ rate/samples/mode/triggerの拒否、query成功時の非適用を確認する
|
|
|
52
52
|
区画満杯のstate 5はconfigureをunavailable・cause 6で拒否し、積んだ区画とdataを消さない。
|
|
53
53
|
logic/analog双方を確認する。planありのstate 5でもqueryを許可する規則はSPEC §3.3と
|
|
54
54
|
`test_virtual_bench_capture_query.py`で確認する。
|
|
55
|
-
|
|
55
|
+
仮想ベンチの`Endpoint`のinterface回帰であり、独立core適合fixture(`core-v1`)の検査とは別。
|
|
56
56
|
|
|
57
57
|
```sh
|
|
58
58
|
uv run pytest -q tests/test_virtual_bench_capture_requests.py
|
|
@@ -98,8 +98,7 @@ logic/analogのone-shot完了、short stop、error、repeat満杯/解放、到
|
|
|
98
98
|
新start後までqueueに残る旧通知は元の世代を保ち、Hostが現在の世代以外を捨てることも確認する。
|
|
99
99
|
世代/時刻/停止理由の改変、通知欠落と不要なtriggerを故障注入して検出する。
|
|
100
100
|
stoppedのerrorはreason 3のときだけ照合し、それ以外で0を要求しない。
|
|
101
|
-
|
|
102
|
-
現在のcoreへ移行した全analog操作の適合は継続して整備する。
|
|
101
|
+
これはfixtureの通知動作の回帰。到達しないtrigger、全通知/streaming/並行性と全analog操作の適合は検査しない。
|
|
103
102
|
|
|
104
103
|
```sh
|
|
105
104
|
uv run pytest -q tests/test_virtual_bench_capture_notifications.py
|
|
@@ -114,7 +113,7 @@ forceでは現在のsampleを使い、まだ足りないpretrigger分だけ区
|
|
|
114
113
|
capture-groupは即時のtrackだけを束ねるので、groupの待機やforceはここで扱わない。
|
|
115
114
|
|
|
116
115
|
既存one-shot fixtureと同じく、成立後の将来sampleは即時に合成する。
|
|
117
|
-
これは物理的な待ち時間の証明ではない。自然な早期trigger、全modeのtrigger
|
|
116
|
+
これは物理的な待ち時間の証明ではない。自然な早期trigger、全modeのtriggerは検査しない。
|
|
118
117
|
|
|
119
118
|
```sh
|
|
120
119
|
uv run pytest -q tests/test_virtual_bench_capture_waiting.py
|
|
@@ -140,7 +139,7 @@ logicのedge/level、analogのcross_up/down(疎なroleも含む)、pretrigge
|
|
|
140
139
|
rawデータ・時刻・世代付き通知を照合する。
|
|
141
140
|
開始前のsampleをedge/crossingの比較に使わない。
|
|
142
141
|
one-shotは最後のsample時刻を待って区画を公開する。取得途中は区画を返さない。
|
|
143
|
-
[取得時間の検査](capture-metadata-conformance.ja.md#仮想captureの時間検査)を併用する。物理latency、全mode
|
|
142
|
+
[取得時間の検査](capture-metadata-conformance.ja.md#仮想captureの時間検査)を併用する。物理latency、全mode契約は検査しない。
|
|
144
143
|
|
|
145
144
|
```sh
|
|
146
145
|
uv run pytest -q tests/test_virtual_bench_capture_pretrigger.py
|
|
@@ -154,7 +153,7 @@ uv run pytest -q tests/test_virtual_bench_capture_pretrigger.py
|
|
|
154
153
|
queryの候補rate/samples/modeは適用されないことも確認する。plan無しはcause 6、
|
|
155
154
|
取得中の不正rate 0はmalformedで、現在の取得を変えない。
|
|
156
155
|
configureの取得中/結合中拒否は継続し、queryと同じ扱いにはしない。
|
|
157
|
-
|
|
156
|
+
仮想ベンチの`Endpoint`の検査であり、独立core適合fixtureの検査や全query契約の証明ではない。
|
|
158
157
|
|
|
159
158
|
```sh
|
|
160
159
|
uv run pytest -q tests/test_virtual_bench_capture_query.py
|
|
@@ -169,7 +168,7 @@ forceと既知波形の初回triggerで履歴を残し、repeatの最初の区
|
|
|
169
168
|
streamingの通し番号とerror時write_posは、捨てた開始前履歴を数えず実際の完了区画から計算する。
|
|
170
169
|
|
|
171
170
|
既知波形も経過済みsampleだけで条件成立を検出する。待機後の信号変化は下記の別試験で確認する。
|
|
172
|
-
物理latency、offset/skewを含む全modeの時間因果性、storage gap・全stream
|
|
171
|
+
物理latency、offset/skewを含む全modeの時間因果性、storage gap・全stream区画契約は検査しない。
|
|
173
172
|
|
|
174
173
|
```sh
|
|
175
174
|
uv run pytest -q tests/test_virtual_bench_capture_trigger_modes.py
|
|
@@ -96,7 +96,7 @@ TAR/data/bufferの段階へ失敗を注入し、読出しでは返せた値のpr
|
|
|
96
96
|
RDBUFF回収失敗では、まだ返せない語をtarget busから読んでいてもdoneに加えない。
|
|
97
97
|
writeのdoneは送れた語数であり、fixtureでtargetへの配送を落としても送信数を返す。
|
|
98
98
|
WAIT時のstore一回実行、block replay、失敗語/後続への不正アクセスも確認する。
|
|
99
|
-
最適化したpipeline方式、全ての遅延FAULT
|
|
99
|
+
最適化したpipeline方式、全ての遅延FAULTの方針は検査しない。
|
|
100
100
|
AP bank/SELECTの完全なdecode、sticky状態とABORT、ADIv6、SWD attachのTARGETSEL/tid、
|
|
101
101
|
packetのparity/turnaround/idle、電気的な再試行と時間、CPUの実行状態は別途必要。
|
|
102
102
|
全経路のframe容量、u32番地を越えるblockの扱い、production Hostとの統合も未完成である。
|
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
|
|
22
22
|
論理pin組はRVSWD (0,1)/(2,3)/(6,7)、SWIO (0,0xFFFF)/(2,0xFFFF)/(6,0xFFFF)、SWD (4,5)。channel_groupで明示する。scanは実装しない。method 0の論理成功だけを確認し、haltや電気的な速度選定を証明しない。resetの線の動作、idle_clock、targetselは未検査(`WireOptionsChecks`)。reset TLVはsampleのreset channel(8)で受理とraw tagの拒否、先頭コピーの使用(hold)だけを確かめる。
|
|
23
23
|
|
|
24
|
-
|
|
24
|
+
仮想コアは`request_tags` / `dispatch_request`の明示拡張入口で、拡張固有critical TLVを検査・実行へ渡す。入口が無い拡張は共通の処理を使う。session・header・cacheの判定は入口より先に行う。同一要求再送でTLV解析や実行を繰り返さない。
|
|
25
25
|
|
|
26
26
|
単体19件でmax_speed 0の受理、未知critical無視、既知noncritical拒否、raw tag喪失、後のtag優先、後のコピーの未検証、拒否時targetアクセス、console応答の余分なbyte、ARM console受理、方式競合無視、速度上限超過、再送再実行、connectionsのmetadata不正を検出する。採用条件/選択SPEC変更、所有中fixture再起動拒否、拡張入口とsession/cacheの優先順も確認する。
|
|
27
27
|
|
{oep_client_python-0.0.43 → oep_client_python-0.0.45}/docs/capture-group-geometry-conformance.ja.md
RENAMED
|
@@ -31,10 +31,10 @@ sample時刻の推定値は一般には実時間と完全には一致しない
|
|
|
31
31
|
これはmetadata例の生成器で、取得エンジンや大量のsample bufferを実装するmodelではない。
|
|
32
32
|
configure例はrate/capacity以外の通常の必須情報も持つが、全layout/scaleなどの検証は別checkerの担当。
|
|
33
33
|
|
|
34
|
-
単体62件は27例、28
|
|
35
|
-
|
|
34
|
+
単体62件は27例、28の不正観測/前提(誤った形のstart/statusを含む)、報告不確かさの非利用、
|
|
35
|
+
仮想ベンチの`Endpoint`の6構成を含む。Endpoint構成はlogic/analogのbind順と3組の範囲内rate。
|
|
36
36
|
実際の応答bodyをwireから取り、組のstart_nsとADCの既知の変換遅れ(5000ns)から起点を求めて照合する。
|
|
37
|
-
|
|
37
|
+
`Endpoint`/Hostのcoreやop番号の適合を証明する検査ではない。
|
|
38
38
|
|
|
39
39
|
`full_conformance`はfalse。wire拒否/再送/全世代進行、bindの実現可能性、全configure/data構造、
|
|
40
40
|
repeat/streaming/通知、stopの短い区画、物理clock/skew/精度は未検査。
|
{oep_client_python-0.0.43 → oep_client_python-0.0.45}/docs/capture-metadata-conformance.ja.md
RENAMED
|
@@ -15,7 +15,6 @@ describeの成功だけで取得操作やデータ寿命の適合を証明しな
|
|
|
15
15
|
- analog: frontendの9 byte固定形(frontend、range_min_mv、range_max_mv)を1つ以上、番号ごとに1行。
|
|
16
16
|
- capture-group: tracksの要素数n≥1とu16列の形。
|
|
17
17
|
- config: items(0x41)の存在、1つ以上、重複なし、項目番号0を含まない(probe.config §4)。
|
|
18
|
-
旧版のslots_max/wifi_maxは現仕様に無いため検査しない。
|
|
19
18
|
|
|
20
19
|
storage max_bytesとsave/erase提供時の存在は既存SelectedMetadataChecksで別に確認する。
|
|
21
20
|
itemsの未知tagを独自拡張でないと推測して禁止しない。
|
|
@@ -23,7 +23,5 @@ readはu64位置を返し、既に解放した位置ならgap、未取得の未
|
|
|
23
23
|
保持するのは最大2区画で、次serialとの差はu32の1/4未満である。任意の保持容量や保持幅全域の証明にはしない。
|
|
24
24
|
この共通の区画手順を他のcapture拡張へ移す際は、明示adapter・独立のsample/packing oracleを用意する。
|
|
25
25
|
単体34件:正常1、観測故障22、実model/Core故障7、制御不足2、本文guard2。
|
|
26
|
-
|
|
27
|
-
初期fixtureのconstructor、analog feed入口、frame容量を修正した。現在のモデル本体/Core/productionは変更していない。
|
|
28
|
-
mark保持、streaming/groupとの通知交錯、任意capacity、物理sampling、production Host統合は残る。
|
|
26
|
+
mark保持、streaming/groupとの通知交錯、任意capacity、物理sampling、production Hostとの統合は検査しない。
|
|
29
27
|
full_conformance=false。
|
|
@@ -15,7 +15,7 @@ fast 2種類それぞれで20ケース、計40構成を検査する。
|
|
|
15
15
|
- startの再送は取得中、stopの再送は部分区画を完成させた後で行う。
|
|
16
16
|
同じ要求の応答と状態が一致し、世代やデータを変えないことを確認する。
|
|
17
17
|
- queryは取得中と片方が完了した状態で両trackへ送る。
|
|
18
|
-
|
|
18
|
+
probeが候補として返した537Hz/5 sampleを答え、元の設定・timeline・データを保持することを確認する。
|
|
19
19
|
- endとforceによるsession交代は取得中、lease期限は取得中と取得完了後の保持データを持つ状態で確認する。
|
|
20
20
|
bind、plan、購読、取得データと区画を解放し、pinをidleへ戻す。世代は保持する。
|
|
21
21
|
- 世代の使い切り: groupの世代が0xFFFFFFFFならgroup startを、trackの世代が0xFFFFFFFFなら
|
|
@@ -16,7 +16,7 @@ getの応答は`more generation count 項目 [TLV]`、stateは`storage_state sav
|
|
|
16
16
|
- IDLE:使用中のchannelへのidleは解放時に効き、空きのchannelへのidleはただちに効く。
|
|
17
17
|
disableしたchannelは駆動せず、planはunavailable cause 5で断る。disableのunsetでただちに空き状態へ戻り、使えるようになる。
|
|
18
18
|
- ATOMIC:重複キー(bit7違いを含む)、idle/disable/labelの長さ違い、項目番号0、countと項目の不一致はmalformed。
|
|
19
|
-
|
|
19
|
+
宣言しない項目(0x01、0xFFなど)は受け取ったtagで、範囲外channel・未知のidle modeは項目tagで、未知criticalの要求TLVはそのtagでunsupported。
|
|
20
20
|
unsetの重複キー/項目番号0/切れた行はmalformed、宣言しない項目はunsupported。
|
|
21
21
|
idleとdisableの併存はcause 5、使用中channelのdisableはcause 1。
|
|
22
22
|
channel TLVはcore §4.3で「分かる範囲で付ける」任意のため、付けた場合にぶつかったchannelを指すことだけを照合する。拒否は設定・generation・pinを変えない。
|
|
@@ -39,4 +39,4 @@ generationの折返し、無いキーのunsetでの加算、容量超過のcause
|
|
|
39
39
|
旧config consumer/Endpointの自動attach・bind形は、この現仕様の適合根拠には使わない。
|
|
40
40
|
get paging/数値キー順は[別の部分検査](config-paging-conformance.ja.md)で確認する。
|
|
41
41
|
同内容saveの書き込み抑止と保存容量境界は[別の部分検査](config-storage-conformance.ja.md)で確認する。
|
|
42
|
-
channelごとのpull/出力の非対応、firmware自身のchannel、物理保存とproduction
|
|
42
|
+
channelごとのpull/出力の非対応、firmware自身のchannel、物理保存とproductionのHostは検査しない。full_conformance=false。
|
{oep_client_python-0.0.43 → oep_client_python-0.0.45}/docs/config-execution-conformance.ja.md
RENAMED
|
@@ -30,4 +30,4 @@ lease停止漏れ/早い更新/待機中停止・更新/送信後更新漏れ、
|
|
|
30
30
|
誤った実行時間、pin変更、同内容/拒否時/再送の書込みを検出する。
|
|
31
31
|
set/unsetは要求の先頭のcount(u8)から項目/行を読み、固定長に頼らない。
|
|
32
32
|
Host実時計のtimeout、物理flash、保存後のqueue処理、実経路の同時実行、応答待ち中のforce/open競合、
|
|
33
|
-
eraseの実行時間とproduction
|
|
33
|
+
eraseの実行時間とproductionのHostは検査しない。full_conformance=false。
|
{oep_client_python-0.0.43 → oep_client_python-0.0.45}/docs/config-fallback-conformance.ja.md
RENAMED
|
@@ -10,7 +10,7 @@ getの項目とgeneration 1、stateのstorage_state/saved_generation 0/reason、
|
|
|
10
10
|
ch1/ch6へのplanの可否(disableならunavailable cause 5)を照合する。
|
|
11
11
|
|
|
12
12
|
- FORMAT:容器が壊れて境界を確かめられない。何も適用せずstate 2/reason 1。保存のdisable ch6も効かない。
|
|
13
|
-
- UNKNOWN
|
|
13
|
+
- UNKNOWN:未知の項目。それを除き適用し、state 3/reason 2。
|
|
14
14
|
- CHANNEL:channels以上のlabel。MODE:未知のidle mode。LABEL:textの無いlabel。いずれも除いて適用し、3/2。
|
|
15
15
|
- CONFLICT:同じchannelにidleとdisable。disableを優先してidleを適用せず、3/2。
|
|
16
16
|
- DUPLICATE:同じキーのlabelが2つ。そのキーを適用せず、3/2。
|
|
@@ -30,4 +30,4 @@ idleの優先、重複キーの片方の採用、容量不足時の順序、起
|
|
|
30
30
|
set/save/erase後の誤った保存状態、idleの未適用を検出する。
|
|
31
31
|
get pagingは[別の部分検査](config-paging-conformance.ja.md)で確認する。
|
|
32
32
|
同内容saveの書込み抑止は[別の部分検査](config-storage-conformance.ja.md)で確認する。
|
|
33
|
-
erase中の電源断で残る完全性を確認できない保存、保存中排他/電源断、物理保存とproduction
|
|
33
|
+
erase中の電源断で残る完全性を確認できない保存、保存中排他/電源断、物理保存とproductionのHostは検査しない。full_conformance=false。
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
ConfigPagingModelとChecksへSPEC registryを明示し、InterfaceChecksの後に
|
|
4
4
|
`ConfigPagingChecks(checks, SampleConfigPagingAdapter(model)).run()`を実行する。
|
|
5
5
|
privateベンチや隣接SPECを自動探索しない。max_frame 64/128/256の3つの明示profileを使う。
|
|
6
|
-
fn 0のchannelsは512、GPIO
|
|
6
|
+
fn 0のchannelsは512、GPIOの駆動候補は0〜7。大きい番号の項目を確認するための論理fixtureであり、512本の物理pinを模擬する意味ではない。
|
|
7
7
|
|
|
8
8
|
getの応答は`more(u8) generation(u32) count(u8) count×項目 [TLV]`。項目はcountで数えて読み、残りは応答の末尾TLVとして別に読む。
|
|
9
9
|
|
|
@@ -24,8 +24,8 @@ generation変更時は古い項目を捨ててfirst 0へ戻す。more 1なのに
|
|
|
24
24
|
byte辞書順/byte offset、項目抜け/重複、誤ったmore/generation、途中で切った項目、bit7残留、frame超過、
|
|
25
25
|
countと項目数の不一致、変更ごとに進まないgeneration、読取りの設定/pin/lease/cache変更と、
|
|
26
26
|
Hostが再読込みせず異なる版を混ぜる故障を検出する。応答の未知の非critical末尾TLVは項目と混ぜずに受け入れる。
|
|
27
|
-
|
|
27
|
+
ページの上限は、通知したmax_frameから応答headerを差し引いた長さ。
|
|
28
28
|
|
|
29
|
-
任意channelカタログ、真の並行要求/継続変更、production Host
|
|
29
|
+
任意channelカタログ、真の並行要求/継続変更、production Hostとの連携は検査しない。
|
|
30
30
|
saveの書込み抑止は[別の部分検査](config-storage-conformance.ja.md)で確認する。
|
|
31
|
-
save
|
|
31
|
+
saveの排他/電源断、物理設備は検査しない。full_conformance=false。
|
{oep_client_python-0.0.43 → oep_client_python-0.0.45}/docs/config-power-loss-conformance.ja.md
RENAMED
|
@@ -31,9 +31,9 @@ JSON/CRCをcheckerのoracleに使わず、wireで設定したold/newの全項目
|
|
|
31
31
|
Core内部観測とbyte画像は仮想fixture用の補助制御であり、Probeへ新たな読取りAPIを要求しない。
|
|
32
32
|
|
|
33
33
|
単体33件:正常1、共通宣言1、wire故障4、状態/保存故障19、制御不足8。
|
|
34
|
-
active
|
|
35
|
-
起動時generation、同じboot
|
|
36
|
-
|
|
34
|
+
active領域上書き/消去、誤った古い世代の選択、commit/CRC破損後の成功、項目の混在、idle/disableの復帰漏れ、live planの残留、
|
|
35
|
+
起動時generation、同じbootの再使用、早い応答、復帰の書換え、前の保持者/履歴/cache、途中再開、volatileな未来設定への誤った復帰を検出する。
|
|
36
|
+
モデルはactiveでない側の領域へ書き、active領域の保存を失わない。
|
|
37
37
|
|
|
38
38
|
保存中の応答抑止/実行時間/lease、erase中の電源断(storage_state 2)、実flashのerase/program tear・摩耗・物理永続性、
|
|
39
|
-
任意破損/内部counter wrap、production
|
|
39
|
+
任意破損/内部counter wrap、production実装は検査しない。full_conformance=false。
|
|
@@ -25,5 +25,5 @@ max_bytesが数えるのは項目の見出し込みのbyteだけなので、63/6
|
|
|
25
25
|
毎回書込み/書込み欠落/変更の取りこぼし、generationや挿入順だけの比較、set時の自動保存、
|
|
26
26
|
erase漏れ/現在設定消去/state残留、容量境界/cause/拒否時の書込み、pin変更、不正保存、boot時の書換え/消失を検出する。
|
|
27
27
|
回数のassertは明示backendの観測条件であり、保存の内部形式や物理保存方式をoracleとして用いない。
|
|
28
|
-
実flashの摩耗、保存中排他/電源断、起動時の項目ごとの検証、production Host
|
|
28
|
+
実flashの摩耗、保存中排他/電源断、起動時の項目ごとの検証、production Hostとの統合は検査しない。
|
|
29
29
|
full_conformance=false。
|