You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
``assert_no_kernel_faults`` only catches panic/oops/BUG/SError —
drivers can fail to probe silently (bad DT overlay apply, phandle
mismatch, missing regulator) and the suite would reach the
IIO-device assertion with a confusing "not found" message instead
of the probe-error root cause. Similarly, ``Link status: DATA``
only says JESD trained at link-up — DMA / TPL / clock-path can
silently stop delivering samples and the test wouldn't notice.
Add two helpers in ``test/hw/hw_helpers.py`` and wire them into
every hw test that has IIO verification:
1. ``assert_no_probe_errors(dmesg_txt)`` — scans for
``probe of <dev> failed with error``,
``Error applying overlay`` / ``failed to apply overlay``,
``Error resolving``. Reuses ``_DMESG_BENIGN_SUBSTRINGS`` (now
also allowlisting the stock-Kuiper ZCU102 / ZynqMP watchdog,
DisplayPort, and Ceva AHCI probes that fire on every boot
regardless of overlay).
2. ``assert_rx_capture_valid(ctx, device_candidates, …)`` — uses
raw libiio (works with any buffered AXI ADC regardless of
whether a pyadi-iio wrapper exists for its device name),
enables every non-output scan channel, refills a one-shot
buffer, and asserts at least one channel is non-zero + at
least one channel's ``|std|`` >= 1 LSB. Device selection
tries an ordered candidate list, then falls back to any
``axi-*`` / ``cf-*`` / TPL frontend on the context.
``TimeoutError`` from the refill path gets remapped to a
clear ``AssertionError`` pointing at the stalled DMA.
Wired into:
- ``test_ad9081_zcu102_xsa_hw.py`` → ``axi-ad9081-rx-hpc`` /
``ad_ip_jesd204_tpl_adc``.
- ``test_ad9081_zcu102_system_hw.py`` → same.
- ``test_adrv9009_zcu102_hw.py`` → ``axi-adrv9009-rx-hpc``.
Also restructured to use ``board`` fixture (from the
``target``-swap fix) so the VCU118-style teardown power-off
runs.
- ``test_fmcdaq3_vcu118_hw.py`` → ``axi-ad9680-core-lpc``
/ ``axi-ad9680-hpc``.
Four findings surfaced via this check, all fixed:
- ``assert_no_probe_errors`` tripped on stock Kuiper ZynqMP boot
noise (``cdns-wdt: probe of ffcb0000.watchdog failed with
error -2``, DisplayPort + Ceva AHCI) → three specific
device-node addresses added to the benign list so a real
watchdog/display/sata regression elsewhere still trips.
- ``adi.ad9081(uri=…)`` fails with ``'NoneType' object has no
attribute 'channels'`` when the design exposes the TPL core
rather than ``axi-ad9081-rx-hpc`` → moved to raw libiio.
- Fallback initially picked the control-plane device
(``ad9528-1``) which isn't AXI-DMA-backed → narrowed fallback
to ``axi-*`` / ``cf-*`` / TPL only.
0 commit comments