blob: e51a6630f2a9f78077517455ab4bf57f3aede1a3 [file] [log] [blame]
David Hu6318d212021-08-23 18:07:57 +08001#-------------------------------------------------------------------------------
Feder Liang7abe9a42021-12-03 17:54:58 +08002# Copyright (c) 2021-2022, Arm Limited. All rights reserved.
David Hu6318d212021-08-23 18:07:57 +08003#
4# SPDX-License-Identifier: BSD-3-Clause
5#
6#-------------------------------------------------------------------------------
7
8########################## TEST SYNC ###########################################
9
10if ((NOT TFM_PARTITION_PROTECTED_STORAGE AND NOT FORWARD_PROT_MSG))
11 set(TEST_NS_PS OFF CACHE BOOL "Whether to build NS regression PS tests")
12 set(TEST_S_PS OFF CACHE BOOL "Whether to build S regression PS tests")
13endif()
14
15if (NOT TFM_PARTITION_INTERNAL_TRUSTED_STORAGE AND NOT FORWARD_PROT_MSG)
16 set(TEST_NS_ITS OFF CACHE BOOL "Whether to build NS regression ITS tests")
17 set(TEST_S_ITS OFF CACHE BOOL "Whether to build S regression ITS tests")
18
19 # TEST_NS_PS relies on TEST_NS_ITS
20 set(TEST_NS_PS OFF CACHE BOOL "Whether to build NS regression PS tests")
21endif()
22
23if (NOT TFM_PARTITION_CRYPTO AND NOT FORWARD_PROT_MSG)
24 set(TEST_NS_CRYPTO OFF CACHE BOOL "Whether to build NS regression Crypto tests")
25 set(TEST_S_CRYPTO OFF CACHE BOOL "Whether to build S regression Crypto tests")
26endif()
27
28if (NOT TFM_PARTITION_INITIAL_ATTESTATION AND NOT FORWARD_PROT_MSG)
29 set(TEST_NS_ATTESTATION OFF CACHE BOOL "Whether to build NS regression Attestation tests")
30 set(TEST_S_ATTESTATION OFF CACHE BOOL "Whether to build S regression Attestation tests")
31 set(TEST_NS_QCBOR OFF CACHE BOOL "Whether to build NS regression QCBOR tests")
32 set(TEST_NS_T_COSE OFF CACHE BOOL "Whether to build NS regression t_cose tests")
33endif()
34
35if (SYMMETRIC_INITIAL_ATTESTATION)
36 set(TEST_NS_T_COSE OFF CACHE BOOL "Whether to build NS regression t_cose tests")
37endif()
38
39if (NOT TFM_PARTITION_PLATFORM AND NOT FORWARD_PROT_MSG)
40 set(TEST_NS_PLATFORM OFF CACHE BOOL "Whether to build NS regression Platform tests")
41 set(TEST_S_PLATFORM OFF CACHE BOOL "Whether to build S regression Platform tests")
42endif()
43
44if (NOT TFM_PARTITION_FIRMWARE_UPDATE)
45 set(TEST_NS_FWU OFF CACHE BOOL "Whether to build NS regression FWU tests")
46 set(TEST_S_FWU OFF CACHE BOOL "Whether to build S regression FWU tests")
47endif()
48
49if (NOT TFM_PARTITION_AUDIT_LOG)
50 set(TEST_NS_AUDIT OFF CACHE BOOL "Whether to build NS regression Audit log tests")
51 set(TEST_S_AUDIT OFF CACHE BOOL "Whether to build S regression Audit log tests")
52endif()
53
Kevin Pengc00020e2021-09-15 13:58:56 +080054if (TFM_LIB_MODEL)
David Hu6318d212021-08-23 18:07:57 +080055 set(TEST_NS_IPC OFF CACHE BOOL "Whether to build NS regression IPC tests")
56 set(TEST_S_IPC OFF CACHE BOOL "Whether to build S regression IPC tests")
57
58 set(TEST_NS_SLIH_IRQ OFF CACHE BOOL "Whether to build NS regression Second-Level Interrupt Handling tests")
59 set(TEST_NS_FLIH_IRQ OFF CACHE BOOL "Whether to build NS regression First-Level Interrupt Handling tests")
Shawn Shanc38167f2022-02-11 17:13:58 +080060elseif(CONFIG_TFM_SPM_BACKEND_SFN)
61 set(TEST_NS_IPC OFF CACHE BOOL "Whether to build NS regression IPC tests")
62 set(TEST_NS_CORE OFF CACHE BOOL "Whether to build NS regression Core tests")
David Hu0a880d32022-02-23 17:08:12 +080063 set(TEST_S_IPC OFF CACHE BOOL "Whether to build S regression IPC tests")
Shawn Shanc38167f2022-02-11 17:13:58 +080064
65 set(TEST_NS_SLIH_IRQ OFF CACHE BOOL "Whether to build NS regression Second-Level Interrupt Handling tests")
66 set(TEST_NS_FLIH_IRQ OFF CACHE BOOL "Whether to build NS regression First-Level Interrupt Handling tests")
David Hu6318d212021-08-23 18:07:57 +080067endif()
68
69if (NOT TFM_MULTI_CORE_TOPOLOGY)
70 set(TEST_NS_MULTI_CORE OFF CACHE BOOL "Whether to build NS regression multi-core tests")
71endif()
72
Xinyu Zhang92fe7582021-09-24 17:11:49 +080073if (NOT TFM_NS_MANAGE_NSID)
74 set(TEST_NS_MANAGE_NSID OFF CACHE BOOL "Whether to build NS regression NSID management tests")
75endif()
76
Feder Liang7abe9a42021-12-03 17:54:58 +080077if (CONFIG_TFM_FP STREQUAL "soft")
78 set(TEST_S_FPU OFF CACHE BOOL "Whether to build S regression FPU tests")
79 set(TEST_NS_FPU OFF CACHE BOOL "Whether to build NS regression FPU tests")
Feder Liangdb53c6b2021-09-07 15:42:09 +080080endif()
81
David Hu6318d212021-08-23 18:07:57 +080082########################## Test framework sync #################################
83
84get_cmake_property(CACHE_VARS CACHE_VARIABLES)
David Hucf299b12021-09-12 16:41:48 +080085
86if (NS)
87 # Force TEST_FRAMEWORK_NS ON if single NS test ON
88 foreach(CACHE_VAR ${CACHE_VARS})
89 string(REGEX MATCH "^TEST_NS_.*" _NS_TEST_FOUND "${CACHE_VAR}")
90 if (_NS_TEST_FOUND AND "${${CACHE_VAR}}")
91 set(TEST_FRAMEWORK_NS ON CACHE BOOL "Whether to build NS regression tests framework")
92 break()
93 endif()
94 endforeach()
95endif()
David Hu6318d212021-08-23 18:07:57 +080096
97# Force TEST_FRAMEWORK_S ON if single S test ON
98foreach(CACHE_VAR ${CACHE_VARS})
99 string(REGEX MATCH "^TEST_S_.*" _S_TEST_FOUND "${CACHE_VAR}")
100 if (_S_TEST_FOUND AND "${${CACHE_VAR}}")
101 set(TEST_FRAMEWORK_S ON CACHE BOOL "Whether to build S regression tests framework")
102 break()
103 endif()
104endforeach()
105
Jianliang Shen2959c1f2021-09-01 10:14:06 +0800106########################## Extra test suites ###################################
107
108if (EXTRA_NS_TEST_SUITES_PATHS)
109 set(TEST_FRAMEWORK_NS ON CACHE BOOL "Whether to build NS regression tests framework")
110endif()
111
112if (EXTRA_S_TEST_SUITES_PATHS)
113 set(TEST_FRAMEWORK_S ON CACHE BOOL "Whether to build S regression tests framework")
114endif()
115
shejia012feb8e92021-06-30 19:41:26 +0800116########################## Test profile ########################################
117
118if (TFM_PROFILE)
119 include(${TFM_TEST_PATH}/config/profile/${TFM_PROFILE}_test.cmake)
120endif()
121
David Hud1cba502021-11-23 14:55:15 +0800122########################## SLIH/FLIH IRQ Test ##################################
123
124# Make FLIH IRQ test as the default IRQ test
David Hu0a880d32022-02-23 17:08:12 +0800125if (CONFIG_TFM_SPM_BACKEND_IPC AND PLATFORM_FLIH_IRQ_TEST_SUPPORT
David Hud1cba502021-11-23 14:55:15 +0800126 AND TEST_NS AND NOT TEST_NS_SLIH_IRQ)
127 set(TEST_NS_FLIH_IRQ ON CACHE BOOL "Whether to build NS regression First-Level Interrupt Handling tests")
128endif()
129
David Hu0a880d32022-02-23 17:08:12 +0800130if (CONFIG_TFM_SPM_BACKEND_IPC AND PLATFORM_SLIH_IRQ_TEST_SUPPORT
David Hud1cba502021-11-23 14:55:15 +0800131 AND TEST_NS AND NOT TEST_NS_FLIH_IRQ)
132 set(TEST_NS_SLIH_IRQ ON CACHE BOOL "Whether to build NS regression Second-Level Interrupt Handling tests")
133endif()
134
David Hu0a880d32022-02-23 17:08:12 +0800135############################ SFN backend test ##################################
136
137if (CONFIG_TFM_SPM_BACKEND_SFN AND TEST_NS)
138 set(TEST_NS_SFN_BACKEND ON CACHE BOOL "Whether to build NS regression SFN backend tests")
139endif()
140
David Hu6318d212021-08-23 18:07:57 +0800141########################## Load default config #################################
142
143if (TEST_S)
144 include(${TFM_TEST_PATH}/config/default_s_test_config.cmake)
145endif()
146if (TEST_NS)
David Hucf299b12021-09-12 16:41:48 +0800147 if (NOT NS)
148 # In this case, TEST_NS is used to configure corresponding test secure
149 # services during SPE build alone.
150 # Disable TEST_FRAMEWORK_NS if NS is OFF as NS test framework shall
151 # run inside NS environment
152 set(TEST_FRAMEWORK_NS OFF CACHE BOOL "Whether to build NS regression tests framework")
153 endif()
David Hu6318d212021-08-23 18:07:57 +0800154 include(${TFM_TEST_PATH}/config/default_ns_test_config.cmake)
155endif()
156
Kevin Pengac815872021-10-25 17:59:59 +0800157###################### Test Partition configurations ###########################
158if (TEST_NS_IPC OR TEST_S_IPC)
159 set(TFM_PARTITION_IPC_TEST ON)
160else()
161 set(TFM_PARTITION_IPC_TEST OFF)
162endif()
163
Kevin Pengcc068162021-11-11 12:39:13 +0800164if ((TEST_NS_ATTESTATION OR TEST_S_ATTESTATION)
165 # This initial attestation test service provide a secure API to enable tests to
166 # fetch Initial Attestation public key.
167 # This test service shall be only enabled when the public key can only be
168 # fetched in runtime.
169 AND (ATTEST_TEST_GET_PUBLIC_KEY AND NOT SYMMETRIC_INITIAL_ATTESTATION))
Kevin Pengac815872021-10-25 17:59:59 +0800170 set(TFM_PARTITION_ATTESTATION_TEST ON)
171else()
172 set(TFM_PARTITION_ATTESTATION_TEST OFF)
173endif()
174
Feder Liang7abe9a42021-12-03 17:54:58 +0800175# Enable FPU test partition if S or NS FP test enabled
176if (TEST_S_FPU OR TEST_NS_FPU)
177 set(TEST_PARTITION_FPU_TEST ON)
178else()
179 set(TEST_PARTITION_FPU_TEST OFF)
180endif()
181
David Hu6318d212021-08-23 18:07:57 +0800182include(${TFM_TEST_PATH}/config/default_test_config.cmake)