Add UT_AUTO_HELPERS control word to new CMake API (#3648)

* Add hotfix

* Review recommendation
This commit is contained in:
Thomas Boyer-Chammard 2025-05-22 11:07:25 -07:00 committed by GitHub
parent eea6aca8fa
commit 32582d7e9a
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
7 changed files with 28 additions and 18 deletions

View File

@ -7,26 +7,27 @@
# Note: using PROJECT_NAME as EXECUTABLE_NAME
####
set(MOD_DEPS
Utils/Types
Fw/Buffer
Fw/Types
)
set(SOURCE_FILES
"${CMAKE_CURRENT_LIST_DIR}/ComQueue.fpp"
"${CMAKE_CURRENT_LIST_DIR}/ComQueue.cpp"
)
register_fprime_module()
register_fprime_library(
SOURCES
"${CMAKE_CURRENT_LIST_DIR}/ComQueue.cpp"
AUTOCODER_INPUTS
"${CMAKE_CURRENT_LIST_DIR}/ComQueue.fpp"
DEPENDS
Fw_Types
Utils_Types
Fw_Buffer
)
### UTs ###
set(UT_SOURCE_FILES
"${CMAKE_CURRENT_LIST_DIR}/ComQueue.fpp"
"${CMAKE_CURRENT_LIST_DIR}/test/ut/ComQueueTestMain.cpp"
"${CMAKE_CURRENT_LIST_DIR}/test/ut/ComQueueTester.cpp"
)
register_fprime_ut(
SOURCES
"${CMAKE_CURRENT_LIST_DIR}/test/ut/ComQueueTestMain.cpp"
"${CMAKE_CURRENT_LIST_DIR}/test/ut/ComQueueTester.cpp"
AUTOCODER_INPUTS
"${CMAKE_CURRENT_LIST_DIR}/ComQueue.fpp"
UT_AUTO_HELPERS
)
set(UT_AUTO_HELPERS ON)
register_fprime_ut()
set (UT_TARGET_NAME "${FPRIME_CURRENT_MODULE}_ut_exe")
if (TARGET "${UT_TARGET_NAME}")
target_compile_options("${UT_TARGET_NAME}" PRIVATE -Wno-conversion)

View File

@ -534,7 +534,7 @@ endfunction(register_fprime_ut)
#
####
function(fprime_add_unit_test_build_target)
fprime__internal_add_build_target("Unit Test" "INCLUDE_GTEST" ${ARGN})
fprime__internal_add_build_target("Unit Test" "INCLUDE_GTEST;UT_AUTO_HELPERS" ${ARGN})
clear_historical_variables()
set(INTERNAL_MODULE_NAME "${INTERNAL_MODULE_NAME}" PARENT_SCOPE)
endfunction()

View File

@ -45,6 +45,7 @@ function(ai_ut_setup_autocode MODULE_NAME AC_INPUT_FILE)
list(APPEND REMOVALS "${CMAKE_CURRENT_BINARY_DIR}/GTestBase.cpp" "${CMAKE_CURRENT_BINARY_DIR}/GTestBase.hpp")
endif()
# Extra test helpers file
get_target_property(UT_AUTO_HELPERS "${MODULE_NAME}" FPRIME_UT_AUTO_HELPERS)
if (DEFINED UT_AUTO_HELPERS AND UT_AUTO_HELPERS)
list(APPEND AUTOCODER_GENERATED "${CMAKE_CURRENT_BINARY_DIR}/TesterHelpers.cpp")
else()

View File

@ -42,6 +42,7 @@ function(ai_ut_impl_setup_autocode MODULE_NAME AC_INPUT_FILE)
"${CMAKE_CURRENT_SOURCE_DIR}/GTestBase.hpp"
"${CMAKE_CURRENT_SOURCE_DIR}/GTestBase.cpp")
# Extra test helpers file
get_target_property(UT_AUTO_HELPERS "${MODULE_NAME}" FPRIME_UT_AUTO_HELPERS)
if (NOT DEFINED UT_AUTO_HELPERS OR NOT UT_AUTO_HELPERS)
list(APPEND AUTOCODER_GENERATED "${CMAKE_CURRENT_SOURCE_DIR}/TesterHelpers.cpp")
else()

View File

@ -49,6 +49,7 @@ function(fpp_ut_setup_autocode MODULE_NAME AC_INPUT_FILES)
endif()
endforeach()
set(CLI_ARGS ${FPP_TO_CPP} "-u" "-d" "${CMAKE_CURRENT_BINARY_DIR}" ${IMPORTS} ${AC_INPUT_FILES} "-p" "${FPRIME_BUILD_LOCATIONS_COMMA_SEP},${CMAKE_BINARY_DIR}")
get_target_property(UT_AUTO_HELPERS "${MODULE_NAME}" FPRIME_UT_AUTO_HELPERS)
if (UT_AUTO_HELPERS)
list(APPEND CLI_ARGS "-a")
else()

View File

@ -199,6 +199,11 @@ function(fprime__internal_add_build_target_helper TARGET_NAME TYPE SOURCES AUTOC
else()
fprime_cmake_fatal_error("Cannot register compilation target of type ${TYPE}")
endif()
if (TYPE STREQUAL "Unit Test" AND INTERNAL_UT_AUTO_HELPERS)
set_target_properties("${TARGET_NAME}" PROPERTIES
FPRIME_UT_AUTO_HELPERS TRUE
)
endif()
# Use the appropriate link type for the target
get_target_property(CMAKE_LIBRARY_TYPE "${TARGET_NAME}" TYPE)
if (CMAKE_LIBRARY_TYPE MATCHES "INTERFACE_LIBRARY")

View File

@ -80,6 +80,7 @@ function(ut_setup_unit_test_include_directories UT_EXE_NAME SOURCE_FILES)
set(UT_INCLUDE_DIRECTORIES "${CMAKE_CURRENT_BINARY_DIR}")
# When running with auto-helpers, we need to include the .hpp directories as things are imported without path
# e.g. "#include <Tester.hpp>" and there is no guarantee for the location of these files
get_target_property(UT_AUTO_HELPERS "${UT_EXE_NAME}" FPRIME_UT_AUTO_HELPERS)
if (DEFINED UT_AUTO_HELPERS AND UT_AUTO_HELPERS)
foreach(SOURCE_FILE IN LISTS SOURCE_FILES)
get_filename_component(SOURCE_EXT "${SOURCE_FILE}" LAST_EXT)