From: David Gow <davidgow@google.com> To: Brendan Higgins <brendanhiggins@google.com>, Luis Chamberlain <mcgrof@kernel.org>, Jeremy Kerr <jk@codeconstruct.com.au>, Daniel Latypov <dlatypov@google.com>, Shuah Khan <skhan@linuxfoundation.org>, Andrew Jeffery <andrew@aj.id.au>, Mika Westerberg <mika.westerberg@linux.intel.com>, Andra Paraschiv <andraprs@amazon.com>, Longpeng <longpeng2@huawei.com> Cc: "David Gow" <davidgow@google.com>, kunit-dev@googlegroups.com, linux-kselftest@vger.kernel.org, linux-kernel@vger.kernel.org, "Maíra Canal" <maira.canal@usp.br>, linux-mmc@vger.kernel.org, linux-aspeed@lists.ozlabs.org, openbmc@lists.ozlabs.org, linux-usb@vger.kernel.org, linux-modules@vger.kernel.org, "Matt Johnston" <matt@codeconstruct.com.au> Subject: [PATCH 0/5] Rework KUnit test execution in modules Date: Sat, 18 Jun 2022 17:03:05 +0800 [thread overview] Message-ID: <20220618090310.1174932-1-davidgow@google.com> (raw) This patch series makes two changes to how KUnit test suites are stored and executed: - The .kunit_test_suites section is now used for tests in modules (in lieu of a module_init funciton), as well as for built-in tests. The module loader will now trigger test execution. This frees up the module_init function for other uses. - Instead of storing an array of arrays of suites, have the kunit_test_suite() and kunit_test_suites() macros append to one global (or per-module) list of test suites. This removes a needless layer of indirection. The upshot of this is that it should now be possible to use the kunit_test_suite() and kunit_test_suites() macros to register test suites even from within modules which otherwise had module_init functions. This was proving to be quite a common issue, resulting in several modules calling into KUnit's private suite execution functions to run their tests (often introducing incompatibilities with the KUnit tooling). This series also fixes the thunderbolt, nitro_enclaves, and sdhci-of-aspeed tests to use kunit_test_suite() now that it works. Huge thanks to Jeremy Kerr, who designed and implemented the module loader changes, and to Daniel Latypov for pushing the simplification of the nested arrays in .kunit_test_suites. I've tested this series both with builtin tests, and with modules on x86_64, but there's always the possibility that there's something subtle and nasty on another architecture, so please test! Cheers, -- David Daniel Latypov (1): kunit: flatten kunit_suite*** to kunit_suite** in .kunit_test_suites David Gow (3): thunderbolt: test: Use kunit_test_suite() macro nitro_enclaves: test: Use kunit_test_suite() macro mmc: sdhci-of-aspeed: test: Use kunit_test_suite() macro Jeremy Kerr (1): kunit: unify module and builtin suite definitions drivers/mmc/host/Kconfig | 5 +- drivers/mmc/host/sdhci-of-aspeed-test.c | 8 +- drivers/mmc/host/sdhci-of-aspeed.c | 27 ---- drivers/thunderbolt/Kconfig | 5 +- drivers/thunderbolt/domain.c | 3 - drivers/thunderbolt/tb.h | 8 - drivers/thunderbolt/test.c | 12 +- drivers/virt/nitro_enclaves/Kconfig | 5 +- drivers/virt/nitro_enclaves/ne_misc_dev.c | 27 ---- .../virt/nitro_enclaves/ne_misc_dev_test.c | 5 +- include/kunit/test.h | 60 ++------ include/linux/module.h | 5 + kernel/module/main.c | 6 + lib/kunit/executor.c | 117 ++++----------- lib/kunit/executor_test.c | 139 +++++------------- lib/kunit/test.c | 54 ++++++- 16 files changed, 152 insertions(+), 334 deletions(-) -- 2.36.1.476.g0c4daa206d-goog
WARNING: multiple messages have this Message-ID (diff)
From: David Gow <davidgow@google.com> To: Brendan Higgins <brendanhiggins@google.com>, Luis Chamberlain <mcgrof@kernel.org>, Jeremy Kerr <jk@codeconstruct.com.au>, Daniel Latypov <dlatypov@google.com>, Shuah Khan <skhan@linuxfoundation.org>, Andrew Jeffery <andrew@aj.id.au>, Mika Westerberg <mika.westerberg@linux.intel.com>, Andra Paraschiv <andraprs@amazon.com>, Longpeng <longpeng2@huawei.com> Cc: "David Gow" <davidgow@google.com>, linux-aspeed@lists.ozlabs.org, "Maíra Canal" <maira.canal@usp.br>, openbmc@lists.ozlabs.org, linux-usb@vger.kernel.org, linux-mmc@vger.kernel.org, linux-kernel@vger.kernel.org, linux-kselftest@vger.kernel.org, "Matt Johnston" <matt@codeconstruct.com.au>, linux-modules@vger.kernel.org, kunit-dev@googlegroups.com Subject: [PATCH 0/5] Rework KUnit test execution in modules Date: Sat, 18 Jun 2022 17:03:05 +0800 [thread overview] Message-ID: <20220618090310.1174932-1-davidgow@google.com> (raw) This patch series makes two changes to how KUnit test suites are stored and executed: - The .kunit_test_suites section is now used for tests in modules (in lieu of a module_init funciton), as well as for built-in tests. The module loader will now trigger test execution. This frees up the module_init function for other uses. - Instead of storing an array of arrays of suites, have the kunit_test_suite() and kunit_test_suites() macros append to one global (or per-module) list of test suites. This removes a needless layer of indirection. The upshot of this is that it should now be possible to use the kunit_test_suite() and kunit_test_suites() macros to register test suites even from within modules which otherwise had module_init functions. This was proving to be quite a common issue, resulting in several modules calling into KUnit's private suite execution functions to run their tests (often introducing incompatibilities with the KUnit tooling). This series also fixes the thunderbolt, nitro_enclaves, and sdhci-of-aspeed tests to use kunit_test_suite() now that it works. Huge thanks to Jeremy Kerr, who designed and implemented the module loader changes, and to Daniel Latypov for pushing the simplification of the nested arrays in .kunit_test_suites. I've tested this series both with builtin tests, and with modules on x86_64, but there's always the possibility that there's something subtle and nasty on another architecture, so please test! Cheers, -- David Daniel Latypov (1): kunit: flatten kunit_suite*** to kunit_suite** in .kunit_test_suites David Gow (3): thunderbolt: test: Use kunit_test_suite() macro nitro_enclaves: test: Use kunit_test_suite() macro mmc: sdhci-of-aspeed: test: Use kunit_test_suite() macro Jeremy Kerr (1): kunit: unify module and builtin suite definitions drivers/mmc/host/Kconfig | 5 +- drivers/mmc/host/sdhci-of-aspeed-test.c | 8 +- drivers/mmc/host/sdhci-of-aspeed.c | 27 ---- drivers/thunderbolt/Kconfig | 5 +- drivers/thunderbolt/domain.c | 3 - drivers/thunderbolt/tb.h | 8 - drivers/thunderbolt/test.c | 12 +- drivers/virt/nitro_enclaves/Kconfig | 5 +- drivers/virt/nitro_enclaves/ne_misc_dev.c | 27 ---- .../virt/nitro_enclaves/ne_misc_dev_test.c | 5 +- include/kunit/test.h | 60 ++------ include/linux/module.h | 5 + kernel/module/main.c | 6 + lib/kunit/executor.c | 117 ++++----------- lib/kunit/executor_test.c | 139 +++++------------- lib/kunit/test.c | 54 ++++++- 16 files changed, 152 insertions(+), 334 deletions(-) -- 2.36.1.476.g0c4daa206d-goog
next reply other threads:[~2022-06-18 9:03 UTC|newest] Thread overview: 27+ messages / expand[flat|nested] mbox.gz Atom feed top 2022-06-18 9:03 David Gow [this message] 2022-06-18 9:03 ` [PATCH 0/5] Rework KUnit test execution in modules David Gow 2022-06-18 9:03 ` [PATCH 1/5] kunit: unify module and builtin suite definitions David Gow 2022-06-18 9:03 ` David Gow 2022-06-18 11:36 ` kernel test robot 2022-06-18 11:36 ` kernel test robot 2022-06-18 12:47 ` kernel test robot 2022-06-18 12:47 ` kernel test robot 2022-06-18 9:03 ` [PATCH 2/5] kunit: flatten kunit_suite*** to kunit_suite** in .kunit_test_suites David Gow 2022-06-18 9:03 ` David Gow 2022-06-18 13:58 ` kernel test robot 2022-06-18 13:58 ` kernel test robot 2022-06-18 14:49 ` kernel test robot 2022-06-18 14:49 ` kernel test robot 2022-06-18 9:03 ` [PATCH 3/5] thunderbolt: test: Use kunit_test_suite() macro David Gow 2022-06-18 9:03 ` David Gow 2022-06-20 5:05 ` Mika Westerberg 2022-06-18 9:03 ` [PATCH 4/5] nitro_enclaves: " David Gow 2022-06-18 9:03 ` David Gow 2022-06-20 9:26 ` Paraschiv, Andra-Irina 2022-06-20 9:26 ` Paraschiv, Andra-Irina 2022-06-18 9:03 ` [PATCH 5/5] mmc: sdhci-of-aspeed: " David Gow 2022-06-18 9:03 ` David Gow 2022-06-18 17:11 ` [PATCH 0/5] Rework KUnit test execution in modules Maíra Canal 2022-06-18 17:11 ` Maíra Canal 2022-06-18 17:41 ` Christophe Leroy 2022-06-18 17:41 ` Christophe Leroy
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20220618090310.1174932-1-davidgow@google.com \ --to=davidgow@google.com \ --cc=andraprs@amazon.com \ --cc=andrew@aj.id.au \ --cc=brendanhiggins@google.com \ --cc=dlatypov@google.com \ --cc=jk@codeconstruct.com.au \ --cc=kunit-dev@googlegroups.com \ --cc=linux-aspeed@lists.ozlabs.org \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-kselftest@vger.kernel.org \ --cc=linux-mmc@vger.kernel.org \ --cc=linux-modules@vger.kernel.org \ --cc=linux-usb@vger.kernel.org \ --cc=longpeng2@huawei.com \ --cc=maira.canal@usp.br \ --cc=matt@codeconstruct.com.au \ --cc=mcgrof@kernel.org \ --cc=mika.westerberg@linux.intel.com \ --cc=openbmc@lists.ozlabs.org \ --cc=skhan@linuxfoundation.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.