1menu "Testing"
2
3config UNIT_TEST
4	bool "Unit tests"
5	depends on CMDLINE
6	help
7	  Select this to compile in unit tests for various parts of
8	  U-Boot. Test suites will be subcommands of the "ut" command.
9	  This does not require sandbox to be included, but it is most
10	  often used there.
11
12config SPL_UNIT_TEST
13	bool "Unit tests in SPL"
14	depends on SPL
15	# We need to be able to unbind devices for tests to work
16	select SPL_DM_DEVICE_REMOVE
17	help
18	  Select this to enable unit tests in SPL. Most test are designed for
19	  running in U-Boot proper, but some are intended for SPL, such as
20	  of-platdata and SPL handover. To run these tests with the sandbox_spl
21	  board, use the -u (unit test) option.
22
23if UNIT_TEST
24
25config UNIT_TEST_DURATION
26	bool "Report unit-test duration"
27	default y
28	help
29	  Enable this short the time taken by each test suite. This is reported
30	  after the suite runs, alongside the pass/fail results. In addition,
31	  an overall total is reported if multiple suites are run.
32
33config UT_LIB
34	bool "Unit tests for library functions"
35	default y if !SANDBOX_VPL
36	help
37	  Enables the 'ut lib' command which tests library functions like
38	  memcat(), memcyp(), memmove() and ASN1 compiler/decoder.
39
40if UT_LIB
41
42config UT_LIB_ASN1
43	bool "Unit test for asn1 compiler and decoder function"
44	depends on SANDBOX && !MBEDTLS_LIB_X509
45	default y
46	imply ASYMMETRIC_KEY_TYPE
47	imply ASYMMETRIC_PUBLIC_KEY_SUBTYPE
48	imply X509_CERTIFICATE_PARSER
49	imply PKCS7_MESSAGE_PARSER
50	imply RSA_PUBLIC_KEY_PARSER
51	help
52	  Enables a test which exercises asn1 compiler and decoder function
53	  via various parsers.
54
55config UT_LIB_CRYPT
56	bool "Unit test for crypt-style password hashing"
57	depends on !SPL && AUTOBOOT_KEYED && AUTOBOOT_ENCRYPTION
58	default y
59	select CRYPT_PW
60	select CRYPT_PW_SHA256
61	select CRYPT_PW_SHA512
62	help
63	  Enables a test for the crypt-style password hash functions.
64
65config UT_LIB_RSA
66	bool "Unit test for rsa_verify() function"
67	depends on RSA
68	depends on RSA_VERIFY_WITH_PKEY
69	select IMAGE_SIGN_INFO
70	default y
71	help
72	  Enables rsa_verify() test, currently rsa_verify_with_pkey only()
73	  only, at the 'ut lib' command.
74
75endif  # UT_LIB
76
77config UT_BOOTSTD
78	bool "Unit tests for standard boot"
79	depends on BOOTSTD && SANDBOX
80	default y
81
82config UT_COMPRESSION
83	bool "Unit test for compression"
84	depends on CMDLINE && GZIP_COMPRESSED && BZIP2 && LZMA && LZO && LZ4 && ZSTD
85	default y
86	help
87	  Enables tests for compression and decompression routines for simple
88	  sanity and for buffer overflow conditions.
89
90config UT_LOG
91	bool "Unit tests for logging functions"
92	default y
93	help
94	  Enables the 'ut log' command which tests logging functions like
95	  log_err().
96	  See also CONFIG_LOG_TEST which provides the 'log test' command.
97
98config UT_TIME
99	bool "Unit tests for time functions"
100	help
101	  Enables the 'ut time' command which tests that the time functions
102	  work correctly. The test is fairly simple and will not catch all
103	  problems. But if you are having problems with udelay() and the like,
104	  this is a good place to start.
105
106config UT_UNICODE
107	bool "Unit tests for Unicode functions"
108	default y
109	select CHARSET
110	help
111	  Enables the 'ut unicode' command which tests that the functions for
112	  manipulating Unicode strings work correctly.
113
114source "test/dm/Kconfig"
115source "test/env/Kconfig"
116source "test/image/Kconfig"
117source "test/lib/Kconfig"
118source "test/optee/Kconfig"
119source "test/fdt_overlay/Kconfig"
120
121endif  # UNIT_TEST
122
123config POST
124	bool "Power On Self Test support"
125	depends on ARM || PPC
126	help
127	  See doc/README.POST for more details
128
129endmenu
130