blob: 30d2356161cab1dbaeb69af6c30162e08692824f [file] [log] [blame]
Kevin Peng62a87112020-07-07 15:07:46 +08001#-------------------------------------------------------------------------------
David Hub8dd1712021-02-09 15:07:46 +08002# Copyright (c) 2020-2021, Arm Limited. All rights reserved.
Kevin Peng62a87112020-07-07 15:07:46 +08003#
4# SPDX-License-Identifier: BSD-3-Clause
5#
6#-------------------------------------------------------------------------------
7
Raef Coles652bb8a2020-09-24 11:27:38 +01008cmake_minimum_required(VERSION 3.13)
Kevin Peng62a87112020-07-07 15:07:46 +08009
Raef Coles652bb8a2020-09-24 11:27:38 +010010add_library(tfm_ns_tests INTERFACE)
David Hu73f259b2020-12-07 10:58:41 +080011add_library(tfm_test_framework_ns INTERFACE)
12add_library(tfm_test_framework_s INTERFACE)
Raef Coles652bb8a2020-09-24 11:27:38 +010013
14# For multi-core projects, the NS app can be run on a different CPU to the
15# Secure code. To facilitate this, we once again reload the compiler to load the
16# setting for the NS CPU. Cmake settings are directory scoped so this affects
17# anything loaded from or declared in this dir.
18if (TFM_MULTI_CORE_TOPOLOGY)
19 include(${CMAKE_SOURCE_DIR}/platform/ext/target/${TFM_PLATFORM}/preload_ns.cmake)
Raef Coles34cffa72020-10-28 10:27:19 +000020 tfm_toolchain_reload_compiler()
Kevin Pengae997e42020-07-08 17:06:37 +080021endif()
Kevin Peng62a87112020-07-07 15:07:46 +080022
Raef Coles652bb8a2020-09-24 11:27:38 +010023add_subdirectory(test_services)
Kevin Peng62a87112020-07-07 15:07:46 +080024
Raef Coles652bb8a2020-09-24 11:27:38 +010025add_subdirectory(suites/attestation)
26add_subdirectory(suites/audit)
27add_subdirectory(suites/core)
28add_subdirectory(suites/crypto)
29add_subdirectory(suites/its)
30add_subdirectory(suites/qcbor)
31add_subdirectory(suites/ps)
32add_subdirectory(suites/t_cose)
33add_subdirectory(suites/platform)
Sherry Zhang92c499a2021-03-08 18:14:15 +080034add_subdirectory(suites/fwu)
35
Raef Coles652bb8a2020-09-24 11:27:38 +010036if(TFM_PSA_API)
37 add_subdirectory(suites/ipc)
38endif()
39if(TFM_MULTI_CORE_TOPOLOGY)
40 add_subdirectory(suites/multi_core)
Kevin Peng62a87112020-07-07 15:07:46 +080041endif()
42
David Hu73f259b2020-12-07 10:58:41 +080043add_library(tfm_test_framework_common INTERFACE)
44
45target_sources(tfm_test_framework_common
Raef Coles652bb8a2020-09-24 11:27:38 +010046 INTERFACE
47 ${CMAKE_CURRENT_SOURCE_DIR}/framework/test_framework.c
48 ${CMAKE_CURRENT_SOURCE_DIR}/framework/test_framework_helpers.c
49 ${CMAKE_CURRENT_SOURCE_DIR}/framework/test_framework_integ_test_helper.c
50)
Kevin Peng62a87112020-07-07 15:07:46 +080051
David Hu73f259b2020-12-07 10:58:41 +080052target_include_directories(tfm_test_framework_common
Raef Coles652bb8a2020-09-24 11:27:38 +010053 INTERFACE
54 framework
55)
Kevin Peng62a87112020-07-07 15:07:46 +080056
David Hu73f259b2020-12-07 10:58:41 +080057target_link_libraries(tfm_test_framework_ns
Raef Coles652bb8a2020-09-24 11:27:38 +010058 INTERFACE
David Hu73f259b2020-12-07 10:58:41 +080059 tfm_test_framework_common
David Hub8dd1712021-02-09 15:07:46 +080060 tfm_api_ns
David Hu73f259b2020-12-07 10:58:41 +080061 tfm_ns_interface
Kevin Pengaf602292020-10-20 17:49:52 +080062 tfm_ns_log
Raef Coles652bb8a2020-09-24 11:27:38 +010063)
Kevin Peng62a87112020-07-07 15:07:46 +080064
Raef Coles652bb8a2020-09-24 11:27:38 +010065target_sources(tfm_ns_tests
66 INTERFACE
67 ${CMAKE_CURRENT_SOURCE_DIR}/framework/non_secure_suites.c
68)
Kevin Peng62a87112020-07-07 15:07:46 +080069
Raef Coles652bb8a2020-09-24 11:27:38 +010070target_link_libraries(tfm_ns_tests
71 INTERFACE
David Hu73f259b2020-12-07 10:58:41 +080072 tfm_test_framework_ns
Raef Coles652bb8a2020-09-24 11:27:38 +010073 tfm_partition_defs
74)
Kevin Peng62a87112020-07-07 15:07:46 +080075
Raef Coles652bb8a2020-09-24 11:27:38 +010076target_compile_definitions(tfm_ns_tests
77 INTERFACE
78 $<$<BOOL:${SYMMETRIC_INITIAL_ATTESTATION}>:SYMMETRIC_INITIAL_ATTESTATION>
Raef Colesce57e062020-10-02 10:39:41 +010079 $<$<BOOL:${TFM_INTERACTIVE_TEST}>:CORE_TEST_INTERACTIVE>
Raef Coles652bb8a2020-09-24 11:27:38 +010080)
Kevin Peng62a87112020-07-07 15:07:46 +080081
Raef Coles652bb8a2020-09-24 11:27:38 +010082####################### Secure #################################################
Kevin Peng62a87112020-07-07 15:07:46 +080083
David Hu73f259b2020-12-07 10:58:41 +080084target_link_libraries(tfm_test_framework_s
85 INTERFACE
86 psa_interface
87 tfm_test_framework_common
88 tfm_s_log
89)
90
David Hu4f538e42020-11-09 16:46:17 +080091if (TEST_S)
92 target_sources(tfm_s_tests
93 INTERFACE
94 ${CMAKE_CURRENT_SOURCE_DIR}/framework/secure_suites.c
95 )
Kevin Peng62a87112020-07-07 15:07:46 +080096
David Hu4f538e42020-11-09 16:46:17 +080097 target_link_libraries(tfm_s_tests
98 INTERFACE
David Hu73f259b2020-12-07 10:58:41 +080099 tfm_test_framework_s
David Hu4f538e42020-11-09 16:46:17 +0800100 tfm_partition_defs
101 tfm_spm
102 )
Jamie Fox9d688172020-10-22 23:26:24 +0100103
David Hu4f538e42020-11-09 16:46:17 +0800104 target_compile_definitions(tfm_s_tests
105 INTERFACE
106 $<$<BOOL:${PS_TEST_NV_COUNTERS}>:PS_TEST_NV_COUNTERS>
107 )
108endif()