blob: e9e6c66df31901df6ab922860af800679d673eab [file] [log] [blame]
David Hu479ef002023-10-20 14:44:32 +08001#-------------------------------------------------------------------------------
2# Copyright (c) 2023, Arm Limited. All rights reserved.
3#
4# SPDX-License-Identifier: BSD-3-Clause
5#
6#-------------------------------------------------------------------------------
7
8# Temporarily unset NS test flags to skip NS test suites during S build.
9# These flags will be recovered in post_secure_suite_build().
10# Their values are kept in temporary local variables.
11macro(pre_secure_suite_build)
12 get_cmake_property(CACHE_VARS CACHE_VARIABLES)
13
14 foreach(CACHE_VAR ${CACHE_VARS})
15 string(REGEX MATCH "^TEST_NS.*" _NS_TEST_FOUND "${CACHE_VAR}")
16 if(_NS_TEST_FOUND AND "${${CACHE_VAR}}")
17 set(TEMP_${CACHE_VAR} ${${CACHE_VAR}})
18 unset(${CACHE_VAR} CACHE)
19 endif()
20 endforeach()
21
22 if(EXTRA_NS_TEST_SUITE_PATH)
23 set(TEMP_EXTRA_NS_TEST_SUITE_PATH ${EXTRA_NS_TEST_SUITE_PATH})
24 unset(EXTRA_NS_TEST_SUITE_PATH CACHE)
25 endif()
26endmacro()
27
28# Recover test flags unset in pre_secure_suite_build().
29# Their values are restored from temporary local variables and written back.
30macro(post_secure_suite_build)
31 get_cmake_property(TEMP_TEST_VARS VARIABLES)
32
33 foreach(TEMP_TEST ${TEMP_TEST_VARS})
34 string(REGEX MATCH "^TEMP_TEST_NS.*" _NS_TEST_FOUND "${TEMP_TEST}")
35 if(_NS_TEST_FOUND AND "${${TEMP_TEST}}")
36 string(REGEX REPLACE "^TEMP_" "" TEST_NAME ${TEMP_TEST})
37 set(${TEST_NAME} ON CACHE BOOL "")
38 unset(${TEMP_TEST})
39 endif()
40 endforeach()
41
42 if(TEMP_EXTRA_NS_TEST_SUITE_PATH)
43 set(EXTRA_NS_TEST_SUITE_PATH ${TEMP_EXTRA_NS_TEST_SUITE_PATH} CACHE PATH "")
44 unset(TEMP_EXTRA_NS_TEST_SUITE_PATH)
45 endif()
46endmacro()
47
48# Temporarily unset S test flags to skip S test suites during NS build.
49# These flags will be recovered in post_ns_suite_build(). Their values are kept in temporary local
50# variables.
51macro(pre_ns_suite_build)
52 get_cmake_property(CACHE_VARS CACHE_VARIABLES)
53
54 foreach(CACHE_VAR ${CACHE_VARS})
55 string(REGEX MATCH "^TEST_S.*" _S_TEST_FOUND "${CACHE_VAR}")
56 if(_S_TEST_FOUND AND "${${CACHE_VAR}}")
57 set(TEMP_${CACHE_VAR} ${${CACHE_VAR}})
58 unset(${CACHE_VAR} CACHE)
59 endif()
60 endforeach()
61
62 if(EXTRA_S_TEST_SUITE_PATH)
63 set(TEMP_EXTRA_S_TEST_SUITE_PATH ${EXTRA_S_TEST_SUITE_PATH})
64 unset(EXTRA_S_TEST_SUITE_PATH CACHE)
65 endif()
66endmacro()
67
68# Recover test flags unset in pre_ns_suite_build().
69# Their values are restored from temporary local variables and written back.
70macro(post_ns_suite_build)
71 get_cmake_property(TEMP_TEST_VARS VARIABLES)
72
73 foreach(TEMP_TEST ${TEMP_TEST_VARS})
74 string(REGEX MATCH "^TEMP_TEST_S.*" _S_TEST_FOUND "${TEMP_TEST}")
75 if(_S_TEST_FOUND AND "${${TEMP_TEST}}")
76 string(REGEX REPLACE "^TEMP_" "" TEST_NAME ${TEMP_TEST})
77 set(${TEST_NAME} ON CACHE BOOL "")
78 unset(${TEMP_TEST})
79 endif()
80 endforeach()
81
82 if(TEMP_EXTRA_S_TEST_SUITE_PATH)
83 set(EXTRA_S_TEST_SUITE_PATH ${TEMP_EXTRA_S_TEST_SUITE_PATH} CACHE PATH "")
84 unset(TEMP_EXTRA_S_TEST_SUITE_PATH)
85 endif()
86endmacro()