Skip to content

fix(adrv937x): align DT with Kuiper reference (capture still deferred)

2dbfe69
Select commit
Loading
Failed to load commit list.
Sign in for the full log view
Merged

hw: systemd exporter service + driver-probe-error dmesg check #57

fix(adrv937x): align DT with Kuiper reference (capture still deferred)
2dbfe69
Select commit
Loading
Failed to load commit list.
GitHub Actions / Tests (Kuiper64) succeeded Apr 22, 2026 in 1s

601 passed, 0 failed and 24 skipped

Tests passed successfully

✅ junit-kuiper64.xml

625 tests were completed in 2s with 601 passed, 0 failed and 24 skipped.

Test suite Passed Failed Skipped Time
pytest 601✅ 24⚪ 2s

✅ pytest

⚪ test.test_mcp_server
test.devices.test_ad9084_vpk180
  ✅ test_set_jesd204_mode_fills_framing_from_table
  ✅ test_generate_dts_emits_expected_nodes
  ✅ test_board_model_carries_versal_fpga_config
  ✅ test_ad9084_adc_dac_sub_models_hold_independent_state
  ✅ test_ad9081_and_ad9084_share_jesd_label_convention
test.devices.test_hmc7044
  ✅ test_render_dt_emits_header_reg_flags_and_aliased_props
  ✅ test_optional_props_omitted_when_none
  ✅ test_channels_render_as_subnodes_ordered_by_key
  ✅ test_clkin0_ref_emits_coupled_clocks_and_clock_names
  ✅ test_raw_channels_replaces_subnodes
  ✅ test_component_model_carries_rendered_string
  ✅ test_board_model_renderer_uses_rendered_string
  ✅ test_clk_out_exposes_14_handles_with_named_aliases
test.devices.test_system_ad9081_dts_parity
  ✅ test_system_ad9081_property_matches_xsa_reference[ad9081:clocks]
  ✅ test_system_ad9081_property_matches_xsa_reference[ad9081:clock-names]
  ✅ test_system_ad9081_property_matches_xsa_reference[tx-dacs:adi,dac-frequency-hz]
  ⚪ test_system_ad9081_property_matches_xsa_reference[tx-dacs:adi,link-mode]
  ⚪ test_system_ad9081_property_matches_xsa_reference[tx-dacs:adi,converters-per-device]
  ⚪ test_system_ad9081_property_matches_xsa_reference[tx-dacs:adi,lanes-per-device]
  ⚪ test_system_ad9081_property_matches_xsa_reference[tx-dacs:adi,octets-per-frame]
  ⚪ test_system_ad9081_property_matches_xsa_reference[tx-dacs:adi,frames-per-multiframe]
  ⚪ test_system_ad9081_property_matches_xsa_reference[tx-dacs:adi,bits-per-sample]
  ⚪ test_system_ad9081_property_matches_xsa_reference[tx-dacs:adi,samples-per-converter-per-frame]
  ✅ test_system_ad9081_property_matches_xsa_reference[rx-adcs:adi,adc-frequency-hz]
  ⚪ test_system_ad9081_property_matches_xsa_reference[rx-adcs:adi,link-mode]
  ⚪ test_system_ad9081_property_matches_xsa_reference[rx-adcs:adi,converters-per-device]
  ⚪ test_system_ad9081_property_matches_xsa_reference[rx-adcs:adi,lanes-per-device]
  ⚪ test_system_ad9081_property_matches_xsa_reference[rx-adcs:adi,octets-per-frame]
  ⚪ test_system_ad9081_property_matches_xsa_reference[rx-adcs:adi,frames-per-multiframe]
  ✅ test_system_ad9081_property_matches_xsa_reference[channel@0:adi,divider]
  ✅ test_system_ad9081_property_matches_xsa_reference[channel@2:adi,divider]
  ✅ test_system_ad9081_property_matches_xsa_reference[channel@3:adi,divider]
  ✅ test_system_ad9081_property_matches_xsa_reference[channel@6:adi,divider]
  ✅ test_system_ad9081_property_matches_xsa_reference[channel@8:adi,divider]
  ✅ test_system_ad9081_property_matches_xsa_reference[channel@10:adi,divider]
  ✅ test_system_ad9081_property_matches_xsa_reference[channel@12:adi,divider]
  ✅ test_system_ad9081_property_matches_xsa_reference[channel@13:adi,divider]
  ✅ test_system_ad9081_full_kernel_critical_parity
test.devices.test_system_ad9081_zcu102
  ✅ test_generate_dts_emits_expected_nodes
  ✅ test_ad9081_node_wires_dev_clk_to_hmc7044
  ✅ test_board_model_structure
  ✅ test_named_clock_aliases_resolve_to_clk_out
  ✅ test_connect_spi_determines_component_bus
