1 #
2 # KUnit base configuration
3 #
4 
5 menuconfig KUNIT
6 	tristate "KUnit - Enable support for unit tests"
7 	select GLOB
8 	help
9 	  Enables support for kernel unit tests (KUnit), a lightweight unit
10 	  testing and mocking framework for the Linux kernel. These tests are
11 	  able to be run locally on a developer's workstation without a VM or
12 	  special hardware when using UML. Can also be used on most other
13 	  architectures. For more information, please see
14 	  Documentation/dev-tools/kunit/.
15 
16 if KUNIT
17 
18 config KUNIT_DEBUGFS
19 	bool "KUnit - Enable /sys/kernel/debug/kunit debugfs representation" if !KUNIT_ALL_TESTS
20 	default KUNIT_ALL_TESTS
21 	help
22 	  Enable debugfs representation for kunit.  Currently this consists
23 	  of /sys/kernel/debug/kunit/<test_suite>/results files for each
24 	  test suite, which allow users to see results of the last test suite
25 	  run that occurred.
26 
27 config KUNIT_FAULT_TEST
28 	bool "Enable KUnit tests which print BUG stacktraces"
29 	depends on KUNIT_TEST
30 	depends on !UML
31 	default y
32 	help
33 	  Enables fault handling tests for the KUnit framework. These tests may
34 	  trigger a kernel BUG(), and the associated stack trace, even when they
35 	  pass. If this conflicts with your test infrastrcture (or is confusing
36 	  or annoying), they can be disabled by setting this to N.
37 
38 config KUNIT_TEST
39 	tristate "KUnit test for KUnit" if !KUNIT_ALL_TESTS
40 	default KUNIT_ALL_TESTS
41 	help
42 	  Enables the unit tests for the KUnit test framework. These tests test
43 	  the KUnit test framework itself; the tests are both written using
44 	  KUnit and test KUnit. This option should only be enabled for testing
45 	  purposes by developers interested in testing that KUnit works as
46 	  expected.
47 
48 config KUNIT_EXAMPLE_TEST
49 	tristate "Example test for KUnit" if !KUNIT_ALL_TESTS
50 	default KUNIT_ALL_TESTS
51 	help
52 	  Enables an example unit test that illustrates some of the basic
53 	  features of KUnit. This test only exists to help new users understand
54 	  what KUnit is and how it is used. Please refer to the example test
55 	  itself, lib/kunit/example-test.c, for more information. This option
56 	  is intended for curious hackers who would like to understand how to
57 	  use KUnit for kernel development.
58 
59 config KUNIT_ALL_TESTS
60 	tristate "All KUnit tests with satisfied dependencies"
61 	help
62 	  Enables all KUnit tests, if they can be enabled.
63 	  KUnit tests run during boot and output the results to the debug log
64 	  in TAP format (http://testanything.org/). Only useful for kernel devs
65 	  running the KUnit test harness, and not intended for inclusion into a
66 	  production build.
67 
68 	  For more information on KUnit and unit tests in general please refer
69 	  to the KUnit documentation in Documentation/dev-tools/kunit/.
70 
71 	  If unsure, say N.
72 
73 config KUNIT_DEFAULT_ENABLED
74 	bool "Default value of kunit.enable"
75 	default y
76 	help
77 	  Sets the default value of kunit.enable. If set to N then KUnit
78 	  tests will not execute unless kunit.enable=1 is passed to the
79 	  kernel command line.
80 
81 	  In most cases this should be left as Y. Only if additional opt-in
82 	  behavior is needed should this be set to N.
83 
84 endif # KUNIT
85