blob: ed4c363fb4fe720b1499d7bfe2aa0eea775d4b16 [file] [log] [blame]
Julian Halleff4b282020-11-23 18:24:12 +01001#-------------------------------------------------------------------------------
Julian Hallba080d42022-12-22 14:12:25 +00002# Copyright (c) 2020-2023, Arm Limited and Contributors. All rights reserved.
Julian Halleff4b282020-11-23 18:24:12 +01003#
4# SPDX-License-Identifier: BSD-3-Clause
5#
6#-------------------------------------------------------------------------------
Balint Dobszay047aea82022-05-16 14:20:53 +02007cmake_minimum_required(VERSION 3.18 FATAL_ERROR)
Julian Halleff4b282020-11-23 18:24:12 +01008include(../../deployment.cmake REQUIRED)
9
10#-------------------------------------------------------------------------------
11# The CMakeLists.txt for building the ts-service-test deployment for linux-pc
12#
13# Used for building and running service level tests in a native PC enviroment.
14# Tests can be run by running the built executable called "ts-service-test"
15#-------------------------------------------------------------------------------
16include(${TS_ROOT}/environments/linux-pc/env.cmake)
17project(trusted-services LANGUAGES CXX C)
Imre Kis7cbf6a22021-01-25 18:50:35 +010018
Julian Halla7e76c82021-04-14 11:12:11 +010019# Prevents symbols in the ts-service-test executable overriding symbols with
20# with same name in libts during dyanmic linking performed by the program
21# loader. This avoid psa crypto api symbols provided by the mbedcrypto
22# library from being overridden by the same symbols in the ts-service-test
23# executable.
24set(CMAKE_C_VISIBILITY_PRESET hidden)
25
Imre Kis7cbf6a22021-01-25 18:50:35 +010026# Preparing firmware-test-build by including it
27include(${TS_ROOT}/external/firmware_test_builder/FirmwareTestBuilder.cmake)
28
29include(CTest)
30include(UnitTest)
31
32set(COVERAGE FALSE CACHE BOOL "Enable code coverage measurement")
33set(UNIT_TEST_PROJECT_PATH ${TS_ROOT} CACHE PATH "Path of the project directory")
34set(CMAKE_CXX_STANDARD 11)
35
36unit_test_init_cpputest()
37
38if (COVERAGE)
39 include(Coverage)
40
41 set(COVERAGE_FILE "coverage.info")
42 set(TS_SERVICE_TEST_COVERAGE_FILE "ts-service-test-coverage.info" CACHE PATH "Path of coverage info file")
43 set(TS_SERVICE_TEST_COVERAGE_REPORT_DIR "${CMAKE_CURRENT_BINARY_DIR}/ts-service-coverage-report" CACHE PATH "Directory of coverage report")
44
45 # Collecting coverage
46 coverage_generate(
47 NAME "ts-service test"
48 SOURCE_DIR ${TS_ROOT}
49 BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR}
50 OUTPUT_FILE ${COVERAGE_FILE}
51 )
52
53 # Filtering project file coverage
54 coverage_filter(
55 INPUT_FILE ${COVERAGE_FILE}
56 OUTPUT_FILE ${TS_SERVICE_TEST_COVERAGE_FILE}
57 INCLUDE_DIRECTORY ${UNIT_TEST_PROJECT_PATH}/components
58 )
59
60 # Coverage report
61 coverage_generate_report(
62 INPUT_FILE ${TS_SERVICE_TEST_COVERAGE_FILE}
63 OUTPUT_DIRECTORY ${TS_SERVICE_TEST_COVERAGE_REPORT_DIR}
64 )
65endif()
66
67unit_test_add_suite(
68 NAME ts-service-test
69)
70
Julian Halleff4b282020-11-23 18:24:12 +010071target_include_directories(ts-service-test PRIVATE "${TOP_LEVEL_INCLUDE_DIRS}")
72
73#-------------------------------------------------------------------------------
Julian Hall2ca63d82022-12-21 15:20:43 +000074# External project source-level dependencies
75#
76#-------------------------------------------------------------------------------
77include(${TS_ROOT}/external/tf_a/tf-a.cmake)
78add_tfa_dependency(TARGET "ts-service-test")
79
80#-------------------------------------------------------------------------------
julhal013ec4c322021-02-05 17:30:49 +000081# Components that are specific to deployment in the linux-pc environment.
82#
83#-------------------------------------------------------------------------------
84add_components(
85 TARGET "ts-service-test"
86 BASE_DIR ${TS_ROOT}
Balint Dobszay550ce872022-12-15 15:28:40 +010087 COMPONENTS
88 "components/common/crc32"
Julian Hallcaa4af82021-05-19 12:02:36 +010089 "components/service/test_runner/client/cpp"
julhal013ec4c322021-02-05 17:30:49 +000090 "components/service/test_runner/test/service"
Julian Hall98656d52022-05-05 11:09:21 +010091 "components/service/uefi/smm_variable/client/cpp"
92 "components/service/uefi/smm_variable/test/service"
Julian Hall8b27ce92022-07-06 11:32:30 +010093 "components/service/block_storage/block_store"
94 "components/service/block_storage/block_store/client"
Julian Hall2ca63d82022-12-21 15:20:43 +000095 "components/service/block_storage/block_store/partitioned"
96 "components/service/block_storage/block_store/device"
97 "components/service/block_storage/block_store/device/ram"
Julian Hall1944a332022-07-20 16:23:16 +010098 "components/service/block_storage/factory/client"
Julian Hallc4692a82022-07-06 14:04:22 +010099 "components/service/block_storage/test/service"
Julian Hall2ca63d82022-12-21 15:20:43 +0000100 "components/service/common/provider"
Julian Hall2ca63d82022-12-21 15:20:43 +0000101 "components/service/fwu/agent"
102 "components/service/fwu/fw_store/banked"
103 "components/service/fwu/fw_store/banked/metadata_serializer/v1"
Julian Halla1250b22023-01-09 13:01:09 +0000104 "components/service/fwu/fw_store/banked/metadata_serializer/v2"
Julian Hall2ca63d82022-12-21 15:20:43 +0000105 "components/service/fwu/installer"
106 "components/service/fwu/installer/raw"
107 "components/service/fwu/installer/copy"
108 "components/service/fwu/inspector/direct"
109 "components/service/fwu/provider"
110 "components/service/fwu/provider/serializer/packed-c"
111 "components/service/fwu/test/fwu_client/direct"
Julian Hall2ca63d82022-12-21 15:20:43 +0000112 "components/service/fwu/test/fwu_dut/sim"
Julian Hall2ca63d82022-12-21 15:20:43 +0000113 "components/service/fwu/test/fwu_dut_factory/remote_sim"
Julian Hall2ca63d82022-12-21 15:20:43 +0000114 "components/service/fwu/test/metadata_fetcher/volume"
Julian Hallba080d42022-12-22 14:12:25 +0000115 "components/service/fwu/test/ref_scenarios"
Julian Hall2ca63d82022-12-21 15:20:43 +0000116 "components/media/volume"
117 "components/media/volume/index"
118 "components/media/volume/base_io_dev"
119 "components/media/volume/block_volume"
julhal013ec4c322021-02-05 17:30:49 +0000120)
121
122#-------------------------------------------------------------------------------
Julian Halleff4b282020-11-23 18:24:12 +0100123# Extend with components that are common across all deployments of
124# ts-service-test
125#
126#-------------------------------------------------------------------------------
127include(../ts-service-test.cmake REQUIRED)