test.devices.test_system_adrv9371_zc706_dts_parity
  ✅ test_adrv9371_system_property_matches_xsa_reference[ad9371:#clock-cells]
  ✅ test_adrv9371_system_property_matches_xsa_reference[ad9371:#jesd204-cells]
  ✅ test_adrv9371_system_property_matches_xsa_reference[ad9371:clock-output-names]
  ✅ test_adrv9371_system_property_matches_xsa_reference[ad9371:compatible]
  ✅ test_adrv9371_system_property_matches_xsa_reference[ad9371:jesd204-top-device]
  ✅ test_adrv9371_system_property_matches_xsa_reference[ad9371:reg]
  ✅ test_adrv9371_system_property_matches_xsa_reference[ad9371:reset-gpios]
  ✅ test_adrv9371_system_property_matches_xsa_reference[ad9371:spi-max-frequency]
  ✅ test_adrv9371_system_property_matches_xsa_reference[ad9371:sysref-req-gpios]
  ✅ test_adrv9371_system_property_matches_xsa_reference[ad9528:#address-cells]
  ✅ test_adrv9371_system_property_matches_xsa_reference[ad9528:#clock-cells]
  ✅ test_adrv9371_system_property_matches_xsa_reference[ad9528:#size-cells]
  ✅ test_adrv9371_system_property_matches_xsa_reference[ad9528:adi,pll1-charge-pump-current-nA]
  ✅ test_adrv9371_system_property_matches_xsa_reference[ad9528:adi,pll1-feedback-div]
  ✅ test_adrv9371_system_property_matches_xsa_reference[ad9528:adi,pll2-charge-pump-current-nA]
  ✅ test_adrv9371_system_property_matches_xsa_reference[ad9528:adi,pll2-n2-div]
  ✅ test_adrv9371_system_property_matches_xsa_reference[ad9528:adi,pll2-r1-div]
  ✅ test_adrv9371_system_property_matches_xsa_reference[ad9528:adi,pll2-vco-div-m1]
  ✅ test_adrv9371_system_property_matches_xsa_reference[ad9528:adi,refa-r-div]
  ✅ test_adrv9371_system_property_matches_xsa_reference[ad9528:adi,status-mon-pin0-function-select]
  ✅ test_adrv9371_system_property_matches_xsa_reference[ad9528:adi,status-mon-pin1-function-select]
  ✅ test_adrv9371_system_property_matches_xsa_reference[ad9528:adi,sysref-k-div]
  ✅ test_adrv9371_system_property_matches_xsa_reference[ad9528:adi,sysref-nshot-mode]
  ✅ test_adrv9371_system_property_matches_xsa_reference[ad9528:adi,sysref-pattern-mode]
  ✅ test_adrv9371_system_property_matches_xsa_reference[ad9528:adi,sysref-request-trigger-mode]
  ✅ test_adrv9371_system_property_matches_xsa_reference[ad9528:adi,sysref-src]
  ✅ test_adrv9371_system_property_matches_xsa_reference[ad9528:adi,vcxo-freq]
  ✅ test_adrv9371_system_property_matches_xsa_reference[ad9528:clock-output-names]
  ✅ test_adrv9371_system_property_matches_xsa_reference[ad9528:compatible]
  ✅ test_adrv9371_system_property_matches_xsa_reference[ad9528:reg]
  ✅ test_adrv9371_system_property_matches_xsa_reference[ad9528:spi-max-frequency]
  ⚪ test_adrv9371_system_known_gaps[ad9371:clocks-System-API path doesn't yet emit the AD9371 dev_clk/fmc_clk references to ad9528 channels.  Targets the System-API XCVR/TPL-core/clkgen overlay gap noted in ``test/hw/test_adrv9371_zc706_hw.py``.]
  ⚪ test_adrv9371_system_known_gaps[ad9371:clock-names-Paired with ``ad9371:clocks`` above.]
  ⚪ test_adrv9371_system_known_gaps[ad9371:jesd204-inputs-System-API flow doesn't attach the AD9371 node to the AXI JESD204 RX/TX xcvr nodes yet.]
  ⚪ test_adrv9371_system_known_gaps[ad9371:jesd204-link-ids-Paired with ``ad9371:jesd204-inputs`` above.]
test.devices.test_system_adrv937x_zc706
  ✅ test_generate_dts_emits_expected_nodes
  ✅ test_board_model_has_expected_components
  ✅ test_zc706_platform_constants
  ✅ test_connect_spi_determines_component_bus
test.test_adi_binding_lib
  ✅ test_parse_yaml_and_txt_binding_records
  ✅ test_discover_and_collect_bindings
  ✅ test_supported_compatibles_and_prefixes_and_audit
test.test_cli_xsa
  ✅ test_xsa2dt_passes_profile_to_pipeline
  ✅ test_xsa_profiles_lists_builtin_profiles
  ✅ test_xsa_profile_show_prints_profile_defaults
  ✅ test_xsa_profile_show_handles_unknown_profile
  ✅ test_xsa2dt_passes_reference_dts_to_pipeline
  ✅ test_xsa2dt_passes_strict_parity_to_pipeline
  ✅ test_xsa2dt_warns_when_map_json_is_invalid
  ✅ test_xsa2dt_warns_when_map_json_root_is_not_object
  ✅ test_xsa2dt_handles_map_without_coverage_block
  ✅ test_xsa2dt_normalizes_non_list_gap_fields
  ✅ test_xsa2dt_normalizes_non_dict_coverage_field
  ✅ test_xsa2dt_warns_when_parity_artifacts_missing
  ✅ test_xsa2dt_warns_when_parity_map_key_is_missing
  ✅ test_xsa2dt_warns_when_parity_coverage_key_is_missing
  ✅ test_xsa2dt_warns_missing_coverage_key_in_strict_mode
  ✅ test_xsa2dt_warns_missing_coverage_key_with_strict_and_map_present
  ✅ test_xsa2dt_does_not_warn_missing_coverage_without_reference_dts
  ✅ test_xsa2dt_warns_missing_parity_artifacts_in_strict_mode
  ✅ test_xsa2dt_does_not_process_parity_artifacts_without_parity_mode
  ✅ test_xsa2dt_does_not_parse_map_json_without_parity_mode
  ✅ test_xsa2dt_does_not_validate_parity_paths_without_parity_mode
  ✅ test_xsa2dt_non_parity_mode_still_prints_artifact_paths
  ✅ test_xsa2dt_does_not_check_map_root_type_without_parity_mode
  ✅ test_xsa2dt_does_not_warn_missing_map_when_non_parity_and_coverage_exists
  ✅ test_xsa2dt_warns_when_optional_parity_artifacts_not_pathlike
  ✅ test_xsa2dt_warns_non_path_parity_artifacts_in_strict_mode
  ✅ test_xsa2dt_warns_when_optional_parity_artifact_paths_are_empty
  ✅ test_xsa2dt_warns_when_optional_parity_artifact_paths_are_null
  ✅ test_xsa2dt_warns_when_optional_parity_artifact_path_is_invalid
  ✅ test_xsa2dt_fails_when_pipeline_result_missing_required_artifacts
  ✅ test_xsa2dt_fails_when_pipeline_result_is_not_a_dict
  ✅ test_xsa2dt_fails_when_required_artifact_value_is_empty
  ✅ test_xsa2dt_fails_when_required_artifact_value_is_not_pathlike
  ✅ test_xsa2dt_fails_when_required_artifact_value_is_invalid_pathlike
  ✅ test_xsa2dt_prints_error_when_strict_parity_fails
  ✅ test_xsa2dt_fails_when_config_json_is_invalid
  ✅ test_xsa2dt_fails_when_pipeline_raises_config_error
  ✅ test_xsa2dt_fails_when_pipeline_raises_parse_error
  ✅ test_xsa2dt_fails_when_pipeline_raises_sdtgen_not_found
  ✅ test_xsa2dt_fails_when_pipeline_raises_sdtgen_error
  ✅ test_xsa2dt_fails_when_pipeline_raises_unexpected_exception
test.test_d2_diagram_backgrounds
  ⚪ test_all_diagram_svgs_have_transparent_background
  ⚪ test_dark_svgs_have_no_opaque_white_fills
  ⚪ test_light_and_dark_variants_exist
test.test_dt
  ✅ test_dt_local_file_import
  ⚪ test_dt_remote_sysfs
  ⚪ test_dt_remote_sd
test.test_renderer.TestSPIBusGrouping
  ✅ test_single_component_wrapped_in_spi_bus
  ✅ test_two_components_same_bus_grouped
  ✅ test_two_buses_produce_two_blocks
test.test_renderer.TestJesdLinkRendering
  ✅ test_rx_link_renders_all_nodes
  ✅ test_tx_link_renders_to_tx_category
  ✅ test_dma_overlay_rendered
  ✅ test_dma_skipped_when_none
  ✅ test_empty_configs_skipped
test.test_renderer.TestExtraNodes
  ✅ test_extra_nodes_appended
  ✅ test_empty_extra_nodes
test.test_renderer.TestDmaClocks
  ✅ test_dma_clocks_included
  ✅ test_no_dma_clocks_when_none
test.test_renderer.TestSerialization
  ✅ test_round_trip_with_fpga_config
test.utils.parsers.test_dependency_parser.TestDTDependencyParser
  ✅ test_create_parser
  ✅ test_parse_simple_file
  ✅ test_parse_file_not_found
  ✅ test_parse_with_includes
  ✅ test_parse_nested_includes
  ✅ test_resolve_include_path_found
  ✅ test_resolve_include_path_not_found
  ✅ test_missing_dependencies_tracked
  ✅ test_missing_dependency_details
  ✅ test_detect_circular_dependencies
  ✅ test_get_resolution_order
  ✅ test_render_tree_basic
  ✅ test_render_tree_with_includes
  ✅ test_render_tree_with_missing
  ✅ test_render_tree_hide_missing
  ✅ test_render_tree_max_depth
  ✅ test_export_dot_basic
  ✅ test_export_dot_with_edges
  ✅ test_export_dot_with_missing
  ✅ test_export_dot_hide_missing
  ✅ test_export_json_basic
  ✅ test_export_json_structure
  ✅ test_export_json_serializable
  ✅ test_parse_multiple_times
  ✅ test_visited_files_tracking
  ✅ test_statistics_accuracy
  ✅ test_custom_search_paths
  ✅ test_no_tree_before_parse
  ✅ test_render_tree_no_parse
  ✅ test_export_dot_no_parse
  ✅ test_export_json_no_parse
test.utils.parsers.test_dependency_tree.TestDependencyNode
  ✅ test_create_node
  ✅ test_create_node_default_path
  ✅ test_add_dependency
  ✅ test_add_child
  ✅ test_add_multiple_children
  ✅ test_get_all_dependencies
  ✅ test_get_dependencies_by_type
  ✅ test_node_string_representation
test.utils.parsers.test_dependency_tree.TestDependencyTree
  ✅ test_create_tree
  ✅ test_add_node
  ✅ test_add_node_without_parent
  ✅ test_add_duplicate_node
  ✅ test_get_node
  ✅ test_get_nonexistent_node
  ✅ test_add_missing_dependency
  ✅ test_detect_cycles_no_cycle
  ✅ test_detect_cycles_simple_cycle
  ✅ test_get_resolution_order_simple
  ✅ test_get_resolution_order_complex
  ✅ test_get_max_depth
  ✅ test_get_statistics
  ✅ test_traverse_dfs
  ✅ test_traverse_bfs
test.utils.parsers.test_dependency_types.TestDependencyType
  ✅ test_dependency_types_exist
  ✅ test_dependency_type_values
test.utils.parsers.test_dependency_types.TestDependency
  ✅ test_create_basic_dependency
  ✅ test_create_dependency_with_line_number
  ✅ test_dependency_with_metadata
  ✅ test_dependency_string_representation
  ✅ test_dependency_string_unresolved
  ✅ test_dependency_optional_flag
  ✅ test_dependency_to_dict
test.utils.parsers.test_dependency_types.TestMissingDependency
  ✅ test_create_missing_dependency
  ✅ test_missing_dependency_with_line
  ✅ test_missing_dependency_with_type
  ✅ test_missing_dependency_with_search_paths
  ✅ test_missing_dependency_string_representation
  ✅ test_missing_dependency_to_dict
test.utils.parsers.test_dependency_types.TestDependencyFormat
  ✅ test_format_types_exist
  ✅ test_format_values
test.utils.parsers.test_dts_parser.TestIncludeStatement
  ✅ test_create_include_statement
  ✅ test_include_statement_repr
test.utils.parsers.test_dts_parser.TestDTSParser
  ✅ test_parse_system_include
  ✅ test_parse_local_include
  ✅ test_parse_legacy_include
  ✅ test_parse_multiple_includes
  ✅ test_parse_with_whitespace
  ✅ test_parse_skip_comments
  ✅ test_parse_line_numbers
  ✅ test_parse_file_simple
  ✅ test_parse_file_with_includes
  ✅ test_parse_file_not_found
  ✅ test_parse_nested_includes
  ✅ test_extract_includes_as_dependencies
  ✅ test_dependency_has_line_numbers
  ✅ test_dependency_has_metadata
  ✅ test_is_system_include
  ✅ test_normalize_path
  ✅ test_parse_empty_file
  ✅ test_parse_no_includes
  ✅ test_parse_includes_in_nodes
  ✅ test_parse_mixed_quote_styles
  ✅ test_circular_dependencies_files_exist
  ✅ test_parse_with_missing_deps_file
test.xsa.test_board_configs.TestJesdLinkParams
  ✅ test_defaults
  ✅ test_from_dict_with_all_keys
  ✅ test_from_dict_uses_defaults_for_missing_keys
  ✅ test_from_dict_coerces_strings
test.xsa.test_board_configs.TestJesdConfig
  ✅ test_from_dict
  ✅ test_from_empty_dict
test.xsa.test_board_configs.TestClockConfig
  ✅ test_from_dict_ignores_unknown_keys
test.xsa.test_board_configs.TestFMCDAQ2BoardConfig
  ✅ test_defaults_match_node_builder
  ✅ test_from_dict_partial_override
  ✅ test_from_dict_ignores_unknown_keys
  ✅ test_negative_chip_select_raises
  ✅ test_empty_spi_bus_raises
  ✅ test_bool_not_accepted_as_int
test.xsa.test_board_configs.TestAD9084BoardConfig
  ✅ test_defaults
  ✅ test_from_dict_with_vcu118_overrides
test.xsa.test_board_configs.TestAD9172BoardConfig
  ✅ test_defaults_match_node_builder
test.xsa.test_board_configs.TestPipelineConfig
  ✅ test_from_dict_auto_detects_fmcdaq2
  ✅ test_from_dict_auto_detects_ad9084
  ✅ test_from_dict_with_no_board_section
  ✅ test_from_dict_preserves_extra_keys
  ✅ test_from_dict_preserves_fpga_solver_output
  ✅ test_round_trip_ad9081_fixture
test.xsa.test_board_configs
  ✅ test_builtin_profile_parses_to_pipeline_config[ad9081_vpk180]
  ✅ test_builtin_profile_parses_to_pipeline_config[ad9081_zc706]
  ✅ test_builtin_profile_parses_to_pipeline_config[ad9081_zcu102]
  ✅ test_builtin_profile_parses_to_pipeline_config[ad9082_zcu102]
  ✅ test_builtin_profile_parses_to_pipeline_config[ad9083_zcu102]
  ✅ test_builtin_profile_parses_to_pipeline_config[ad9084_vcu118]
  ✅ test_builtin_profile_parses_to_pipeline_config[ad9172_zcu102]
  ✅ test_builtin_profile_parses_to_pipeline_config[adrv9002_zc706]
  ✅ test_builtin_profile_parses_to_pipeline_config[adrv9008_zc706]
  ✅ test_builtin_profile_parses_to_pipeline_config[adrv9008_zcu102]
  ✅ test_builtin_profile_parses_to_pipeline_config[adrv9009_zc706]
  ✅ test_builtin_profile_parses_to_pipeline_config[adrv9009_zcu102]
  ✅ test_builtin_profile_parses_to_pipeline_config[adrv9025_zcu102]
  ✅ test_builtin_profile_parses_to_pipeline_config[adrv937x_zc706]
  ✅ test_builtin_profile_parses_to_pipeline_config[adrv937x_zcu102]
  ✅ test_builtin_profile_parses_to_pipeline_config[fmcdaq2_zc706]
  ✅ test_builtin_profile_parses_to_pipeline_config[fmcdaq2_zcu102]
  ✅ test_builtin_profile_parses_to_pipeline_config[fmcdaq3_vcu118]
  ✅ test_builtin_profile_parses_to_pipeline_config[fmcdaq3_zc706]
  ✅ test_builtin_profile_parses_to_pipeline_config[fmcdaq3_zcu102]
test.xsa.test_builders.test_ad9081_builder.TestAD9081Builder
  ✅ test_matches_ad9081_topology
  ✅ test_does_not_match_fmcdaq2
  ✅ test_build_model_has_components
  ✅ test_build_model_has_rx_tx_links
  ✅ test_build_model_renders
test.xsa.test_builders.test_ad9081_builder.TestAD9081BuilderVPK180
  ✅ test_matches_vpk180_topology
  ✅ test_build_model_vpk180_has_versal_clk
  ✅ test_build_model_vpk180_addr_cells
  ✅ test_build_model_vpk180_platform
  ✅ test_build_model_vpk180_m8_l8
  ✅ test_build_model_vpk180_renders
test.xsa.test_builders.test_adrv9009_builder.TestARDV9009Builder
  ✅ test_matches_adrv9009_topology
  ✅ test_does_not_match_fmcdaq2
  ✅ test_build_model_returns_model
  ✅ test_build_model_has_clock_component
  ✅ test_build_model_has_rx_tx_links
  ✅ test_no_orx_nodes_when_no_orx_jesd
test.xsa.test_builders.test_adrv937x_builder.TestARDV937xBuilder
  ✅ test_matches_adrv937x_topology
  ✅ test_does_not_match_adrv9009
  ✅ test_does_not_match_fmcdaq2
  ✅ test_build_model_returns_model
  ✅ test_build_model_has_clock_component
  ✅ test_build_model_has_rx_tx_links
  ✅ test_build_model_phy_compatible
test.xsa.test_builders.test_fmcdaq2_builder.TestFMCDAQ2Builder
  ✅ test_matches_fmcdaq2_topology
  ✅ test_does_not_match_adrv9009
  ✅ test_build_model_returns_board_model
  ✅ test_build_model_has_three_components
  ✅ test_build_model_has_two_jesd_links
  ✅ test_build_model_renders_without_error
  ✅ test_jesd_params_from_config
test.xsa.test_builders.test_fmcdaq3_builder.TestFMCDAQ3Builder
  ✅ test_matches_fmcdaq3_topology
  ✅ test_does_not_match_fmcdaq2
  ✅ test_build_model_has_three_components
  ✅ test_build_model_renders
test.xsa.test_builders.test_golden_files
  ✅ test_golden_output[fmcdaq2-FMCDAQ2Builder-_topo_fmcdaq2-cfg0-golden_fmcdaq2.dts]
  ✅ test_golden_output[ad9081-AD9081Builder-_topo_ad9081-cfg1-golden_ad9081.dts]
  ✅ test_golden_output[ad9081_vpk180-AD9081Builder-_topo_ad9081_vpk180-cfg2-golden_ad9081_vpk180.dts]
test.xsa.test_clock_graph
  ✅ test_parser_finds_clkgen_output_names
  ✅ test_parser_finds_consumer_clocks
  ✅ test_parser_finds_clock_names
  ✅ test_parser_only_returns_clock_related_nodes
  ✅ test_parser_handles_multi_provider_xcvr
  ✅ test_dot_renderer_produces_digraph
  ✅ test_dot_renderer_declares_all_provider_nodes
  ✅ test_dot_renderer_emits_clock_edges
  ✅ test_dot_renderer_labels_edges_with_clock_name
  ✅ test_dot_renderer_uses_dashed_style_for_s_axi_aclk
  ✅ test_d2_renderer_has_direction
  ✅ test_d2_renderer_declares_all_nodes
  ✅ test_d2_renderer_emits_clock_edges
  ✅ test_d2_renderer_labels_edges_with_clock_name
  ✅ test_d2_renderer_uses_stroke_dash_for_s_axi_aclk
  ✅ test_d2_renderer_ps_clock_has_oval_shape
  ✅ test_d2_renderer_uses_style_fill
  ✅ test_generator_writes_dot_file
  ✅ test_generator_writes_d2_file
  ✅ test_generator_dot_file_has_correct_name
  ✅ test_generator_d2_file_has_correct_name
  ✅ test_generator_dot_content_is_valid
  ✅ test_generator_d2_content_is_valid
  ✅ test_generator_sanitises_name_with_special_chars
  ✅ test_generator_returns_dot_svg_when_dot_available
  ⚪ test_generator_returns_d2_svg_when_d2_available
  ✅ test_generator_no_svg_keys_when_tools_unavailable
test.xsa.test_dtc_compile.TestDtcCompile
  ✅ test_golden_overlay_compiles[golden_ad9081]
  ✅ test_golden_overlay_compiles[golden_ad9081_vpk180]
  ✅ test_golden_overlay_compiles[golden_fmcdaq2]
  ✅ test_petalinux_dtsi_compiles[golden_ad9081]
  ✅ test_petalinux_dtsi_compiles[golden_ad9081_vpk180]
  ✅ test_petalinux_dtsi_compiles[golden_fmcdaq2]
  ✅ test_petalinux_zynqmp_dtsi_compiles[golden_ad9081]
  ✅ test_petalinux_zynqmp_dtsi_compiles[golden_ad9081_vpk180]
  ✅ test_petalinux_zynqmp_dtsi_compiles[golden_fmcdaq2]
test.xsa.test_dts_lint.TestPhandleUnresolved
  ✅ test_detects_missing_target
  ✅ test_passes_when_target_exists
  ✅ test_passes_with_overlay_ref_target
  ✅ test_multiple_missing_refs_reported
test.xsa.test_dts_lint.TestClockCellsMismatch
  ✅ test_detects_missing_arg
  ✅ test_passes_with_correct_args
  ✅ test_passes_with_zero_cells
  ✅ test_detects_extra_args
test.xsa.test_dts_lint.TestSpiCsDuplicate
  ✅ test_detects_duplicate_cs
  ✅ test_passes_with_unique_cs
test.xsa.test_dts_lint.TestCompatibleMissing
  ✅ test_detects_bare_device
  ✅ test_passes_with_compatible
  ✅ test_skips_bus_nodes
test.xsa.test_dts_lint.TestLinterGeneral
  ✅ test_empty_dts_returns_no_diagnostics
  ✅ test_clean_dts_returns_no_diagnostics
  ✅ test_errors_sorted_first
  ✅ test_lint_file
  ✅ test_str_representation
test.xsa.test_dts_lint_integration.TestDtsLinterPipelineIntegration
  ✅ test_lint_ad9081_golden_fixture
test.xsa.test_dts_lint_integration.TestDtsLintError
  ✅ test_exception_carries_diagnostics
  ✅ test_empty_diagnostics
test.xsa.test_dts_lint_integration.TestLinterOnGeneratedOutput
  ✅ test_ad9084_vcu118_output_lint
test.xsa.test_dts_lint_integration.TestDiagnosticsJson
  ✅ test_diagnostics_json_structure
test.xsa.test_example_fmcdaq2_zc706
  ✅ test_resolve_config_from_adijif_falls_back_when_solver_missing
  ✅ test_resolve_config_from_adijif_falls_back_when_solver_missing_zcu102
  ✅ test_main_supports_download_kuiper_flow_zc706
  ✅ test_main_supports_download_kuiper_flow_zcu102
  ✅ test_download_kuiper_xsa_reports_available_projects
test.xsa.test_exceptions
  ✅ test_sdtgen_not_found_error_is_exception
  ✅ test_sdtgen_error_carries_stderr
  ✅ test_xsa_parse_error_is_exception
  ✅ test_config_error_names_missing_field
test.xsa.test_fmcdaq3_adijif
  ✅ test_resolve_fmcdaq3_config_falls_back_when_ad9152_model_missing
test.xsa.test_kuiper_helper
  ✅ test_download_kuiper_xsa_uses_cached_tarball
  ✅ test_download_kuiper_xsa_reports_available_projects_for_bad_project
test.xsa.test_kuiper_release_xsa
  ✅ test_extract_project_xsa_from_nested_bootgen_archive
  ✅ test_extract_project_xsa_raises_useful_error_for_unknown_project
  ✅ test_xsa_parser_detects_axi_adrv9009_converter
  ⚪ test_adrv9009_zcu102_kuiper_xsa_parse_and_generate
test.xsa.test_merger
  ✅ test_overlay_references_amba_label
  ✅ test_overlay_contains_adi_nodes
  ✅ test_overlay_has_dts_v1_and_plugin_header
  ✅ test_merged_contains_adi_nodes
  ✅ test_merged_retains_base_content
  ✅ test_overlay_file_written
  ✅ test_merged_file_written
  ✅ test_conflict_replaces_existing_node_and_warns
  ✅ test_fallback_to_root_when_no_amba_label
  ✅ test_conflict_replaces_existing_node_with_same_label
  ✅ test_overlay_references_amba_pl_label
  ✅ test_replace_nodes_with_duplicate_labels_from_included_dtsi
  ✅ test_replacement_preserves_interrupts_from_included_dtsi
  ✅ test_merge_uses_include_bus_label_reference_block
  ✅ test_include_bus_insertion_happens_after_delete_directives
  ✅ test_merge_does_not_remove_unrelated_at_zero_nodes
  ✅ test_merge_only_top_nodes_does_not_warn_about_missing_bus
  ✅ test_bus_child_conflict_replaces_zero_address_spi_node
test.xsa.test_node_builder
  ✅ test_build_rx_jesd_node_contains_compatible
  ✅ test_build_clkgen_nodes_generated
  ✅ test_build_rx_jesd_node_contains_base_addr
  ✅ test_build_rx_jesd_node_contains_irq
  ✅ test_build_rx_jesd_node_contains_jesd_params
  ✅ test_build_tx_jesd_node
  ✅ test_build_uses_clkgen_for_device_clock_when_configured
  ✅ test_build_warns_on_unresolvable_clock
  ✅ test_build_falls_back_to_zynqmp_clk_when_unresolvable_and_clkgen_requested
  ✅ test_build_converter_renders_with_jesd_label
  ✅ test_build_converter_fallback_template
  ✅ test_build_ad9084_vcu118_uses_ebz_defaults
  ✅ test_build_adrv9009_includes_top_device_link_ids
  ✅ test_build_adrv9026_label_variant_reuses_adrv9009_generation_path
  ✅ test_build_ad9081_mxfe_generates_spi_clock_and_core_nodes
  ✅ test_build_ad9081_mxfe_uses_cfg_rx_m_for_converter_select
  ✅ test_build_ad9081_mxfe_uses_ad9081_default_link_ids
  ✅ test_build_ad9081_mxfe_applies_board_overrides
  ✅ test_build_fmcdaq2_zc706_nodes
  ✅ test_build_fmcdaq2_zcu102_nodes
  ✅ test_build_fmcdaq2_rejects_invalid_gpio_value
  ✅ test_build_fmcdaq2_rejects_invalid_chip_select
  ✅ test_build_fmcdaq2_rejects_bool_for_numeric_field
  ✅ test_build_ad9081_allows_hmc7044_channel_block_override
  ✅ test_build_ad9081_mxfe_inferrs_link_modes_from_jesd_params
  ✅ test_build_adrv9009_applies_board_overrides
  ✅ test_build_adrv9009_uses_zynq_ps_labels_on_zc706
  ✅ test_build_adrv9009_allows_trx_profile_props_override
  ✅ test_build_adrv9009_allows_ad9528_channel_block_override
  ✅ test_build_adrv9009_fmcomms8_uses_hmc7044_and_tpl_core_labels
test.xsa.test_node_builder_ad9172
  ✅ test_node_builder_generates_ad9172_specific_nodes
  ✅ test_node_builder_infers_ad9172_labels_from_jesd_tx_instance
test.xsa.test_node_builder_fmcdaq3
  ✅ test_node_builder_generates_fmcdaq3_specific_nodes
test.xsa.test_node_builder_templates
  ✅ test_wrap_spi_bus_produces_overlay
  ✅ test_build_adrv9009_nodes_standard_returns_nonempty
  ✅ test_build_adrv9009_nodes_standard_has_ad9528_clock_chip
  ✅ test_build_adrv9009_nodes_standard_has_tx_jesd_converter_resolution
  ✅ test_build_adrv9009_nodes_standard_has_phy_node
  ✅ test_build_adrv9009_nodes_standard_has_clkgen_nodes
  ✅ test_build_adrv9009_nodes_fmcomms8_returns_nonempty
  ✅ test_build_adrv9009_nodes_fmcomms8_has_hmc7044_clock_chip
  ✅ test_build_adrv9009_nodes_fmcomms8_has_primary_phy
  ✅ test_build_adrv9009_nodes_fmcomms8_has_second_phy
  ✅ test_build_adrv9009_nodes_fmcomms8_no_clkgen
test.xsa.test_parity
  ✅ test_check_manifest_against_dts_marks_missing_roles
  ✅ test_check_manifest_against_dts_counts_role_multiplicity
  ✅ test_check_manifest_against_dts_marks_missing_links
  ✅ test_check_manifest_against_dts_marks_missing_properties
  ✅ test_check_manifest_against_dts_scopes_link_to_source_node
  ✅ test_check_manifest_against_dts_scopes_role_to_source_label
  ✅ test_check_manifest_against_dts_scopes_property_to_source_node
  ✅ test_check_manifest_against_dts_marks_mismatched_property_values
  ✅ test_check_manifest_against_dts_normalizes_property_value_whitespace
  ✅ test_check_manifest_against_dts_sorts_gap_lists
  ✅ test_check_manifest_against_dts_deduplicates_gap_lists
  ✅ test_write_parity_reports_emits_stable_schema_keys
  ✅ test_write_parity_reports_serializes_sorted_gap_lists
  ✅ test_write_parity_reports_emits_coverage_percentages
test.xsa.test_petalinux.TestPetalinuxFormatter
  ✅ test_strips_plugin_header
  ✅ test_strips_file_header_comment
  ✅ test_adds_system_conf_include
  ✅ test_adds_system_conf_for_modern_petalinux
  ✅ test_skips_system_conf_for_old_petalinux
  ✅ test_preserves_node_content
  ✅ test_preserves_amba_for_zynq
  ✅ test_rewrites_amba_to_amba_pl_for_zynqmp
  ✅ test_rewrites_amba_for_zu11eg
  ✅ test_no_rewrite_when_platform_none
  ✅ test_has_spdx_header
  ✅ test_has_pyadi_dt_provenance
  ✅ test_no_leading_blank_lines_before_content
  ✅ test_handles_empty_overlay
  ✅ test_handles_overlay_without_header_comment
test.xsa.test_petalinux.TestBbappendGeneration
  ✅ test_bbappend_content
  ✅ test_bbappend_ends_with_newline
test.xsa.test_petalinux.TestValidatePetalinuxProject
  ✅ test_valid_project
  ✅ test_invalid_project_raises
  ✅ test_invalid_project_suggests_petalinux_config
  ✅ test_partial_structure_raises
test.xsa.test_pipeline
  ✅ test_pipeline_produces_overlay_and_merged
  ✅ test_pipeline_output_names_derived_from_converter
  ✅ test_pipeline_merged_matches_golden_snapshot
  ✅ test_pipeline_profile_defaults_are_applied_without_overriding_explicit_cfg
  ✅ test_pipeline_auto_selects_matching_builtin_profile
  ✅ test_pipeline_explicit_ad9081_zc706_profile_applies_defaults
  ✅ test_pipeline_explicit_adrv9008_profile_applies_defaults
  ✅ test_pipeline_explicit_adrv9009_zc706_profile_applies_defaults
  ✅ test_pipeline_explicit_adrv9008_zc706_profile_applies_defaults
  ✅ test_pipeline_explicit_adrv937x_zc706_profile_applies_defaults
  ✅ test_pipeline_explicit_profile_controls_output_names
  ✅ test_pipeline_explicit_ad9082_profile_applies_defaults
  ✅ test_pipeline_explicit_ad9083_profile_applies_defaults
  ✅ test_pipeline_explicit_ad9172_profile_applies_defaults
  ✅ test_pipeline_auto_selects_fmcdaq2_zc706_profile
  ✅ test_pipeline_auto_selects_fmcdaq2_zcu102_profile
  ✅ test_pipeline_auto_selects_fmcdaq2_profile_from_jesd_labels_only
  ✅ test_pipeline_auto_selects_fmcdaq3_zcu102_profile
  ✅ test_pipeline_auto_selects_fmcdaq3_zc706_profile
  ✅ test_pipeline_auto_selects_adrv9025_profile_from_adrv9026_jesd_names
  ✅ test_pipeline_derive_name_handles_mxfe_jesd_only
  ✅ test_pipeline_derive_name_handles_ad9084_jesd_only
  ✅ test_pipeline_derive_name_ignores_unknown_converter_when_known_exists
  ✅ test_pipeline_derive_name_handles_fmcdaq3_converter_types
  ✅ test_pipeline_derive_name_handles_adrv9002_converter_type
  ✅ test_pipeline_derive_name_handles_ad9082_converter_type
  ✅ test_pipeline_derive_name_uses_substring_platform_inference
  ✅ test_pipeline_derive_name_uses_adrv9025_family_for_adrv9026_labels
  ✅ test_pipeline_derive_name_uses_adrv937x_family_for_ad9371_labels
  ✅ test_pipeline_writes_manifest_parity_reports_when_reference_dts_is_provided
  ✅ test_pipeline_strict_parity_raises_when_roles_missing
  ✅ test_pipeline_strict_parity_raises_when_links_missing
  ✅ test_pipeline_strict_parity_raises_when_properties_missing
  ✅ test_pipeline_strict_parity_raises_when_property_values_mismatch
  ✅ test_pipeline_strict_parity_reports_multiple_gap_categories
  ✅ test_pipeline_report_absent_by_default
  ✅ test_pipeline_emit_report_true_writes_html
  ✅ test_pipeline_emit_report_false_does_not_write_html
  ✅ test_pipeline_clock_graphs_absent_by_default
  ✅ test_pipeline_emit_clock_graphs_true_writes_files
  ✅ test_pipeline_emit_clock_graphs_false_omits_clock_keys
  ✅ test_pipeline_emit_clock_graphs_false_does_not_invoke_generator
  ✅ test_pipeline_default_result_has_only_core_keys
test.xsa.test_profiles
  ✅ test_profile_manager_lists_builtin_profiles
  ✅ test_profile_manager_loads_ad9081_profile
  ✅ test_profile_manager_loads_ad9084_vcu118_profile
  ✅ test_profile_manager_loads_ad9081_zc706_profile
  ✅ test_profile_manager_loads_ad9082_profile
  ✅ test_profile_manager_loads_ad9083_profile
  ✅ test_profile_manager_loads_ad9172_profile
  ✅ test_profile_manager_loads_adrv9009_profile
  ✅ test_profile_manager_loads_adrv9009_zc706_profile
  ✅ test_profile_manager_loads_adrv9008_profile
  ✅ test_profile_manager_loads_adrv9008_zc706_profile
  ✅ test_profile_manager_loads_adrv9002_zc706_profile
  ✅ test_profile_manager_loads_adrv9025_profile
  ✅ test_profile_manager_loads_adrv937x_profile
  ✅ test_profile_manager_loads_adrv937x_zc706_profile
  ✅ test_profile_manager_loads_fmcdaq2_zcu102_profile
  ✅ test_profile_manager_loads_fmcdaq3_zcu102_profile
  ✅ test_profile_manager_loads_fmcdaq3_zc706_profile
  ✅ test_profile_manager_rejects_unknown_board_override_key
  ✅ test_profile_manager_rejects_invalid_list_override_type
  ✅ test_profile_manager_accepts_extended_fmcdaq2_board_keys
  ✅ test_profile_manager_rejects_invalid_fmcdaq2_board_int_type
  ✅ test_profile_manager_rejects_invalid_fmcdaq2_board_negative_int
  ✅ test_merge_profile_defaults_does_not_alias_mutable_values
test.xsa.test_reference_manifest
  ✅ test_extract_manifest_resolves_nested_includes_and_maps_roles
  ✅ test_extract_manifest_collects_jesd_required_links
  ✅ test_extract_manifest_collects_required_properties
  ✅ test_extract_manifest_handles_include_cycles
  ✅ test_extract_manifest_raises_for_missing_root
  ✅ test_extract_manifest_deduplicates_duplicate_requirements
test.xsa.test_sdtgen
  ✅ test_run_invokes_sdtgen_with_correct_args
  ✅ test_run_raises_not_found_when_binary_missing
  ✅ test_run_discovers_vitis_settings_on_missing_binary
  ✅ test_run_raises_error_on_nonzero_exit
  ✅ test_run_raises_error_on_timeout
  ✅ test_run_scans_for_dts_when_system_top_absent
  ✅ test_run_raises_error_when_no_dts_produced
  ✅ test_help_timeout_raises_sdtgen_error
  ✅ test_run_uses_eval_mode_for_2025_style_sdtgen
  ✅ test_run_falls_back_to_dash_help_when_long_help_is_invalid
  ✅ test_run_postprocesses_sdtgen_cpu_and_interrupt_nodes
  ✅ test_run_postprocesses_readonly_dtsi
  ✅ test_run_disables_problematic_rpu_ipi_nodes
  ✅ test_run_adds_missing_sdhci1_properties
  ✅ test_run_adds_missing_sdhci1_properties_for_ref_block
  ✅ test_run_sanitizes_non_ddr_memory_nodes
  ✅ test_run_adds_missing_gem3_iommu_property
test.xsa.test_topology
  ✅ test_jesd204_instance_creation
  ✅ test_clkgen_instance_has_output_clks
  ✅ test_converter_instance_optional_spi
  ✅ test_xsa_topology_defaults_to_empty
  ✅ test_xsa_topology_detects_fmcdaq2_from_converter_types
  ✅ test_xsa_topology_detects_fmcdaq2_from_jesd_names_only
  ✅ test_xsa_topology_detects_fmcdaq3_from_converter_types
  ✅ test_xsa_topology_detects_fmcdaq3_from_jesd_names_only
  ✅ test_xsa_topology_infers_converter_family_from_jesd_names
  ✅ test_xsa_topology_infers_ad9084_family_from_jesd_names
  ✅ test_xsa_topology_infers_ad9082_family_from_converter_type
  ✅ test_xsa_topology_prefers_known_converter_family_when_first_is_unknown
  ✅ test_xsa_topology_infers_adrv9002_family_from_adrv9001_converter_type
  ✅ test_xsa_topology_infers_adrv9025_family_from_adrv9026_jesd_names
  ✅ test_xsa_topology_infers_adrv937x_family_from_ad9371_jesd_names
  ✅ test_xsa_topology_infers_platform_from_part_prefix
  ✅ test_xsa_topology_infers_platform_from_part_substring
  ✅ test_xsa_topology_infers_platform_without_xc_prefix
  ✅ test_parser_detects_fpga_part
  ✅ test_parser_detects_jesd204_rx
  ✅ test_parser_detects_jesd204_tx
  ✅ test_parser_detects_clkgen_with_outputs
  ✅ test_parser_detects_converter
  ✅ test_parser_detects_ad9680_converter_type
  ✅ test_parser_does_not_infer_ad9081_from_non_mxfe_tpl_blocks
  ✅ test_parser_extracts_signal_connection_graph
  ✅ test_parser_raises_on_missing_hwh
  ✅ test_parser_warns_when_no_adi_ips
  ✅ test_parser_uses_global_memrange_when_module_memrange_is_zero
  ✅ test_parser_uses_num_lanes_and_core_clk_fallback
  ✅ test_parser_reads_part_from_systeminfo_attributes
  ✅ test_parser_uses_c_baseaddr_when_memrange_missing
  ✅ test_parser_infers_ad9081_converter_from_tpl_blocks
test.xsa.test_visualizer
  ✅ test_generate_returns_html_string
  ✅ test_html_is_self_contained_no_external_urls
  ✅ test_html_contains_node_names
  ✅ test_html_file_written
  ✅ test_missing_d3_bundle_raises
  ✅ test_title_with_html_chars_is_escaped
  ✅ test_node_name_closing_script_tag_is_safe
  ✅ test_html_contains_xsa_match_coverage_summary
  ✅ test_html_contains_expandable_detail_sections