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
23config UT_LIB
24	bool "Unit tests for library functions"
25	depends on UNIT_TEST
26	default y if !SANDBOX_VPL
27	help
28	  Enables the 'ut lib' command which tests library functions like
29	  memcat(), memcyp(), memmove() and ASN1 compiler/decoder.
30
31if UT_LIB
32
33config UT_LIB_ASN1
34	bool "Unit test for asn1 compiler and decoder function"
35	depends on SANDBOX
36	default y
37	imply ASYMMETRIC_KEY_TYPE
38	imply ASYMMETRIC_PUBLIC_KEY_SUBTYPE
39	imply X509_CERTIFICATE_PARSER
40	imply PKCS7_MESSAGE_PARSER
41	imply RSA_PUBLIC_KEY_PARSER
42	help
43	  Enables a test which exercises asn1 compiler and decoder function
44	  via various parsers.
45
46config UT_LIB_CRYPT
47	bool "Unit test for crypt-style password hashing"
48	depends on !SPL && AUTOBOOT_KEYED && AUTOBOOT_ENCRYPTION
49	default y
50	select CRYPT_PW
51	select CRYPT_PW_SHA256
52	select CRYPT_PW_SHA512
53	help
54	  Enables a test for the crypt-style password hash functions.
55
56config UT_LIB_RSA
57	bool "Unit test for rsa_verify() function"
58	depends on RSA
59	depends on RSA_VERIFY_WITH_PKEY
60	select IMAGE_SIGN_INFO
61	default y
62	help
63	  Enables rsa_verify() test, currently rsa_verify_with_pkey only()
64	  only, at the 'ut lib' command.
65
66endif
67
68config UT_BOOTSTD
69	bool "Unit tests for standard boot"
70	depends on UNIT_TEST && BOOTSTD && SANDBOX
71	default y
72
73config UT_COMPRESSION
74	bool "Unit test for compression"
75	depends on UNIT_TEST
76	depends on CMDLINE && GZIP_COMPRESSED && BZIP2 && LZMA && LZO && LZ4 && ZSTD
77	default y
78	help
79	  Enables tests for compression and decompression routines for simple
80	  sanity and for buffer overflow conditions.
81
82config UT_LOG
83	bool "Unit tests for logging functions"
84	depends on UNIT_TEST
85	default y
86	help
87	  Enables the 'ut log' command which tests logging functions like
88	  log_err().
89	  See also CONFIG_LOG_TEST which provides the 'log test' command.
90
91config UT_TIME
92	bool "Unit tests for time functions"
93	depends on UNIT_TEST
94	help
95	  Enables the 'ut time' command which tests that the time functions
96	  work correctly. The test is fairly simple and will not catch all
97	  problems. But if you are having problems with udelay() and the like,
98	  this is a good place to start.
99
100config UT_UNICODE
101	bool "Unit tests for Unicode functions"
102	depends on UNIT_TEST
103	default y
104	select CHARSET
105	help
106	  Enables the 'ut unicode' command which tests that the functions for
107	  manipulating Unicode strings work correctly.
108
109source "test/dm/Kconfig"
110source "test/env/Kconfig"
111source "test/image/Kconfig"
112source "test/lib/Kconfig"
113source "test/optee/Kconfig"
114source "test/overlay/Kconfig"
115
116config POST
117	bool "Power On Self Test support"
118	help
119	  See doc/README.POST for more details
120
121endmenu
122