blob: ee05c4565ea45531720f7244391076423023e57c [file] [log] [blame]
David Hu479ef002023-10-20 14:44:32 +08001#-------------------------------------------------------------------------------
2# Copyright (c) 2021-2023, Arm Limited. All rights reserved.
3#
4# SPDX-License-Identifier: BSD-3-Clause
5#
6#-------------------------------------------------------------------------------
7
8# Set whether Secure and Non-secure regression tests are selected.
9# If any regression test is selected, set corresponding TFM_S_REG_TEST/TEST_NS_REG_TEST to
10# require TF-M build secure tests and test partitions.
11#
12# cmd_line: the output argument to collect the arguments via command line
13#
14function(parse_regression_flag cmd_line)
15
16 set(TFM_NS_REG_TEST OFF)
17 set(TFM_S_REG_TEST OFF)
18
19 get_cmake_property(CACHE_VARS CACHE_VARIABLES)
20
21 # By default all non-secure regression tests are disabled.
22 # If TEST_NS or TEST_NS_XXX flag is passed via command line and set to ON,
23 # selected corresponding features to support non-secure regression tests.
24 foreach(CACHE_VAR ${CACHE_VARS})
25 string(REGEX MATCH "^TEST_NS.*" _NS_TEST_FOUND "${CACHE_VAR}")
26 if (_NS_TEST_FOUND AND "${${CACHE_VAR}}")
27 # TFM_NS_REG_TEST is a TF-M internal cmake flag to manage building
28 # tf-m-tests non-secure regression tests related source
29 set(TFM_NS_REG_TEST ON)
30 break()
31 endif()
32 endforeach()
33
34 foreach(CACHE_VAR ${CACHE_VARS})
35 string(REGEX MATCH "^TEST_S.*" _S_TEST_FOUND "${CACHE_VAR}")
36 if (_S_TEST_FOUND AND "${${CACHE_VAR}}")
37 # TFM_S_REG_TEST is a TF-M internal cmake flag to manage building
38 # tf-m-tests secure regression tests related source
39 set(TFM_S_REG_TEST ON)
40 break()
41 endif()
42 endforeach()
43
44 # By default EXTRA_<NS/S>_TEST_SUITES_PATHS is not set, extra test is also an
45 # out-of-tree build regression test, and if they are enabled,
46 # TFM_<NS/S>_REG_TEST will be enabled.
47 if (EXTRA_NS_TEST_SUITE_PATH)
48 set(TFM_NS_REG_TEST ON)
49 endif()
50
51 if (EXTRA_S_TEST_SUITE_PATH)
52 set(TFM_S_REG_TEST ON)
53 endif()
54
55 set(ns_reg_cmd "-DTFM_NS_REG_TEST:BOOL=${TFM_NS_REG_TEST}")
56 set(s_reg_cmd "-DTFM_S_REG_TEST:BOOL=${TFM_S_REG_TEST}")
57 set(${cmd_line} "${${cmd_line}};${ns_reg_cmd};${s_reg_cmd}" PARENT_SCOPE)
58
59endfunction()