test_registers_and_capabilities¶
Functions¶
Module Contents¶
- test_registers_and_capabilities.test_register_contract_uses_dau_magic_and_aligned_offsets()¶
The handle aperture the composed scan shell decodes. Its offsets are the generator’s, and they sit in free window space: above the capability block, below the lane block, overlapping nothing the base register map defines. An aperture laid over the static pipeline block would decode correctly (a shell is one personality or the other) but would leave every address in it meaning two things, which is a thing to remember rather than a property to rely on.
- test_registers_and_capabilities.test_handle_table_aperture_matches_the_generator_that_emits_it()¶
The register contract lives here, but the ADDRESSES are decoded by what dau-build emits: a disagreement is not a crash, it is a host writing a length into a generation. Pin them against the generator’s layout.
Imported outright rather than skipped around: a guard that skips when the other side of the contract is missing reports the same green as one that checked, which is how this ran for exactly nobody while the aperture was being placed. The develop extra installs the dau-build this is written against, so a missing generator is a broken environment, not a reason to pass.
- test_registers_and_capabilities.test_register_block_snapshot_reads_identity_status_and_counters_as_u32_words()¶
- test_registers_and_capabilities.test_register_block_snapshot_models_reset_write_side_effects_only()¶
- test_registers_and_capabilities.test_stream_job_register_contract_names_host_trigger_status_and_result_addresses()¶
- test_registers_and_capabilities.test_packaged_identity_register_hdl_exposes_reset_write_pulse_ports()¶
- test_registers_and_capabilities.test_packaged_identity_register_hdl_advertises_the_current_register_map()¶
The SV default and decode stay pinned to the Python contract: the 0.2 bump adds the composed-capability words at 0x00c0..0x00c8.
- test_registers_and_capabilities.test_device_capabilities_report_supported_operations_and_dma_constraints()¶
- test_registers_and_capabilities.test_device_capabilities_keep_host_computed_operators_apart_from_hardware()¶
AVERAGE is a protocol-level host divide over SUM/COUNT results — it is advertised in host_operators, never as a hardware operator.
- test_registers_and_capabilities.test_the_addresses_of_the_deleted_registers_are_unmapped() None¶
0x0010 and 0x0024 carried SHELL_VERSION and DMA_CONSTRAINTS, which no generator ever stamped, so every host read returned zero. A register nothing writes is not a capability. They are gone from the offsets, and the identity block falls through to all-ones there – which the driver already reads as ‘not advertised’ rather than as a value.
- test_registers_and_capabilities.test_each_word_group_arrives_no_later_than_the_current_map() None¶
The gates a reader checks a resident shell against: capability words before job capacity, and neither newer than the map this package writes.