blob: 8d2b51ede69c18e65047bc54677b691f9ae0fd87 [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 TEST_FRAMEWORK_S
30 bool
31 default y if EXTRA_S_TEST_SUITE_PATH != ""
32 default n
33 help
34 Whether to build S regression tests framework
35
36config TEST_FRAMEWORK_NS
37 bool
38 depends on NS
39 default y if EXTRA_NS_TEST_SUITE_PATH != ""
40 default n
41 help
42 Whether to build NS regression tests framework
43
44config TFM_S_REG_TEST
45 bool
46 default y if EXTRA_S_TEST_SUITE_PATH != ""
47 default n
48 help
49 By default all secure regression tests are disabled.
50 If TEST_S or TEST_S_XXX flag is passed via command line
51 and set to ON, selected corresponding features to support
52 secure regression tests.
53
54 TFM_S_REG_TEST is a TF-M internal cmake flag to manage building
55 tf-m-tests secure regression tests related source
56
57config TFM_NS_REG_TEST
58 bool
59 default y if EXTRA_NS_TEST_SUITE_PATH != ""
60 default n
61 help
62 By default all non-secure regression tests are disabled.
63 If TEST_NS or TEST_NS_XXX flag is passed via command line
64 and set to ON, selected corresponding features to support
65 non-secure regression tests.
66
67 TFM_NS_REG_TEST is a TF-M internal cmake flag to manage building
68 tf-m-tests non-secure regression tests related source
69
70################################# Test partition ###############################
71
72config TFM_PARTITION_IPC_TEST
73 def_bool n
74
75config TFM_PARTITION_SFN_BACKEND_TEST
76 def_bool n
77
78config TEST_PARTITION_FPU_TEST
79 def_bool n
80
81################################# Main switch ##################################
82
Jianliang Shen710cb952022-10-08 11:32:35 +080083config TEST_S
84 bool "Enable default secure test cases"
85 default n
Jianliang Shend892fb42023-02-20 14:53:05 +080086 select TEST_FRAMEWORK_S
87 select TFM_S_REG_TEST
Jianliang Shen710cb952022-10-08 11:32:35 +080088 imply TEST_S_ATTESTATION
89 imply TEST_S_CRYPTO
90 imply TEST_S_ITS
91 imply TEST_S_PS
92 imply TEST_S_PLATFORM
93 imply TEST_S_FWU
Jianliang Shend892fb42023-02-20 14:53:05 +080094 imply TEST_S_IPC
Jianliang Shen710cb952022-10-08 11:32:35 +080095 imply TEST_S_SFN_BACKEND
96
97config TEST_NS
98 bool "Enable default non-secure test cases"
Jianliang Shen710cb952022-10-08 11:32:35 +080099 default n
Jianliang Shend892fb42023-02-20 14:53:05 +0800100 imply TEST_FRAMEWORK_NS
101 select TFM_NS_REG_TEST
Jianliang Shen710cb952022-10-08 11:32:35 +0800102 imply TEST_NS_ATTESTATION
103 imply TEST_NS_T_COSE
104 imply TEST_NS_QCBOR
105 imply TEST_NS_CRYPTO
106 imply TEST_NS_PS
107 imply TEST_NS_ITS
108 imply TEST_NS_PLATFORM
109 imply TEST_NS_FWU
110 imply TEST_NS_MULTI_CORE
111 imply TEST_NS_MANAGE_NSID
112 imply TEST_NS_IPC
113 imply TEST_NS_SFN_BACKEND
114
115################################# Secure test ##################################
116
117menu "Secure regression tests"
118
119config TEST_S_ATTESTATION
120 bool "Attestation"
Jianliang Shen2b24f252022-11-25 11:08:54 +0800121 default n
122 imply TFM_PARTITION_INITIAL_ATTESTATION
123 imply TFM_PARTITION_INTERNAL_TRUSTED_STORAGE
124 imply TFM_PARTITION_CRYPTO
Jianliang Shend892fb42023-02-20 14:53:05 +0800125 select TEST_FRAMEWORK_S
126 select TFM_S_REG_TEST
Jianliang Shen710cb952022-10-08 11:32:35 +0800127
128config TEST_S_CRYPTO
129 bool "Crypto"
Jianliang Shen2b24f252022-11-25 11:08:54 +0800130 default n
131 imply TFM_PARTITION_CRYPTO
132 imply TFM_PARTITION_INTERNAL_TRUSTED_STORAGE
Jianliang Shend892fb42023-02-20 14:53:05 +0800133 select TEST_FRAMEWORK_S
134 select TFM_S_REG_TEST
Jianliang Shen710cb952022-10-08 11:32:35 +0800135
136config TEST_S_ITS
137 bool "ITS"
Jianliang Shen2b24f252022-11-25 11:08:54 +0800138 default n
139 imply TFM_PARTITION_INTERNAL_TRUSTED_STORAGE
Jianliang Shend892fb42023-02-20 14:53:05 +0800140 select TEST_FRAMEWORK_S
141 select TFM_S_REG_TEST
Jianliang Shen710cb952022-10-08 11:32:35 +0800142
143config TEST_S_PS
144 bool "PS"
Jianliang Shen2b24f252022-11-25 11:08:54 +0800145 default n
146 imply TFM_PARTITION_PROTECTED_STORAGE
147 imply TFM_PARTITION_INTERNAL_TRUSTED_STORAGE
148 imply TFM_PARTITION_CRYPTO
149 imply TFM_PARTITION_PLATFORM
Jianliang Shend892fb42023-02-20 14:53:05 +0800150 select TEST_FRAMEWORK_S
151 select TFM_S_REG_TEST
Jianliang Shen2b24f252022-11-25 11:08:54 +0800152
Jianliang Shen710cb952022-10-08 11:32:35 +0800153config TEST_S_PLATFORM
154 bool "Platform"
Jianliang Shen2b24f252022-11-25 11:08:54 +0800155 default n
156 imply TFM_PARTITION_PLATFORM
Jianliang Shend892fb42023-02-20 14:53:05 +0800157 select TEST_FRAMEWORK_S
158 select TFM_S_REG_TEST
Jianliang Shen710cb952022-10-08 11:32:35 +0800159
160config TEST_S_FWU
161 bool "FWU"
Jianliang Shendfddc982022-11-29 15:08:19 +0800162 depends on PLATFORM_HAS_FIRMWARE_UPDATE_SUPPORT
Jianliang Shen2b24f252022-11-25 11:08:54 +0800163 imply TFM_PARTITION_FIRMWARE_UPDATE
Jianliang Shendfddc982022-11-29 15:08:19 +0800164 imply TFM_PARTITION_CRYPTO
165 imply TFM_PARTITION_INTERNAL_TRUSTED_STORAGE
166 imply TFM_PARTITION_PLATFORM
Jianliang Shend892fb42023-02-20 14:53:05 +0800167 select TEST_FRAMEWORK_S
168 select TFM_S_REG_TEST
Jianliang Shen710cb952022-10-08 11:32:35 +0800169
170config TEST_S_IPC
171 bool "IPC"
Kevin Peng6727c042023-02-03 10:52:19 +0800172 depends on CONFIG_TFM_SPM_BACKEND_IPC
Jianliang Shend892fb42023-02-20 14:53:05 +0800173 select TEST_FRAMEWORK_S
174 select TFM_S_REG_TEST
175 select TFM_PARTITION_IPC_TEST
Jianliang Shen710cb952022-10-08 11:32:35 +0800176
177config TEST_S_SFN_BACKEND
178 bool "SFN backend"
Jianliang Shen1229c092023-02-20 14:06:08 +0800179 depends on CONFIG_TFM_SPM_BACKEND_SFN
Jianliang Shend892fb42023-02-20 14:53:05 +0800180 select TEST_FRAMEWORK_S
181 select TFM_S_REG_TEST
182 select TFM_PARTITION_SFN_BACKEND_TEST
Jianliang Shen710cb952022-10-08 11:32:35 +0800183
184config TEST_S_FPU
185 bool "FPU"
Jianliang Shendb114b52023-02-20 14:28:05 +0800186 depends on CONFIG_TFM_ENABLE_FP
Jianliang Shend892fb42023-02-20 14:53:05 +0800187 select TEST_FRAMEWORK_S
188 select TFM_S_REG_TEST
189 select TEST_PARTITION_FPU_TEST
Jianliang Shen710cb952022-10-08 11:32:35 +0800190endmenu
191
192################################# Non-secure test ##############################
193
194menu "Non-Secure regression tests"
Jianliang Shen710cb952022-10-08 11:32:35 +0800195
196config TEST_NS_ATTESTATION
197 bool "Attestation"
Jianliang Shen2b24f252022-11-25 11:08:54 +0800198 default n
199 imply TFM_PARTITION_INITIAL_ATTESTATION
200 imply TFM_PARTITION_INTERNAL_TRUSTED_STORAGE
201 imply TFM_PARTITION_CRYPTO
Jianliang Shend892fb42023-02-20 14:53:05 +0800202 imply TEST_FRAMEWORK_NS
203 select TFM_NS_REG_TEST
Jianliang Shen710cb952022-10-08 11:32:35 +0800204
205config TEST_NS_T_COSE
206 bool "t_cose"
Jianliang Shen2b24f252022-11-25 11:08:54 +0800207 default n
208 imply TFM_PARTITION_INITIAL_ATTESTATION
Jianliang Shendfddc982022-11-29 15:08:19 +0800209 imply TFM_PARTITION_INTERNAL_TRUSTED_STORAGE
210 imply TFM_PARTITION_CRYPTO
Jianliang Shend892fb42023-02-20 14:53:05 +0800211 imply TEST_FRAMEWORK_NS
212 select TFM_NS_REG_TEST
Jianliang Shen710cb952022-10-08 11:32:35 +0800213
214config TEST_NS_QCBOR
215 bool "QCBOR"
Jianliang Shen2b24f252022-11-25 11:08:54 +0800216 default n
217 imply TFM_PARTITION_INITIAL_ATTESTATION
Jianliang Shendfddc982022-11-29 15:08:19 +0800218 imply TFM_PARTITION_INTERNAL_TRUSTED_STORAGE
219 imply TFM_PARTITION_CRYPTO
Jianliang Shend892fb42023-02-20 14:53:05 +0800220 imply TEST_FRAMEWORK_NS
221 select TFM_NS_REG_TEST
Jianliang Shen710cb952022-10-08 11:32:35 +0800222
223config TEST_NS_CRYPTO
224 bool "Crypto"
Jianliang Shen2b24f252022-11-25 11:08:54 +0800225 default n
226 imply TFM_PARTITION_CRYPTO
227 imply TFM_PARTITION_INTERNAL_TRUSTED_STORAGE
Jianliang Shend892fb42023-02-20 14:53:05 +0800228 imply TEST_FRAMEWORK_NS
229 select TFM_NS_REG_TEST
Jianliang Shen710cb952022-10-08 11:32:35 +0800230
231config TEST_NS_PS
232 bool "PS"
Jianliang Shen2b24f252022-11-25 11:08:54 +0800233 default n
234 imply TFM_PARTITION_PROTECTED_STORAGE
235 imply TFM_PARTITION_INTERNAL_TRUSTED_STORAGE
236 imply TFM_PARTITION_CRYPTO
237 imply TFM_PARTITION_PLATFORM
238 imply TEST_NS_ITS
Jianliang Shend892fb42023-02-20 14:53:05 +0800239 imply TEST_FRAMEWORK_NS
240 select TFM_NS_REG_TEST
Jianliang Shen710cb952022-10-08 11:32:35 +0800241
242config TEST_NS_ITS
243 bool "ITS"
Jianliang Shen2b24f252022-11-25 11:08:54 +0800244 default n
245 imply TFM_PARTITION_INTERNAL_TRUSTED_STORAGE
Jianliang Shend892fb42023-02-20 14:53:05 +0800246 imply TEST_FRAMEWORK_NS
247 select TFM_NS_REG_TEST
Jianliang Shen710cb952022-10-08 11:32:35 +0800248
249config TEST_NS_PLATFORM
250 bool "Platform"
Jianliang Shen2b24f252022-11-25 11:08:54 +0800251 default n
252 imply TFM_PARTITION_PLATFORM
Jianliang Shend892fb42023-02-20 14:53:05 +0800253 imply TEST_FRAMEWORK_NS
254 select TFM_NS_REG_TEST
Jianliang Shen710cb952022-10-08 11:32:35 +0800255
256config TEST_NS_FWU
257 bool "FWU"
Jianliang Shendfddc982022-11-29 15:08:19 +0800258 depends on PLATFORM_HAS_FIRMWARE_UPDATE_SUPPORT
Jianliang Shen2b24f252022-11-25 11:08:54 +0800259 imply TFM_PARTITION_FIRMWARE_UPDATE
Jianliang Shendfddc982022-11-29 15:08:19 +0800260 imply TFM_PARTITION_CRYPTO
261 imply TFM_PARTITION_INTERNAL_TRUSTED_STORAGE
262 imply TFM_PARTITION_PLATFORM
Jianliang Shend892fb42023-02-20 14:53:05 +0800263 imply TEST_FRAMEWORK_NS
264 select TFM_NS_REG_TEST
Jianliang Shen710cb952022-10-08 11:32:35 +0800265
266config TEST_NS_MULTI_CORE
267 bool "Multi-core"
268 depends on TFM_MULTI_CORE_TOPOLOGY
Jianliang Shend892fb42023-02-20 14:53:05 +0800269 imply TEST_FRAMEWORK_NS
270 select TFM_NS_REG_TEST
Jianliang Shen710cb952022-10-08 11:32:35 +0800271
272config TEST_NS_MANAGE_NSID
273 bool "NSID management"
Jianliang Shend892fb42023-02-20 14:53:05 +0800274 depends on TFM_NS_MANAGE_NSID
275 imply TEST_FRAMEWORK_NS
276 select TFM_NS_REG_TEST
Jianliang Shen710cb952022-10-08 11:32:35 +0800277
278choice TEST_NS_IRQ
279 prompt "IRQ test type"
Jianliang Shend892fb42023-02-20 14:53:05 +0800280 depends on PLATFORM_FLIH_IRQ_TEST_SUPPORT || PLATFORM_SLIH_IRQ_TEST_SUPPORT
Jianliang Shendfddc982022-11-29 15:08:19 +0800281 optional
Jianliang Shen710cb952022-10-08 11:32:35 +0800282
Jianliang Shen710cb952022-10-08 11:32:35 +0800283 config TEST_NS_FLIH_IRQ
284 bool "First-Level Interrupt Handling"
Jianliang Shend892fb42023-02-20 14:53:05 +0800285 depends on PLATFORM_FLIH_IRQ_TEST_SUPPORT
286 imply TEST_FRAMEWORK_NS
287 select TFM_NS_REG_TEST
Jianliang Shen710cb952022-10-08 11:32:35 +0800288
289 config TEST_NS_SLIH_IRQ
290 bool "Second-Level Interrupt Handling"
Jianliang Shend892fb42023-02-20 14:53:05 +0800291 depends on PLATFORM_SLIH_IRQ_TEST_SUPPORT
292 imply TEST_FRAMEWORK_NS
293 select TFM_NS_REG_TEST
Jianliang Shen710cb952022-10-08 11:32:35 +0800294
295endchoice
296
297config TEST_NS_FPU
298 bool "FPU"
Jianliang Shendb114b52023-02-20 14:28:05 +0800299 depends on CONFIG_TFM_ENABLE_FP
Jianliang Shend892fb42023-02-20 14:53:05 +0800300 imply TEST_FRAMEWORK_NS
301 select TFM_NS_REG_TEST
302 select TEST_PARTITION_FPU_TEST
Jianliang Shen710cb952022-10-08 11:32:35 +0800303
304config TEST_NS_IPC
305 bool "IPC"
Kevin Peng6727c042023-02-03 10:52:19 +0800306 depends on CONFIG_TFM_SPM_BACKEND_IPC
Jianliang Shend892fb42023-02-20 14:53:05 +0800307 imply TEST_FRAMEWORK_NS
308 select TFM_NS_REG_TEST
309 select TFM_PARTITION_IPC_TEST
Jianliang Shen710cb952022-10-08 11:32:35 +0800310
311config TEST_NS_SFN_BACKEND
312 bool "SFN backend"
Jianliang Shen1229c092023-02-20 14:06:08 +0800313 depends on CONFIG_TFM_SPM_BACKEND_SFN
Jianliang Shend892fb42023-02-20 14:53:05 +0800314 imply TEST_FRAMEWORK_NS
315 select TFM_NS_REG_TEST
316 select TFM_PARTITION_SFN_BACKEND_TEST
Jianliang Shen710cb952022-10-08 11:32:35 +0800317
318endmenu
319
320################################# Crypto tests #################################
321
Jianliang Shen710cb952022-10-08 11:32:35 +0800322menu "Crypto Test Configs"
Jianliang Shend892fb42023-02-20 14:53:05 +0800323 visible if TEST_NS_CRYPTO || TEST_S_CRYPTO
Jianliang Shen710cb952022-10-08 11:32:35 +0800324
325config TFM_CRYPTO_TEST_ALG_CBC
326 bool "Test CBC cryptography mode"
327 default y
328
329config TFM_CRYPTO_TEST_ALG_CCM
330 bool "Test CCM cryptography mode"
331 default y
332
333config TFM_CRYPTO_TEST_ALG_CFB
334 bool "Test CFB cryptography mode"
335 default y
336
337config TFM_CRYPTO_TEST_ALG_ECB
338 bool "Test ECB cryptography mode"
339 default y
340
341config TFM_CRYPTO_TEST_ALG_CTR
342 bool "Test CTR cryptography mode"
343 default y
344
345config TFM_CRYPTO_TEST_ALG_OFB
346 bool "Test OFB cryptography mode"
347 default y
348
349config TFM_CRYPTO_TEST_ALG_GCM
350 bool "Test GCM cryptography mode"
351 default y
352
353config TFM_CRYPTO_TEST_ALG_SHA_384
354 bool "Test SHA-384 cryptography algorithm"
355 default y
356
357config TFM_CRYPTO_TEST_ALG_SHA_512
358 bool "Test SHA-512 cryptography algorithm"
359 default y
360
361config TFM_CRYPTO_TEST_HKDF
362 bool "Test the HKDF key derivation algorithm"
363 default y
364
365config TFM_CRYPTO_TEST_ECDH
366 bool "Test the ECDH key agreement algorithm"
367 default y
368
369config TFM_CRYPTO_TEST_CHACHA20
370 bool "Test the ChaCha20 stream cipher"
371 default n
372
373config TFM_CRYPTO_TEST_ALG_CHACHA20_POLY1305
374 bool "Test ChaCha20-Poly1305 AEAD algorithm"
375 default n
376
Jianliang Shend892fb42023-02-20 14:53:05 +0800377config TFM_CRYPTO_TEST_ALG_RSASSA_PSS_VERIFICATION
378 bool "Test RSASSA-PSS signature verification algorithm"
379 default y
380
Jianliang Shen710cb952022-10-08 11:32:35 +0800381config TFM_CRYPTO_TEST_SINGLE_PART_FUNCS
382 bool "Test single-part operations in hash, MAC, AEAD and symmetric ciphers"
383 default y
384
385endmenu
Jianliang Shend892fb42023-02-20 14:53:05 +0800386
387################################# FWU tests ####################################
388
389if TEST_NS_FWU || TEST_S_FWU
390
391menu "FWU Test Configs"
392
393config TFM_FWU_TEST_REQUEST_REBOOT
394 bool "Test psa_fwu_request_reboot"
395 default n
396
397config TFM_FWU_TEST_WRITE_WITH_NULL
398 bool "Test psa_fwu_write with data block NULL"
399 default n
400
401config TFM_FWU_TEST_QUERY_WITH_NULL
402 bool "Test psa_fwu_query with info NULL"
403 default n
404
405endmenu
Jianliang Shen710cb952022-10-08 11:32:35 +0800406endif
Jianliang Shend892fb42023-02-20 14:53:05 +0800407
408################################# Extra tests ##################################
409
410menu "Extra tests"
411
412config EXTRA_S_TEST_SUITE_PATH
413 string "Secure extra test suite"
414 default ""
415 help
416 An extra test suite folder contains source code, CMakeLists.txt and cmake
417 configuration file
418
419config EXTRA_NS_TEST_SUITE_PATH
420 string "Non-secure extra test suite"
421 default ""
422 help
423 An extra test suite folder contains source code, CMakeLists.txt and cmake
424 configuration file
425
426endmenu
427
Jianliang Shen710cb952022-10-08 11:32:35 +0800428endmenu