#
# KUnit base configuration
#

menuconfig KUNIT
	tristate "KUnit - Enable support for unit tests"
	select GLOB
	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.

config KUNIT_DEFAULT_ENABLED
	bool "Default value of kunit.enable"
	default y
	help
	  Sets the default value of kunit.enable. If set to N then KUnit
	  tests will not execute unless kunit.enable=1 is passed to the
	  kernel command line.

	  In most cases this should be left as Y. Only if additional opt-in
	  behavior is needed should this be set to N.

endif # KUNIT