linux-imx/lib/kunit/Kconfig
Daniel Latypov 5d31f71efc kunit: add kunit.filter_glob cmdline option to filter suites
E.g. specifying this would run suites with "list" in their name.
  kunit.filter_glob=list*

Note: the executor prints out a TAP header that includes the number of
suites we intend to run.
So unless we want to report empty results for filtered-out suites, we
need to do the filtering here in the executor.
It's also probably better in the executor since we most likely don't
want any filtering to apply to tests built as modules.

This code does add a CONFIG_GLOB=y dependency for CONFIG_KUNIT=y.
But the code seems light enough that it shouldn't be an issue.

For now, we only filter on suite names so we don't have to create copies
of the suites themselves, just the array (of arrays) holding them.

The name is rather generic since in the future, we could consider
extending it to a syntax like:
  kunit.filter_glob=<suite_glob>.<test_glob>
E.g. to run all the del list tests
  kunit.filter_glob=list-kunit-test.*del*

But at the moment, it's far easier to manually comment out test cases in
test files as opposed to messing with sets of Kconfig entries to select
specific suites.
So even just doing this makes using kunit far less annoying.

Signed-off-by: Daniel Latypov <dlatypov@google.com>
Reviewed-by: Brendan Higgins <brendanhiggins@google.com>
Signed-off-by: Shuah Khan <skhan@linuxfoundation.org>
2021-02-08 16:09:27 -07:00

2.3 KiB

KUnit base configuration

menuconfig KUNIT tristate "KUnit - Enable support for unit tests" select GLOB if KUNIT=y help Enables support for kernel unit tests (KUnit), a lightweight unit testing and mocking framework for the Linux kernel. These tests are able to be run locally on a developer's workstation without a VM or special hardware when using UML. Can also be used on most other architectures. For more information, please see Documentation/dev-tools/kunit/.

if KUNIT

config KUNIT_DEBUGFS bool "KUnit - Enable /sys/kernel/debug/kunit debugfs representation" if !KUNIT_ALL_TESTS default KUNIT_ALL_TESTS help Enable debugfs representation for kunit. Currently this consists of /sys/kernel/debug/kunit/<test_suite>/results files for each test suite, which allow users to see results of the last test suite run that occurred.

config KUNIT_TEST tristate "KUnit test for KUnit" if !KUNIT_ALL_TESTS default KUNIT_ALL_TESTS help Enables the unit tests for the KUnit test framework. These tests test the KUnit test framework itself; the tests are both written using KUnit and test KUnit. This option should only be enabled for testing purposes by developers interested in testing that KUnit works as expected.

config KUNIT_EXAMPLE_TEST tristate "Example test for KUnit" if !KUNIT_ALL_TESTS default KUNIT_ALL_TESTS help Enables an example unit test that illustrates some of the basic features of KUnit. This test only exists to help new users understand what KUnit is and how it is used. Please refer to the example test itself, lib/kunit/example-test.c, for more information. This option is intended for curious hackers who would like to understand how to use KUnit for kernel development.

config KUNIT_ALL_TESTS tristate "All KUnit tests with satisfied dependencies" help Enables all KUnit tests, if they can be enabled. KUnit tests run during boot and output the results to the debug log in TAP format (http://testanything.org/). Only useful for kernel devs running the KUnit test harness, and not intended for inclusion into a production build.

  For more information on KUnit and unit tests in general please refer
  to the KUnit documentation in Documentation/dev-tools/kunit/.

  If unsure, say N.

endif # KUNIT