# Re: \[PATCH net-next v2 04/14\] selftests: dpll: add pin enumeration and property tests

- From: Ivan Vecera \<ivecera@redhat.com\>
- Date: 2026-11-06 10:49:23 
- List: netdev
- Page: https://ratatoskr.run/netdev/2026/11/17877441
- Thread: https://ratatoskr.run/netdev/2026/11/17871508/t.md

```text
On 11/5/26 16:18, Petr Oros wrote:
> Extend the library with pin queries. Pins of a device are collected
> from the full pin dump with jq, since older iproute2 lacks the device
> filter of "pin show", and the fields that live in the parent-device
> nest are read through a helper that selects the nest of the device
> under test. The helpers that work on the full dump normalize its shape
> the same way the id-based ones do, so that a tool printing a flat
> object instead of the dump wrapper works with all of them. Like the
> device queries, every pin query runs the tool first and jq on what it
> printed, so that a query which fails returns the status of the tool
> instead of the empty output a missing attribute produces too. The
> prerequisite check now also requires a tool that knows "pin show", so
> that a tool too old for the pin queries is a skip up front rather than
> a failed query in every test. The dpllsim helpers gain
> dpllsim_add_pin, which creates a pin directory and writes its type,
> frequency and direction, and the standard device grows a GNSS input,
> an external input and an external output.
>
> dpll_basic.sh checks that the enumeration yields a numeric id for every
> pin of the device, the ids are taken from the dump as they are and jq
> prints null for a pin without one, that every pin has an id and a type
> and carries the direction in the parent-device nest, and that an input
> pin reports a valid state. The property test does not go on to query
> pins by an id that is not one, and reports a pin it cannot query at all
> as one failure rather than as one per attribute. The frequency is not
> required, a pin without a frequency callback does not report one. The
> device the script created has the standard pins, so an empty pin list
> or a missing input pin on it means a failed query or broken tooling
> rather than a pinless device. The library gains
> dpll_log_test_skip_or_fail for such conditions, which fails on the
> device the script created, recorded in DPLL_CREATED_DEVICE next to
> DPLL_DEV_ID, and skips on a device the user provided. The stress script
> creates its devices with a random set of pins of every type and both
> directions, MUX pins always as inputs, and the deploy cycle test runs
> with the standard pin set.
>
> Signed-off-by: Petr Oros<redacted>

Reviewed-by: Ivan Vecera <ivecera@redhat.com>

```
