[PATCH v6 02/12] clk: Introduce Kunit Tests for the framework

Daniel Latypov dlatypov at google.com
Fri Mar 25 22:36:25 UTC 2022


On Mon, Feb 28, 2022 at 4:47 AM Maxime Ripard <maxime at cerno.tech> wrote:
>
> On Fri, Feb 25, 2022 at 01:29:03PM -0800, Daniel Latypov wrote:
> > On Fri, Feb 25, 2022 at 5:23 AM Maxime Ripard <maxime at cerno.tech> wrote:
> > >
> > > Hi Daniel,
> > >
> > > On Wed, Feb 23, 2022 at 02:50:59PM -0800, Daniel Latypov wrote:
> > > > On Wed, Feb 23, 2022 at 2:56 AM Maxime Ripard <maxime at cerno.tech> wrote:
> > > > >
> > > > > Let's test various parts of the rate-related clock API with the kunit
> > > > > testing framework.
> > > > >
> > > > > Cc: kunit-dev at googlegroups.com
> > > > > Suggested-by: Stephen Boyd <sboyd at kernel.org>
> > > > > Signed-off-by: Maxime Ripard <maxime at cerno.tech>
> > > >
> > > > Tested-by: Daniel Latypov <dlatypov at google.com>
> > > >
> > > > Looks good to me on the KUnit side.
> > > > Two small nits below.
> > > >
> > > > FYI, I computed the incremental coverage for this series, i.e.:
> > > > 1) applied the full series
> > > > 2) computed the absolute coverage
> > > >
> > > > $  ./tools/testing/kunit/kunit.py run  --kunitconfig=drivers/clk
> > > > --make_options=CC=/usr/bin/gcc-6 --kconfig_add=CONFIG_DEBUG_KERNEL=y
> > > > --kconfig_add=CONFIG_DEBUG_INFO=y --kconfig_add=CONFIG_GCOV=y
> > >
> > > I built a docker container based on ubuntu 18.04 to have gcc6 and
> > > python3.7, but this doesn't seem to be working, I'm not entirely sure why:
> > >
> > > [13:11:22] Configuring KUnit Kernel ...
> > > Regenerating .config ...
> > > Populating config with:
> > > $ make ARCH=um olddefconfig CC=/usr/bin/gcc-6 O=.kunit
> > > ERROR:root:Not all Kconfig options selected in kunitconfig were in the generated .config.
> > > This is probably due to unsatisfied dependencies.
> > > Missing: CONFIG_DEBUG_INFO=y, CONFIG_GCOV=y
> > > Note: many Kconfig options aren't available on UML. You can try running on a different architecture with something like "--arch=x86_64".
> >
> > Did you perhaps drop CONFIG_DEBUG_KERNEL=y?
> > Need to add 3 config options in total for coverage.
> >
> > If I tweak the command I ran above but drop CONFIG_DEBUG_KERNEL=y, I
> > get the error message you get:
> >
> > $  ./tools/testing/kunit/kunit.py run  --kunitconfig=drivers/clk
> > --make_options=CC=/usr/bin/gcc-6  --kconfig_add=CONFIG_DEBUG_INFO=y
> > --kconfig_add=CONFIG_GCOV=y
> > ...
> > Missing: CONFIG_DEBUG_INFO=y, CONFIG_GCOV=y
> > Note: many Kconfig options aren't available on UML. You can try
> > running on a different architecture with something like
> > "--arch=x86_64".
>
> It looks to me that it's more that DEBUG_INFO isn't enabled.

Sorry for the very delayed response.
I was largely getting internet over mobile data around when this email
came in and didn't want to try and download docker images over that.

It looks like that there was another change that is now merged into
Linus' tree that causes this.

I found that adding this helped (thanks David Gow)
  --kconfig_add=DEBUG_INFO_DWARF_TOOLCHAIN_DEFAULT

Running against --kunitconfig=lib/kunit, my final coverage result is

Overall coverage rate:
  lines......: 13.6% (18004 of 132055 lines)
  functions..: 15.7% (1885 of 12010 functions)

Can you give that a shot and see if it works?

Daniel

>
> If I'm running
>
> ./tools/testing/kunit/kunit.py config --kunitconfig=drivers/clk
>     --make_options=CC=/usr/bin/gcc-6 --kconfig_add=CONFIG_DEBUG_KERNEL=y
>     --kconfig_add=CONFIG_DEBUG_INFO=y --kconfig_add=CONFIG_GCOV=y
>
> DEBUG_INFO isn't selected and I end up with DEBUG_INFO_NONE.
> DEBUG_KERNEL is enabled though.
>
> Maxime


More information about the dri-devel mailing list