On Mon, 13 Jul 2026 10:52:56 +0100
Rodrigo Alencar <[email protected]> wrote:

> On 12/07/26 02:09, Jonathan Cameron wrote:
> > On Tue, 07 Jul 2026 15:04:28 +0100
> > Rodrigo Alencar via B4 Relay 
> > <[email protected]> wrote:
> >   
> > > From: Rodrigo Alencar <[email protected]>
> > > 
> > > Add a KUnit test suite covering __iio_chan_prefix_emit(), the helper
> > > that builds IIO sysfs attribute name prefixes from an iio_chan_spec.
> > > The suite groups cases by the enum iio_shared_by mode it exercises:
> > > 
> > >   - IIO_SHARED_BY_ALL: produces an empty prefix.
> > >   - IIO_SHARED_BY_DIR: emits direction only ("in" / "out").
> > >   - IIO_SHARED_BY_TYPE: emits "<dir>_<type>" and the differential
> > >     "<dir>_<type>-<type>" variant.
> > >   - IIO_SEPARATE: covers the full matrix of indexed, differential,
> > >     modified, output and extend_name combinations, plus the two
> > >     documented error paths (differential without indexed, differential
> > >     with modifier).
> > > 
> > > A final case exercises the seq_buf overflow path by passing an
> > > undersized buffer and expects -EOVERFLOW.
> > > 
> > > Because __iio_chan_prefix_emit() is static, the test translation unit
> > > is pulled into industrialio-core.c.  
> > 
> > Isn't there some magic route cases like this that makes it non static
> > only when self tests are enabled? 
> > Claude tells me to look at include/kunit/visibility.h  
> 
> There is, Although I think that using
> 
>       #if IS_ENABLED(CONFIG_IIO_CHANNEL_PREFIX_KUNIT_TEST)
>               #include "test/iio-test-channel-prefix.c"
>       #endif
> 
> was more straight forward, less invasive and easier to change than..
> 
>       /* In "drivers/iio/industrialio-core.c" */
> 
>       #include <kunit/visibility.h>
>       ...
>       VISIBLE_IF_KUNIT ssize_t __iio_chan_prefix_emit(...)
>       {
>       ...
>       }
>       EXPORT_SYMBOL_IF_KUNIT(__iio_chan_prefix_emit);
> 
>       /* In "iio_core.h" */
> 
>       #if IS_ENABLED(CONFIG_KUNIT)
>               ssize_t __iio_chan_prefix_emit(...);
>       #endif
> 
>       /* In "drivers/iio/test/iio-test-channel-prefix.c" */
> 
>       #include <kunit/visibility.h>
>       #include <iio_core.h>
>       ...
>       MODULE_IMPORT_NS("EXPORTED_FOR_KUNIT_TESTING");
>       ...
>       // Use __iio_chan_prefix_emit() in tests

I'd rather this wasn't built into the core module.  So prefer you jump
though those hoops.

Jonathan

> 
> > 
> > Very nice.  A couple of really small additions requested inline.
> > I might well have missed where you exercised the corners requested though!
> > + I'll need an Ack from Lars for that maintainers entry. I'll guess that
> > Lars won't give one as not very active at the moment in this area.
> > 
> > Jonathan
> >   
> > > 
> > > Also, an entry is created under MAINTAINERS dedicated to tests for IIO
> > > core helpers.
> > > 
> > > Signed-off-by: Rodrigo Alencar <[email protected]>
> > > ---
> > >  MAINTAINERS                                |   8 +
> > >  drivers/iio/industrialio-core.c            |   4 +
> > >  drivers/iio/test/Kconfig                   |  14 ++
> > >  drivers/iio/test/iio-test-channel-prefix.c | 246 
> > > +++++++++++++++++++++++++++++
> > >  4 files changed, 272 insertions(+)
> > > 
> > > diff --git a/MAINTAINERS b/MAINTAINERS
> > > index 2b1ec46c5919..57ffc0dcfdb6 100644
> > > --- a/MAINTAINERS
> > > +++ b/MAINTAINERS
> > > @@ -12634,6 +12634,14 @@ F:       include/dt-bindings/iio/
> > >  F:       include/linux/iio/
> > >  F:       tools/iio/
> > >  
> > > +IIO CORE KUNIT TESTS
> > > +M:       Lars-Peter Clausen <[email protected]>  
> > 
> > I'd need an Ack from Lars for this entry.   If we don't get one are you
> > fine looking after this without Lars listed?    
> 
> That is fine, will drop his name.
> 


Reply via email to