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

> 
> 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.

-- 
Kind regards,

Rodrigo Alencar

Reply via email to