blob: 469e4acbf8d8be9b5cff301d06d3dd6d2aa89198 [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()
David Hub0bce472021-05-20 14:06:52 +080039if(TFM_MULTI_CORE_TOPOLOGY AND TEST_NS)
40 add_subdirectory(suites/multi_core/non_secure)
Kevin Peng62a87112020-07-07 15:07:46 +080041endif()
42
Mate Toth-Palb3f96d22021-05-12 08:42:34 +020043if (TFM_FUZZER_TOOL_TESTS)
44 if(NOT DEFINED TFM_FUZZER_TOOL_TESTS_CMAKE_INC_PATH)
45 # The location of the file needs to be defined either from command line
46 # or from config cmake file.
47 message(FATAL_ERROR "Incomplete build configuration: TFM_FUZZER_TOOL_TESTS_CMAKE_INC_PATH is undefined.")
48 else()
49 add_subdirectory(${TFM_FUZZER_TOOL_TESTS_CMAKE_INC_PATH} ${CMAKE_BINARY_DIR}/suites/tfm_fuzz)
50 endif()
51endif()
52
David Hu73f259b2020-12-07 10:58:41 +080053add_library(tfm_test_framework_common INTERFACE)
54
55target_sources(tfm_test_framework_common
Raef Coles652bb8a2020-09-24 11:27:38 +010056 INTERFACE
57 ${CMAKE_CURRENT_SOURCE_DIR}/framework/test_framework.c
58 ${CMAKE_CURRENT_SOURCE_DIR}/framework/test_framework_helpers.c
59 ${CMAKE_CURRENT_SOURCE_DIR}/framework/test_framework_integ_test_helper.c
60)
Kevin Peng62a87112020-07-07 15:07:46 +080061
David Hu73f259b2020-12-07 10:58:41 +080062target_include_directories(tfm_test_framework_common
Raef Coles652bb8a2020-09-24 11:27:38 +010063 INTERFACE
64 framework
65)
Kevin Peng62a87112020-07-07 15:07:46 +080066
David Hu73f259b2020-12-07 10:58:41 +080067target_link_libraries(tfm_test_framework_ns
Raef Coles652bb8a2020-09-24 11:27:38 +010068 INTERFACE
David Hu73f259b2020-12-07 10:58:41 +080069 tfm_test_framework_common
David Hub8dd1712021-02-09 15:07:46 +080070 tfm_api_ns
David Hu73f259b2020-12-07 10:58:41 +080071 tfm_ns_interface
Kevin Pengaf602292020-10-20 17:49:52 +080072 tfm_ns_log
Raef Coles652bb8a2020-09-24 11:27:38 +010073)
Kevin Peng62a87112020-07-07 15:07:46 +080074
Raef Coles652bb8a2020-09-24 11:27:38 +010075target_sources(tfm_ns_tests
76 INTERFACE
77 ${CMAKE_CURRENT_SOURCE_DIR}/framework/non_secure_suites.c
78)
Kevin Peng62a87112020-07-07 15:07:46 +080079
Raef Coles652bb8a2020-09-24 11:27:38 +010080target_link_libraries(tfm_ns_tests
81 INTERFACE
David Hu73f259b2020-12-07 10:58:41 +080082 tfm_test_framework_ns
Raef Coles652bb8a2020-09-24 11:27:38 +010083 tfm_partition_defs
84)
Kevin Peng62a87112020-07-07 15:07:46 +080085
Raef Coles652bb8a2020-09-24 11:27:38 +010086target_compile_definitions(tfm_ns_tests
87 INTERFACE
88 $<$<BOOL:${SYMMETRIC_INITIAL_ATTESTATION}>:SYMMETRIC_INITIAL_ATTESTATION>
Raef Colesce57e062020-10-02 10:39:41 +010089 $<$<BOOL:${TFM_INTERACTIVE_TEST}>:CORE_TEST_INTERACTIVE>
Mate Toth-Palb3f96d22021-05-12 08:42:34 +020090 $<$<BOOL:${TFM_FUZZER_TOOL_TESTS}>:TFM_FUZZER_TOOL_TESTS>
Raef Coles652bb8a2020-09-24 11:27:38 +010091)
Kevin Peng62a87112020-07-07 15:07:46 +080092
Raef Coles652bb8a2020-09-24 11:27:38 +010093####################### Secure #################################################
Kevin Peng62a87112020-07-07 15:07:46 +080094
David Hu73f259b2020-12-07 10:58:41 +080095target_link_libraries(tfm_test_framework_s
96 INTERFACE
97 psa_interface
98 tfm_test_framework_common
99 tfm_s_log
100)
101
David Hu4f538e42020-11-09 16:46:17 +0800102if (TEST_S)
103 target_sources(tfm_s_tests
104 INTERFACE
105 ${CMAKE_CURRENT_SOURCE_DIR}/framework/secure_suites.c
106 )
Kevin Peng62a87112020-07-07 15:07:46 +0800107
David Hu4f538e42020-11-09 16:46:17 +0800108 target_link_libraries(tfm_s_tests
109 INTERFACE
David Hu73f259b2020-12-07 10:58:41 +0800110 tfm_test_framework_s
David Hu4f538e42020-11-09 16:46:17 +0800111 tfm_partition_defs
112 tfm_spm
113 )
Jamie Fox9d688172020-10-22 23:26:24 +0100114
David Hu4f538e42020-11-09 16:46:17 +0800115 target_compile_definitions(tfm_s_tests
116 INTERFACE
117 $<$<BOOL:${PS_TEST_NV_COUNTERS}>:PS_TEST_NV_COUNTERS>
118 )
119endif()