Message ID | 20220621085345.603820-4-davidgow@google.com (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | Rework KUnit test execution in modules | expand |
On Tue, Jun 21, 2022 at 1:54 AM David Gow <davidgow@google.com> wrote: > > The new implementation of kunit_test_suite() for modules no longer > conflicts with module_init, so can now be used by the thunderbolt tests. > > Also update the Kconfig entry to enable the test when KUNIT_ALL_TESTS is > enabled. > > This means that kunit_tool can now successfully run and parse the test > results with, for example: > ./tools/testing/kunit/kunit.py run --arch=x86_64 \ > --kconfig_add CONFIG_PCI=y --kconfig_add CONFIG_USB4=y \ > 'thunderbolt' With this, we can maybe revive https://lore.kernel.org/lkml/20220214184104.1710107-1-dlatypov@google.com by tacking it onto this series if a v3 goes out. There is the open question of whether we should put UML-specific config options in the file, though. If we decide we don't want that, then we can defer it until I send out the patches for "repeatable --kunitconfig" and we can add the uml_pci.config file. > > Acked-by: Mika Westerberg <mika.westerberg@linux.intel.com> > Signed-off-by: David Gow <davidgow@google.com> Acked-by: Daniel Latypov <dlatypov@google.com> LGTM.
On Tue, Jun 21, 2022 at 4:54 PM David Gow <davidgow@google.com> wrote: > > The new implementation of kunit_test_suite() for modules no longer > conflicts with module_init, so can now be used by the thunderbolt tests. > > Also update the Kconfig entry to enable the test when KUNIT_ALL_TESTS is > enabled. > > This means that kunit_tool can now successfully run and parse the test > results with, for example: > ./tools/testing/kunit/kunit.py run --arch=x86_64 \ > --kconfig_add CONFIG_PCI=y --kconfig_add CONFIG_USB4=y \ > 'thunderbolt' > > Acked-by: Mika Westerberg <mika.westerberg@linux.intel.com> > Signed-off-by: David Gow <davidgow@google.com> > --- > > Changes since v1: > https://lore.kernel.org/linux-kselftest/20220618090310.1174932-4-davidgow@google.com/ > - Actually include the Kconfig changes, which were mistakenly added to > the next patch in the series in v1. > - Add Acked-by tag from Mika Westerberg > > --- > drivers/thunderbolt/Kconfig | 5 +++-- > drivers/thunderbolt/domain.c | 3 --- > drivers/thunderbolt/tb.h | 8 -------- > drivers/thunderbolt/test.c | 12 +----------- > 4 files changed, 4 insertions(+), 24 deletions(-) > > diff --git a/drivers/thunderbolt/Kconfig b/drivers/thunderbolt/Kconfig > index 4bfec8a28064..2a063d344b94 100644 > --- a/drivers/thunderbolt/Kconfig > +++ b/drivers/thunderbolt/Kconfig > @@ -28,8 +28,9 @@ config USB4_DEBUGFS_WRITE > this for production systems or distro kernels. > > config USB4_KUNIT_TEST > - bool "KUnit tests" > - depends on KUNIT=y > + bool "KUnit tests" if !KUNIT_ALL_TESTS > + depends on KUNIT > + default KUNIT_ALL_TESTS > FYI: It turns out we can't just replace the "depends on KUNIT=y" with "depends on KUNIT" here, as it's still possible to have CONFIG_USB4=y and CONFIG_KUNIT=m, which would lead to missing KUnit symbols during link. What does work is adding, in addition to "depends on KUNIT": depends on (USB4=m || KUNIT=y) Which will prevent the tests from being enabled in this situation. I'll wait another day or so before sending out a v3 with this fixed, in case there are any other issues which arise. Cheers, -- David
diff --git a/drivers/thunderbolt/Kconfig b/drivers/thunderbolt/Kconfig index 4bfec8a28064..2a063d344b94 100644 --- a/drivers/thunderbolt/Kconfig +++ b/drivers/thunderbolt/Kconfig @@ -28,8 +28,9 @@ config USB4_DEBUGFS_WRITE this for production systems or distro kernels. config USB4_KUNIT_TEST - bool "KUnit tests" - depends on KUNIT=y + bool "KUnit tests" if !KUNIT_ALL_TESTS + depends on KUNIT + default KUNIT_ALL_TESTS config USB4_DMA_TEST tristate "DMA traffic test driver" diff --git a/drivers/thunderbolt/domain.c b/drivers/thunderbolt/domain.c index 2889a214dadc..99211f35a5cd 100644 --- a/drivers/thunderbolt/domain.c +++ b/drivers/thunderbolt/domain.c @@ -872,7 +872,6 @@ int tb_domain_init(void) { int ret; - tb_test_init(); tb_debugfs_init(); tb_acpi_init(); @@ -890,7 +889,6 @@ int tb_domain_init(void) err_acpi: tb_acpi_exit(); tb_debugfs_exit(); - tb_test_exit(); return ret; } @@ -903,5 +901,4 @@ void tb_domain_exit(void) tb_xdomain_exit(); tb_acpi_exit(); tb_debugfs_exit(); - tb_test_exit(); } diff --git a/drivers/thunderbolt/tb.h b/drivers/thunderbolt/tb.h index 4602c69913fa..a831faa50f65 100644 --- a/drivers/thunderbolt/tb.h +++ b/drivers/thunderbolt/tb.h @@ -1271,12 +1271,4 @@ static inline void tb_service_debugfs_init(struct tb_service *svc) { } static inline void tb_service_debugfs_remove(struct tb_service *svc) { } #endif -#ifdef CONFIG_USB4_KUNIT_TEST -int tb_test_init(void); -void tb_test_exit(void); -#else -static inline int tb_test_init(void) { return 0; } -static inline void tb_test_exit(void) { } -#endif - #endif diff --git a/drivers/thunderbolt/test.c b/drivers/thunderbolt/test.c index ee37f8b58f50..24c06e7354cd 100644 --- a/drivers/thunderbolt/test.c +++ b/drivers/thunderbolt/test.c @@ -2817,14 +2817,4 @@ static struct kunit_suite tb_test_suite = { .test_cases = tb_test_cases, }; -static struct kunit_suite *tb_test_suites[] = { &tb_test_suite, NULL }; - -int tb_test_init(void) -{ - return __kunit_test_suites_init(tb_test_suites); -} - -void tb_test_exit(void) -{ - return __kunit_test_suites_exit(tb_test_suites); -} +kunit_test_suite(tb_test_suite);