blob: 69c78322da6c29b7c7f79167deb0839a731a2c9e [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)
34if(TFM_PSA_API)
35 add_subdirectory(suites/ipc)
36endif()
37if(TFM_MULTI_CORE_TOPOLOGY)
38 add_subdirectory(suites/multi_core)
Kevin Peng62a87112020-07-07 15:07:46 +080039endif()
40
David Hu73f259b2020-12-07 10:58:41 +080041add_library(tfm_test_framework_common INTERFACE)
42
43target_sources(tfm_test_framework_common
Raef Coles652bb8a2020-09-24 11:27:38 +010044 INTERFACE
45 ${CMAKE_CURRENT_SOURCE_DIR}/framework/test_framework.c
46 ${CMAKE_CURRENT_SOURCE_DIR}/framework/test_framework_helpers.c
47 ${CMAKE_CURRENT_SOURCE_DIR}/framework/test_framework_integ_test_helper.c
48)
Kevin Peng62a87112020-07-07 15:07:46 +080049
David Hu73f259b2020-12-07 10:58:41 +080050target_include_directories(tfm_test_framework_common
Raef Coles652bb8a2020-09-24 11:27:38 +010051 INTERFACE
52 framework
53)
Kevin Peng62a87112020-07-07 15:07:46 +080054
David Hu73f259b2020-12-07 10:58:41 +080055target_link_libraries(tfm_test_framework_ns
Raef Coles652bb8a2020-09-24 11:27:38 +010056 INTERFACE
David Hu73f259b2020-12-07 10:58:41 +080057 tfm_test_framework_common
David Hub8dd1712021-02-09 15:07:46 +080058 tfm_api_ns
David Hu73f259b2020-12-07 10:58:41 +080059 tfm_ns_interface
Kevin Pengaf602292020-10-20 17:49:52 +080060 tfm_ns_log
Raef Coles652bb8a2020-09-24 11:27:38 +010061)
Kevin Peng62a87112020-07-07 15:07:46 +080062
Raef Coles652bb8a2020-09-24 11:27:38 +010063target_sources(tfm_ns_tests
64 INTERFACE
65 ${CMAKE_CURRENT_SOURCE_DIR}/framework/non_secure_suites.c
66)
Kevin Peng62a87112020-07-07 15:07:46 +080067
Raef Coles652bb8a2020-09-24 11:27:38 +010068target_link_libraries(tfm_ns_tests
69 INTERFACE
David Hu73f259b2020-12-07 10:58:41 +080070 tfm_test_framework_ns
Raef Coles652bb8a2020-09-24 11:27:38 +010071 tfm_partition_defs
72)
Kevin Peng62a87112020-07-07 15:07:46 +080073
Raef Coles652bb8a2020-09-24 11:27:38 +010074target_compile_definitions(tfm_ns_tests
75 INTERFACE
76 $<$<BOOL:${SYMMETRIC_INITIAL_ATTESTATION}>:SYMMETRIC_INITIAL_ATTESTATION>
Raef Colesce57e062020-10-02 10:39:41 +010077 $<$<BOOL:${TFM_INTERACTIVE_TEST}>:CORE_TEST_INTERACTIVE>
Raef Coles652bb8a2020-09-24 11:27:38 +010078)
Kevin Peng62a87112020-07-07 15:07:46 +080079
Raef Coles652bb8a2020-09-24 11:27:38 +010080####################### Secure #################################################
Kevin Peng62a87112020-07-07 15:07:46 +080081
David Hu73f259b2020-12-07 10:58:41 +080082target_link_libraries(tfm_test_framework_s
83 INTERFACE
84 psa_interface
85 tfm_test_framework_common
86 tfm_s_log
87)
88
David Hu4f538e42020-11-09 16:46:17 +080089if (TEST_S)
90 target_sources(tfm_s_tests
91 INTERFACE
92 ${CMAKE_CURRENT_SOURCE_DIR}/framework/secure_suites.c
93 )
Kevin Peng62a87112020-07-07 15:07:46 +080094
David Hu4f538e42020-11-09 16:46:17 +080095 target_link_libraries(tfm_s_tests
96 INTERFACE
David Hu73f259b2020-12-07 10:58:41 +080097 tfm_test_framework_s
David Hu4f538e42020-11-09 16:46:17 +080098 tfm_partition_defs
99 tfm_spm
100 )
Jamie Fox9d688172020-10-22 23:26:24 +0100101
David Hu4f538e42020-11-09 16:46:17 +0800102 target_compile_definitions(tfm_s_tests
103 INTERFACE
104 $<$<BOOL:${PS_TEST_NV_COUNTERS}>:PS_TEST_NV_COUNTERS>
105 )
106endif()