blob: c7aaf277cd050908183d3878b996984061820f6c [file] [log] [blame]
Kevin Peng62a87112020-07-07 15:07:46 +08001#-------------------------------------------------------------------------------
Raef Coles652bb8a2020-09-24 11:27:38 +01002# Copyright (c) 2020, 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)
11add_library(tfm_test_framework INTERFACE)
12
13# For multi-core projects, the NS app can be run on a different CPU to the
14# Secure code. To facilitate this, we once again reload the compiler to load the
15# setting for the NS CPU. Cmake settings are directory scoped so this affects
16# anything loaded from or declared in this dir.
17if (TFM_MULTI_CORE_TOPOLOGY)
18 include(${CMAKE_SOURCE_DIR}/platform/ext/target/${TFM_PLATFORM}/preload_ns.cmake)
Kevin Pengae997e42020-07-08 17:06:37 +080019endif()
Kevin Peng62a87112020-07-07 15:07:46 +080020
Raef Coles652bb8a2020-09-24 11:27:38 +010021add_subdirectory(test_services)
Kevin Peng62a87112020-07-07 15:07:46 +080022
Raef Coles652bb8a2020-09-24 11:27:38 +010023add_subdirectory(suites/attestation)
24add_subdirectory(suites/audit)
25add_subdirectory(suites/core)
26add_subdirectory(suites/crypto)
27add_subdirectory(suites/its)
28add_subdirectory(suites/qcbor)
29add_subdirectory(suites/ps)
30add_subdirectory(suites/t_cose)
31add_subdirectory(suites/platform)
32if(TFM_PSA_API)
33 add_subdirectory(suites/ipc)
34endif()
35if(TFM_MULTI_CORE_TOPOLOGY)
36 add_subdirectory(suites/multi_core)
Kevin Peng62a87112020-07-07 15:07:46 +080037endif()
38
Raef Coles652bb8a2020-09-24 11:27:38 +010039target_sources(tfm_test_framework
40 INTERFACE
41 ${CMAKE_CURRENT_SOURCE_DIR}/framework/test_framework.c
42 ${CMAKE_CURRENT_SOURCE_DIR}/framework/test_framework_helpers.c
43 ${CMAKE_CURRENT_SOURCE_DIR}/framework/test_framework_integ_test_helper.c
44)
Kevin Peng62a87112020-07-07 15:07:46 +080045
Raef Coles652bb8a2020-09-24 11:27:38 +010046target_include_directories(tfm_test_framework
47 INTERFACE
48 framework
49)
Kevin Peng62a87112020-07-07 15:07:46 +080050
Raef Coles652bb8a2020-09-24 11:27:38 +010051target_link_libraries(tfm_test_framework
52 INTERFACE
53 psa_interface
Kevin Pengaf602292020-10-20 17:49:52 +080054 tfm_ns_log
Raef Coles652bb8a2020-09-24 11:27:38 +010055)
Kevin Peng62a87112020-07-07 15:07:46 +080056
Raef Coles652bb8a2020-09-24 11:27:38 +010057target_sources(tfm_ns_tests
58 INTERFACE
59 ${CMAKE_CURRENT_SOURCE_DIR}/framework/non_secure_suites.c
60)
Kevin Peng62a87112020-07-07 15:07:46 +080061
Raef Coles652bb8a2020-09-24 11:27:38 +010062target_link_libraries(tfm_ns_tests
63 INTERFACE
64 tfm_test_framework
65 tfm_partition_defs
66)
Kevin Peng62a87112020-07-07 15:07:46 +080067
Raef Coles652bb8a2020-09-24 11:27:38 +010068target_compile_definitions(tfm_ns_tests
69 INTERFACE
70 $<$<BOOL:${SYMMETRIC_INITIAL_ATTESTATION}>:SYMMETRIC_INITIAL_ATTESTATION>
Raef Colesce57e062020-10-02 10:39:41 +010071 $<$<BOOL:${TFM_INTERACTIVE_TEST}>:CORE_TEST_INTERACTIVE>
David Hu1f098cc2020-10-14 15:00:35 +080072 $<$<BOOL:${TFM_MULTI_CORE_MULTI_CLIENT_CALL}>:TFM_MULTI_CORE_MULTI_CLIENT_CALL>
Raef Coles652bb8a2020-09-24 11:27:38 +010073)
Kevin Peng62a87112020-07-07 15:07:46 +080074
Raef Coles652bb8a2020-09-24 11:27:38 +010075####################### Secure #################################################
Kevin Peng62a87112020-07-07 15:07:46 +080076
Raef Coles652bb8a2020-09-24 11:27:38 +010077target_sources(tfm_s_tests
78 INTERFACE
79 ${CMAKE_CURRENT_SOURCE_DIR}/framework/secure_suites.c
80)
Kevin Peng62a87112020-07-07 15:07:46 +080081
Raef Coles652bb8a2020-09-24 11:27:38 +010082target_link_libraries(tfm_s_tests
83 INTERFACE
84 tfm_test_framework
85 tfm_partition_defs
86 tfm_spm
87)
Jamie Fox9d688172020-10-22 23:26:24 +010088
89target_compile_definitions(tfm_s_tests
90 INTERFACE
91 $<$<BOOL:${PS_TEST_NV_COUNTERS}>:PS_TEST_NV_COUNTERS>
92)