On Mon, Feb 28, 2022 at 4:47 AM Maxime Ripard <maxime@xxxxxxxxxx> 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@xxxxxxxxxx> 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@xxxxxxxxxx> wrote: > > > > > > > > > > Let's test various parts of the rate-related clock API with the kunit > > > > > testing framework. > > > > > > > > > > Cc: kunit-dev@xxxxxxxxxxxxxxxx > > > > > Suggested-by: Stephen Boyd <sboyd@xxxxxxxxxx> > > > > > Signed-off-by: Maxime Ripard <maxime@xxxxxxxxxx> > > > > > > > > Tested-by: Daniel Latypov <dlatypov@xxxxxxxxxx> > > > > > > > > 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