blob: 9cd85a5e40cee85ee48c387767388f6a625ac668 [file] [log] [blame]
Jianliang Shen710cb952022-10-08 11:32:35 +08001#-------------------------------------------------------------------------------
Jianliang Shenf57c6a72023-02-20 14:04:38 +08002# Copyright (c) 2022-2023, Arm Limited. All rights reserved.
Jianliang Shen710cb952022-10-08 11:32:35 +08003#
4# SPDX-License-Identifier: BSD-3-Clause
5#
6#-------------------------------------------------------------------------------
7
8menu "TF-M regression tests"
9
Jianliang Shenf57c6a72023-02-20 14:04:38 +080010################################# Bootloader test ##############################
11
12config TEST_BL1_1
13 bool "BL1_1 tests"
14 default n
15 depends on BL1
16
17config TEST_BL1_2
18 bool "BL1_2 tests"
19 default n
20 depends on BL1
21
22config TEST_BL2
23 bool "BL2 tests"
24 default n
25 depends on BL2
26
27################################# Regression test ##############################
28
Jianliang Shend892fb42023-02-20 14:53:05 +080029config TFM_S_REG_TEST
30 bool
31 default y if EXTRA_S_TEST_SUITE_PATH != ""
32 default n
33 help
34 By default all secure regression tests are disabled.
35 If TEST_S or TEST_S_XXX flag is passed via command line
36 and set to ON, selected corresponding features to support
37 secure regression tests.
38
39 TFM_S_REG_TEST is a TF-M internal cmake flag to manage building
40 tf-m-tests secure regression tests related source
41
42config TFM_NS_REG_TEST
43 bool
44 default y if EXTRA_NS_TEST_SUITE_PATH != ""
45 default n
46 help
47 By default all non-secure regression tests are disabled.
48 If TEST_NS or TEST_NS_XXX flag is passed via command line
49 and set to ON, selected corresponding features to support
50 non-secure regression tests.
51
52 TFM_NS_REG_TEST is a TF-M internal cmake flag to manage building
53 tf-m-tests non-secure regression tests related source
54
55################################# Test partition ###############################
56
57config TFM_PARTITION_IPC_TEST
58 def_bool n
59
60config TFM_PARTITION_SFN_BACKEND_TEST
61 def_bool n
62
63config TEST_PARTITION_FPU_TEST
64 def_bool n
65
66################################# Main switch ##################################
67
Jianliang Shen710cb952022-10-08 11:32:35 +080068config TEST_S
69 bool "Enable default secure test cases"
70 default n
Jianliang Shend892fb42023-02-20 14:53:05 +080071 select TFM_S_REG_TEST
Jianliang Shen710cb952022-10-08 11:32:35 +080072 imply TEST_S_ATTESTATION
73 imply TEST_S_CRYPTO
74 imply TEST_S_ITS
75 imply TEST_S_PS
76 imply TEST_S_PLATFORM
77 imply TEST_S_FWU
Jianliang Shend892fb42023-02-20 14:53:05 +080078 imply TEST_S_IPC
Jianliang Shen710cb952022-10-08 11:32:35 +080079 imply TEST_S_SFN_BACKEND
80
81config TEST_NS
82 bool "Enable default non-secure test cases"
Jianliang Shen710cb952022-10-08 11:32:35 +080083 default n
Jianliang Shend892fb42023-02-20 14:53:05 +080084 select TFM_NS_REG_TEST
Jianliang Shen710cb952022-10-08 11:32:35 +080085 imply TEST_NS_ATTESTATION
86 imply TEST_NS_T_COSE
87 imply TEST_NS_QCBOR
88 imply TEST_NS_CRYPTO
89 imply TEST_NS_PS
90 imply TEST_NS_ITS
91 imply TEST_NS_PLATFORM
92 imply TEST_NS_FWU
93 imply TEST_NS_MULTI_CORE
94 imply TEST_NS_MANAGE_NSID
95 imply TEST_NS_IPC
96 imply TEST_NS_SFN_BACKEND
97
98################################# Secure test ##################################
99
100menu "Secure regression tests"
101
102config TEST_S_ATTESTATION
103 bool "Attestation"
Jianliang Shen2b24f252022-11-25 11:08:54 +0800104 default n
105 imply TFM_PARTITION_INITIAL_ATTESTATION
106 imply TFM_PARTITION_INTERNAL_TRUSTED_STORAGE
107 imply TFM_PARTITION_CRYPTO
Jianliang Shend892fb42023-02-20 14:53:05 +0800108 select TFM_S_REG_TEST
Jianliang Shen710cb952022-10-08 11:32:35 +0800109
110config TEST_S_CRYPTO
111 bool "Crypto"
Jianliang Shen2b24f252022-11-25 11:08:54 +0800112 default n
113 imply TFM_PARTITION_CRYPTO
114 imply TFM_PARTITION_INTERNAL_TRUSTED_STORAGE
Jianliang Shend892fb42023-02-20 14:53:05 +0800115 select TFM_S_REG_TEST
Jianliang Shen710cb952022-10-08 11:32:35 +0800116
117config TEST_S_ITS
118 bool "ITS"
Jianliang Shen2b24f252022-11-25 11:08:54 +0800119 default n
120 imply TFM_PARTITION_INTERNAL_TRUSTED_STORAGE
Jianliang Shend892fb42023-02-20 14:53:05 +0800121 select TFM_S_REG_TEST
Jianliang Shen710cb952022-10-08 11:32:35 +0800122
123config TEST_S_PS
124 bool "PS"
Jianliang Shen2b24f252022-11-25 11:08:54 +0800125 default n
126 imply TFM_PARTITION_PROTECTED_STORAGE
127 imply TFM_PARTITION_INTERNAL_TRUSTED_STORAGE
128 imply TFM_PARTITION_CRYPTO
129 imply TFM_PARTITION_PLATFORM
Jianliang Shend892fb42023-02-20 14:53:05 +0800130 select TFM_S_REG_TEST
Jianliang Shen2b24f252022-11-25 11:08:54 +0800131
Jianliang Shen710cb952022-10-08 11:32:35 +0800132config TEST_S_PLATFORM
133 bool "Platform"
Jianliang Shen2b24f252022-11-25 11:08:54 +0800134 default n
135 imply TFM_PARTITION_PLATFORM
Jianliang Shend892fb42023-02-20 14:53:05 +0800136 select TFM_S_REG_TEST
Jianliang Shen710cb952022-10-08 11:32:35 +0800137
138config TEST_S_FWU
139 bool "FWU"
Jianliang Shendfddc982022-11-29 15:08:19 +0800140 depends on PLATFORM_HAS_FIRMWARE_UPDATE_SUPPORT
Jianliang Shen2b24f252022-11-25 11:08:54 +0800141 imply TFM_PARTITION_FIRMWARE_UPDATE
Jianliang Shendfddc982022-11-29 15:08:19 +0800142 imply TFM_PARTITION_CRYPTO
143 imply TFM_PARTITION_INTERNAL_TRUSTED_STORAGE
144 imply TFM_PARTITION_PLATFORM
Jianliang Shend892fb42023-02-20 14:53:05 +0800145 select TFM_S_REG_TEST
Jianliang Shen710cb952022-10-08 11:32:35 +0800146
147config TEST_S_IPC
148 bool "IPC"
Kevin Peng6727c042023-02-03 10:52:19 +0800149 depends on CONFIG_TFM_SPM_BACKEND_IPC
Jianliang Shend892fb42023-02-20 14:53:05 +0800150 select TFM_S_REG_TEST
151 select TFM_PARTITION_IPC_TEST
Jianliang Shen710cb952022-10-08 11:32:35 +0800152
153config TEST_S_SFN_BACKEND
154 bool "SFN backend"
Jianliang Shen1229c092023-02-20 14:06:08 +0800155 depends on CONFIG_TFM_SPM_BACKEND_SFN
Jianliang Shend892fb42023-02-20 14:53:05 +0800156 select TFM_S_REG_TEST
157 select TFM_PARTITION_SFN_BACKEND_TEST
Jianliang Shen710cb952022-10-08 11:32:35 +0800158
159config TEST_S_FPU
160 bool "FPU"
Jianliang Shendb114b52023-02-20 14:28:05 +0800161 depends on CONFIG_TFM_ENABLE_FP
Jianliang Shend892fb42023-02-20 14:53:05 +0800162 select TFM_S_REG_TEST
163 select TEST_PARTITION_FPU_TEST
Jianliang Shen710cb952022-10-08 11:32:35 +0800164endmenu
165
166################################# Non-secure test ##############################
167
168menu "Non-Secure regression tests"
Jianliang Shen710cb952022-10-08 11:32:35 +0800169
170config TEST_NS_ATTESTATION
171 bool "Attestation"
Jianliang Shen2b24f252022-11-25 11:08:54 +0800172 default n
173 imply TFM_PARTITION_INITIAL_ATTESTATION
174 imply TFM_PARTITION_INTERNAL_TRUSTED_STORAGE
175 imply TFM_PARTITION_CRYPTO
Jianliang Shend892fb42023-02-20 14:53:05 +0800176 select TFM_NS_REG_TEST
Jianliang Shen710cb952022-10-08 11:32:35 +0800177
178config TEST_NS_T_COSE
179 bool "t_cose"
Jianliang Shen2b24f252022-11-25 11:08:54 +0800180 default n
181 imply TFM_PARTITION_INITIAL_ATTESTATION
Jianliang Shendfddc982022-11-29 15:08:19 +0800182 imply TFM_PARTITION_INTERNAL_TRUSTED_STORAGE
183 imply TFM_PARTITION_CRYPTO
Jianliang Shend892fb42023-02-20 14:53:05 +0800184 select TFM_NS_REG_TEST
Jianliang Shen710cb952022-10-08 11:32:35 +0800185
186config TEST_NS_QCBOR
187 bool "QCBOR"
Jianliang Shen2b24f252022-11-25 11:08:54 +0800188 default n
189 imply TFM_PARTITION_INITIAL_ATTESTATION
Jianliang Shendfddc982022-11-29 15:08:19 +0800190 imply TFM_PARTITION_INTERNAL_TRUSTED_STORAGE
191 imply TFM_PARTITION_CRYPTO
Jianliang Shend892fb42023-02-20 14:53:05 +0800192 select TFM_NS_REG_TEST
Jianliang Shen710cb952022-10-08 11:32:35 +0800193
194config TEST_NS_CRYPTO
195 bool "Crypto"
Jianliang Shen2b24f252022-11-25 11:08:54 +0800196 default n
197 imply TFM_PARTITION_CRYPTO
198 imply TFM_PARTITION_INTERNAL_TRUSTED_STORAGE
Jianliang Shend892fb42023-02-20 14:53:05 +0800199 select TFM_NS_REG_TEST
Jianliang Shen710cb952022-10-08 11:32:35 +0800200
201config TEST_NS_PS
202 bool "PS"
Jianliang Shen2b24f252022-11-25 11:08:54 +0800203 default n
204 imply TFM_PARTITION_PROTECTED_STORAGE
205 imply TFM_PARTITION_INTERNAL_TRUSTED_STORAGE
206 imply TFM_PARTITION_CRYPTO
207 imply TFM_PARTITION_PLATFORM
208 imply TEST_NS_ITS
Jianliang Shend892fb42023-02-20 14:53:05 +0800209 select TFM_NS_REG_TEST
Jianliang Shen710cb952022-10-08 11:32:35 +0800210
211config TEST_NS_ITS
212 bool "ITS"
Jianliang Shen2b24f252022-11-25 11:08:54 +0800213 default n
214 imply TFM_PARTITION_INTERNAL_TRUSTED_STORAGE
Jianliang Shend892fb42023-02-20 14:53:05 +0800215 select TFM_NS_REG_TEST
Jianliang Shen710cb952022-10-08 11:32:35 +0800216
217config TEST_NS_PLATFORM
218 bool "Platform"
Jianliang Shen2b24f252022-11-25 11:08:54 +0800219 default n
220 imply TFM_PARTITION_PLATFORM
Jianliang Shend892fb42023-02-20 14:53:05 +0800221 select TFM_NS_REG_TEST
Jianliang Shen710cb952022-10-08 11:32:35 +0800222
223config TEST_NS_FWU
224 bool "FWU"
Jianliang Shendfddc982022-11-29 15:08:19 +0800225 depends on PLATFORM_HAS_FIRMWARE_UPDATE_SUPPORT
Jianliang Shen2b24f252022-11-25 11:08:54 +0800226 imply TFM_PARTITION_FIRMWARE_UPDATE
Jianliang Shendfddc982022-11-29 15:08:19 +0800227 imply TFM_PARTITION_CRYPTO
228 imply TFM_PARTITION_INTERNAL_TRUSTED_STORAGE
229 imply TFM_PARTITION_PLATFORM
Jianliang Shend892fb42023-02-20 14:53:05 +0800230 select TFM_NS_REG_TEST
Jianliang Shen710cb952022-10-08 11:32:35 +0800231
232config TEST_NS_MULTI_CORE
233 bool "Multi-core"
234 depends on TFM_MULTI_CORE_TOPOLOGY
Jianliang Shend892fb42023-02-20 14:53:05 +0800235 select TFM_NS_REG_TEST
Jianliang Shen710cb952022-10-08 11:32:35 +0800236
237config TEST_NS_MANAGE_NSID
238 bool "NSID management"
Jianliang Shend892fb42023-02-20 14:53:05 +0800239 depends on TFM_NS_MANAGE_NSID
Jianliang Shend892fb42023-02-20 14:53:05 +0800240 select TFM_NS_REG_TEST
Jianliang Shen710cb952022-10-08 11:32:35 +0800241
242choice TEST_NS_IRQ
243 prompt "IRQ test type"
Jianliang Shend892fb42023-02-20 14:53:05 +0800244 depends on PLATFORM_FLIH_IRQ_TEST_SUPPORT || PLATFORM_SLIH_IRQ_TEST_SUPPORT
Jianliang Shendfddc982022-11-29 15:08:19 +0800245 optional
Jianliang Shen710cb952022-10-08 11:32:35 +0800246
Jianliang Shen710cb952022-10-08 11:32:35 +0800247 config TEST_NS_FLIH_IRQ
248 bool "First-Level Interrupt Handling"
Jianliang Shend892fb42023-02-20 14:53:05 +0800249 depends on PLATFORM_FLIH_IRQ_TEST_SUPPORT
Jianliang Shend892fb42023-02-20 14:53:05 +0800250 select TFM_NS_REG_TEST
Jianliang Shen710cb952022-10-08 11:32:35 +0800251
252 config TEST_NS_SLIH_IRQ
253 bool "Second-Level Interrupt Handling"
Jianliang Shend892fb42023-02-20 14:53:05 +0800254 depends on PLATFORM_SLIH_IRQ_TEST_SUPPORT
Jianliang Shend892fb42023-02-20 14:53:05 +0800255 select TFM_NS_REG_TEST
Jianliang Shen710cb952022-10-08 11:32:35 +0800256
257endchoice
258
259config TEST_NS_FPU
260 bool "FPU"
Jianliang Shendb114b52023-02-20 14:28:05 +0800261 depends on CONFIG_TFM_ENABLE_FP
Jianliang Shend892fb42023-02-20 14:53:05 +0800262 select TFM_NS_REG_TEST
263 select TEST_PARTITION_FPU_TEST
Jianliang Shen710cb952022-10-08 11:32:35 +0800264
265config TEST_NS_IPC
266 bool "IPC"
Kevin Peng6727c042023-02-03 10:52:19 +0800267 depends on CONFIG_TFM_SPM_BACKEND_IPC
Jianliang Shend892fb42023-02-20 14:53:05 +0800268 select TFM_NS_REG_TEST
269 select TFM_PARTITION_IPC_TEST
Jianliang Shen710cb952022-10-08 11:32:35 +0800270
271config TEST_NS_SFN_BACKEND
272 bool "SFN backend"
Jianliang Shen1229c092023-02-20 14:06:08 +0800273 depends on CONFIG_TFM_SPM_BACKEND_SFN
Jianliang Shend892fb42023-02-20 14:53:05 +0800274 select TFM_NS_REG_TEST
275 select TFM_PARTITION_SFN_BACKEND_TEST
Jianliang Shen710cb952022-10-08 11:32:35 +0800276
277endmenu
278
279################################# Crypto tests #################################
280
Jianliang Shen710cb952022-10-08 11:32:35 +0800281menu "Crypto Test Configs"
Jianliang Shend892fb42023-02-20 14:53:05 +0800282 visible if TEST_NS_CRYPTO || TEST_S_CRYPTO
Jianliang Shen710cb952022-10-08 11:32:35 +0800283
284config TFM_CRYPTO_TEST_ALG_CBC
285 bool "Test CBC cryptography mode"
286 default y
287
288config TFM_CRYPTO_TEST_ALG_CCM
289 bool "Test CCM cryptography mode"
290 default y
291
292config TFM_CRYPTO_TEST_ALG_CFB
293 bool "Test CFB cryptography mode"
294 default y
295
296config TFM_CRYPTO_TEST_ALG_ECB
297 bool "Test ECB cryptography mode"
298 default y
299
300config TFM_CRYPTO_TEST_ALG_CTR
301 bool "Test CTR cryptography mode"
302 default y
303
304config TFM_CRYPTO_TEST_ALG_OFB
305 bool "Test OFB cryptography mode"
306 default y
307
308config TFM_CRYPTO_TEST_ALG_GCM
309 bool "Test GCM cryptography mode"
310 default y
311
312config TFM_CRYPTO_TEST_ALG_SHA_384
313 bool "Test SHA-384 cryptography algorithm"
314 default y
315
316config TFM_CRYPTO_TEST_ALG_SHA_512
317 bool "Test SHA-512 cryptography algorithm"
318 default y
319
320config TFM_CRYPTO_TEST_HKDF
321 bool "Test the HKDF key derivation algorithm"
322 default y
323
324config TFM_CRYPTO_TEST_ECDH
325 bool "Test the ECDH key agreement algorithm"
326 default y
327
328config TFM_CRYPTO_TEST_CHACHA20
329 bool "Test the ChaCha20 stream cipher"
330 default n
331
332config TFM_CRYPTO_TEST_ALG_CHACHA20_POLY1305
333 bool "Test ChaCha20-Poly1305 AEAD algorithm"
334 default n
335
Jianliang Shend892fb42023-02-20 14:53:05 +0800336config TFM_CRYPTO_TEST_ALG_RSASSA_PSS_VERIFICATION
337 bool "Test RSASSA-PSS signature verification algorithm"
338 default y
339
Jianliang Shen710cb952022-10-08 11:32:35 +0800340config TFM_CRYPTO_TEST_SINGLE_PART_FUNCS
341 bool "Test single-part operations in hash, MAC, AEAD and symmetric ciphers"
342 default y
343
344endmenu
Jianliang Shend892fb42023-02-20 14:53:05 +0800345
346################################# FWU tests ####################################
347
348if TEST_NS_FWU || TEST_S_FWU
349
350menu "FWU Test Configs"
351
352config TFM_FWU_TEST_REQUEST_REBOOT
353 bool "Test psa_fwu_request_reboot"
354 default n
355
356config TFM_FWU_TEST_WRITE_WITH_NULL
357 bool "Test psa_fwu_write with data block NULL"
358 default n
359
360config TFM_FWU_TEST_QUERY_WITH_NULL
361 bool "Test psa_fwu_query with info NULL"
362 default n
363
364endmenu
Jianliang Shen710cb952022-10-08 11:32:35 +0800365endif
Jianliang Shend892fb42023-02-20 14:53:05 +0800366
367################################# Extra tests ##################################
368
369menu "Extra tests"
370
371config EXTRA_S_TEST_SUITE_PATH
372 string "Secure extra test suite"
373 default ""
374 help
375 An extra test suite folder contains source code, CMakeLists.txt and cmake
376 configuration file
377
378config EXTRA_NS_TEST_SUITE_PATH
379 string "Non-secure extra test suite"
380 default ""
381 help
382 An extra test suite folder contains source code, CMakeLists.txt and cmake
383 configuration file
384
385endmenu
386
Jianliang Shen710cb952022-10-08 11:32:35 +0800387endmenu