1#
2# Arm SCP/MCP Software
3# Copyright (c) 2023-2024, Arm Limited and Contributors. All rights reserved.
4#
5# SPDX-License-Identifier: BSD-3-Clause
6#
7
8if(TEST_ON_TARGET)
9    set(TEST_MODULE scmi_power_capping)
10    set(MODULE_ROOT ${CMAKE_SOURCE_DIR}/module)
11endif()
12
13set(MODULE_SRC ${MODULE_ROOT}/${TEST_MODULE}/src)
14set(MODULE_INC ${MODULE_ROOT}/${TEST_MODULE}/include)
15list(APPEND OTHER_MODULE_INC ${MODULE_ROOT}/scmi/include)
16list(APPEND OTHER_MODULE_INC ${MODULE_ROOT}/power_allocator/include)
17list(APPEND OTHER_MODULE_INC ${MODULE_ROOT}/power_meter/include)
18list(APPEND OTHER_MODULE_INC ${MODULE_ROOT}/power_coordinator/include)
19set(MODULE_UT_SRC ${CMAKE_CURRENT_LIST_DIR})
20set(MODULE_UT_INC ${CMAKE_CURRENT_LIST_DIR})
21set(MODULE_UT_MOCK_SRC ${CMAKE_CURRENT_LIST_DIR}/mocks)
22
23################################################################################
24# Test mod_scmi_power_capping.c                                                #
25################################################################################
26set(TEST_SRC mod_scmi_power_capping)
27set(TEST_FILE mod_scmi_power_capping)
28
29list(APPEND MOCK_REPLACEMENTS fwk_module)
30list(APPEND MOCK_REPLACEMENTS fwk_id)
31list(APPEND MOCK_REPLACEMENTS fwk_core)
32list(APPEND MOCK_REPLACEMENTS fwk_mm)
33
34if(NOT TEST_ON_TARGET)
35    set(UNIT_TEST_TARGET mod_${TEST_MODULE}_unit_test)
36endif()
37
38include(${SCP_ROOT}/unit_test/module_common.cmake)
39target_compile_definitions(${UNIT_TEST_TARGET} PUBLIC "BUILD_HAS_SCMI_POWER_CAPPING_STD_COMMANDS")
40
41target_sources(${UNIT_TEST_TARGET}
42    PRIVATE
43        ${MODULE_UT_MOCK_SRC}/Mockscmi_power_capping_protocol.c)
44
45################################################################################
46# Test scmi_power_capping_protocol.c                                           #
47################################################################################
48set(TEST_SRC scmi_power_capping_protocol)
49set(TEST_FILE scmi_power_capping_protocol)
50
51set(MODULE_SRC ${MODULE_ROOT}/${TEST_MODULE}/src)
52set(MODULE_INC ${MODULE_ROOT}/${TEST_MODULE}/include)
53list(APPEND OTHER_MODULE_INC ${MODULE_ROOT}/scmi/include)
54list(APPEND OTHER_MODULE_INC ${MODULE_ROOT}/resource_perms/include)
55set(MODULE_UT_SRC ${CMAKE_CURRENT_LIST_DIR})
56set(MODULE_UT_INC ${CMAKE_CURRENT_LIST_DIR})
57set(MODULE_UT_MOCK_SRC ${CMAKE_CURRENT_LIST_DIR}/mocks)
58
59list(APPEND MOCK_REPLACEMENTS fwk_module)
60list(APPEND MOCK_REPLACEMENTS fwk_id)
61list(APPEND MOCK_REPLACEMENTS fwk_core)
62list(APPEND MOCK_REPLACEMENTS fwk_mm)
63list(APPEND MOCK_REPLACEMENTS fwk_notification)
64
65if(NOT TEST_ON_TARGET)
66    set(UNIT_TEST_TARGET mod_${TEST_MODULE}_protocol_unit_test)
67endif()
68
69include(${SCP_ROOT}/unit_test/module_common.cmake)
70target_compile_definitions(${UNIT_TEST_TARGET} PUBLIC "BUILD_HAS_SCMI_POWER_CAPPING_STD_COMMANDS")
71
72target_sources(${UNIT_TEST_TARGET}
73    PRIVATE
74        ${MODULE_UT_MOCK_SRC}/Mockmod_scmi_extra.c
75        ${MODULE_UT_MOCK_SRC}/Mockmod_power_allocator_extra.c
76        ${MODULE_UT_MOCK_SRC}/Mockmod_power_coordinator_extra.c
77        ${MODULE_UT_MOCK_SRC}/Mockmod_power_meter_extra.c)
78
79################################################################################
80# Test scmi_power_capping_protocol.c + resource permissions                    #
81################################################################################
82set(TEST_SRC scmi_power_capping_protocol)
83set(TEST_FILE scmi_power_capping_protocol)
84
85set(MODULE_SRC ${MODULE_ROOT}/${TEST_MODULE}/src)
86set(MODULE_INC ${MODULE_ROOT}/${TEST_MODULE}/include)
87list(APPEND OTHER_MODULE_INC ${MODULE_ROOT}/scmi/include)
88list(APPEND OTHER_MODULE_INC ${MODULE_ROOT}/resource_perms/include)
89set(MODULE_UT_SRC ${CMAKE_CURRENT_LIST_DIR})
90set(MODULE_UT_INC ${CMAKE_CURRENT_LIST_DIR})
91set(MODULE_UT_MOCK_SRC ${CMAKE_CURRENT_LIST_DIR}/mocks)
92
93list(APPEND MOCK_REPLACEMENTS fwk_module)
94list(APPEND MOCK_REPLACEMENTS fwk_id)
95list(APPEND MOCK_REPLACEMENTS fwk_core)
96list(APPEND MOCK_REPLACEMENTS fwk_mm)
97list(APPEND MOCK_REPLACEMENTS fwk_notification)
98
99if(NOT TEST_ON_TARGET)
100    set(UNIT_TEST_TARGET mod_${TEST_MODULE}_protocol_resource_permissions_unit_test)
101endif()
102
103include(${SCP_ROOT}/unit_test/module_common.cmake)
104target_compile_definitions(${UNIT_TEST_TARGET} PUBLIC "BUILD_HAS_SCMI_POWER_CAPPING_STD_COMMANDS")
105target_compile_definitions(${UNIT_TEST_TARGET} PUBLIC "BUILD_HAS_MOD_RESOURCE_PERMS")
106
107target_sources(${UNIT_TEST_TARGET}
108    PRIVATE
109        ${MODULE_UT_MOCK_SRC}/Mockmod_scmi_extra.c
110        ${MODULE_UT_MOCK_SRC}/Mockmod_power_allocator_extra.c
111        ${MODULE_UT_MOCK_SRC}/Mockmod_power_coordinator_extra.c
112        ${MODULE_UT_MOCK_SRC}/Mockmod_power_meter_extra.c
113        ${MODULE_UT_MOCK_SRC}/Mockmod_resource_perms_extra.c)
114
115################################################################################
116# Test scmi_power_capping_protocol.c + notifications                           #
117################################################################################
118set(TEST_SRC scmi_power_capping_protocol)
119set(TEST_FILE scmi_power_capping_protocol)
120
121set(MODULE_SRC ${MODULE_ROOT}/${TEST_MODULE}/src)
122set(MODULE_INC ${MODULE_ROOT}/${TEST_MODULE}/include)
123list(APPEND OTHER_MODULE_INC ${MODULE_ROOT}/scmi/include)
124set(MODULE_UT_SRC ${CMAKE_CURRENT_LIST_DIR})
125set(MODULE_UT_INC ${CMAKE_CURRENT_LIST_DIR})
126set(MODULE_UT_MOCK_SRC ${CMAKE_CURRENT_LIST_DIR}/mocks)
127
128list(APPEND MOCK_REPLACEMENTS fwk_module)
129list(APPEND MOCK_REPLACEMENTS fwk_id)
130list(APPEND MOCK_REPLACEMENTS fwk_core)
131list(APPEND MOCK_REPLACEMENTS fwk_mm)
132list(APPEND MOCK_REPLACEMENTS fwk_notification)
133
134if(NOT TEST_ON_TARGET)
135    set(UNIT_TEST_TARGET mod_${TEST_MODULE}_protocol_notification_unit_test)
136endif()
137
138include(${SCP_ROOT}/unit_test/module_common.cmake)
139target_compile_definitions(${UNIT_TEST_TARGET} PUBLIC "BUILD_HAS_SCMI_POWER_CAPPING_STD_COMMANDS")
140target_compile_definitions(${UNIT_TEST_TARGET} PUBLIC "BUILD_HAS_SCMI_NOTIFICATIONS")
141
142target_sources(${UNIT_TEST_TARGET}
143    PRIVATE
144        ${MODULE_UT_MOCK_SRC}/Mockmod_scmi_extra.c
145        ${MODULE_UT_MOCK_SRC}/Mockmod_power_allocator_extra.c
146        ${MODULE_UT_MOCK_SRC}/Mockmod_power_coordinator_extra.c
147        ${MODULE_UT_MOCK_SRC}/Mockmod_power_meter_extra.c)
148
149################################################################################
150# Test scmi_power_capping_fast_channels.c with standard protocol commands      #
151################################################################################
152set(TEST_SRC scmi_power_capping_fast_channels)
153set(TEST_FILE scmi_power_capping_fast_channels)
154
155set(MODULE_SRC ${MODULE_ROOT}/${TEST_MODULE}/src)
156set(MODULE_INC ${MODULE_ROOT}/${TEST_MODULE}/include)
157list(APPEND OTHER_MODULE_INC ${MODULE_ROOT}/scmi/include)
158list(APPEND OTHER_MODULE_INC ${MODULE_ROOT}/transport/include)
159set(MODULE_UT_SRC ${CMAKE_CURRENT_LIST_DIR})
160set(MODULE_UT_INC ${CMAKE_CURRENT_LIST_DIR})
161set(MODULE_UT_MOCK_SRC ${CMAKE_CURRENT_LIST_DIR}/mocks)
162
163list(APPEND MOCK_REPLACEMENTS fwk_module)
164list(APPEND MOCK_REPLACEMENTS fwk_id)
165list(APPEND MOCK_REPLACEMENTS fwk_core)
166list(APPEND MOCK_REPLACEMENTS fwk_mm)
167
168if(NOT TEST_ON_TARGET)
169    set(UNIT_TEST_TARGET ${TEST_MODULE}_fast_channels_unit_test)
170endif()
171
172include(${SCP_ROOT}/unit_test/module_common.cmake)
173target_compile_definitions(${UNIT_TEST_TARGET} PUBLIC "BUILD_HAS_SCMI_POWER_CAPPING_STD_COMMANDS")
174target_compile_definitions(${UNIT_TEST_TARGET} PUBLIC "BUILD_HAS_FAST_CHANNELS")
175target_compile_definitions(${UNIT_TEST_TARGET} PUBLIC "BUILD_HAS_SCMI_POWER_CAPPING_FAST_CHANNELS_COMMANDS")
176
177target_sources(${UNIT_TEST_TARGET}
178    PRIVATE
179        ${MODULE_UT_MOCK_SRC}/Mockmod_power_allocator_extra.c
180        ${MODULE_UT_MOCK_SRC}/Mockmod_power_coordinator_extra.c
181        ${MODULE_UT_MOCK_SRC}/Mockmod_transport_extra.c)
182
183################################################################################
184# Test scmi_power_capping_fast_channels.c without standard protocol commands   #
185################################################################################
186set(TEST_SRC scmi_power_capping_fast_channels)
187set(TEST_FILE scmi_power_capping_fast_channels)
188
189set(MODULE_SRC ${MODULE_ROOT}/${TEST_MODULE}/src)
190set(MODULE_INC ${MODULE_ROOT}/${TEST_MODULE}/include)
191list(APPEND OTHER_MODULE_INC ${MODULE_ROOT}/scmi/include)
192list(APPEND OTHER_MODULE_INC ${MODULE_ROOT}/transport/include)
193set(MODULE_UT_SRC ${CMAKE_CURRENT_LIST_DIR})
194set(MODULE_UT_INC ${CMAKE_CURRENT_LIST_DIR})
195set(MODULE_UT_MOCK_SRC ${CMAKE_CURRENT_LIST_DIR}/mocks)
196
197list(APPEND MOCK_REPLACEMENTS fwk_module)
198list(APPEND MOCK_REPLACEMENTS fwk_id)
199list(APPEND MOCK_REPLACEMENTS fwk_core)
200list(APPEND MOCK_REPLACEMENTS fwk_mm)
201
202if(NOT TEST_ON_TARGET)
203    set(UNIT_TEST_TARGET ${TEST_MODULE}_fast_channels_only_unit_test)
204endif()
205
206include(${SCP_ROOT}/unit_test/module_common.cmake)
207target_compile_definitions(${UNIT_TEST_TARGET} PUBLIC "BUILD_HAS_FAST_CHANNELS")
208target_compile_definitions(${UNIT_TEST_TARGET} PUBLIC "BUILD_HAS_SCMI_POWER_CAPPING_FAST_CHANNELS_COMMANDS")
209
210target_sources(${UNIT_TEST_TARGET}
211    PRIVATE
212        ${MODULE_UT_MOCK_SRC}/Mockmod_power_allocator_extra.c
213        ${MODULE_UT_MOCK_SRC}/Mockmod_power_coordinator_extra.c
214        ${MODULE_UT_MOCK_SRC}/Mockmod_transport_extra.c)
215