-
Notifications
You must be signed in to change notification settings - Fork 25
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add and use add_boost_test CMake helper function (#2545)
Allow adding unit test in a single line, avoiding repetition of CMake targets. TODO - [x] Add optional argument for `target_include_directories` - [ ] Allow more labels / directories (IDE specific) ? - [x] Use `add_boost_test` in place of `add_executable` where needed This pull request includes significant changes to the CMake build system for various tests, primarily focusing on simplifying and standardizing the test definitions by introducing a new macro. The main changes involve replacing existing test setup code with a new `add_boost_test` function, which consolidates the test setup into a single line.
- Loading branch information
Showing
35 changed files
with
398 additions
and
976 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,30 +1,10 @@ | ||
find_package(Boost COMPONENTS unit_test_framework REQUIRED) | ||
enable_testing() | ||
|
||
#bigobj support needed for windows compilation | ||
if(MSVC) | ||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /bigobj") | ||
endif(MSVC) | ||
|
||
add_executable(tests-binding_constraints | ||
test_binding_constraints.cpp | ||
) | ||
|
||
target_link_libraries(tests-binding_constraints | ||
PRIVATE | ||
Boost::unit_test_framework | ||
model_antares | ||
antares-solver-simulation | ||
antares-solver-hydro | ||
antares-solver-ts-generator | ||
Antares::tests::in-memory-study | ||
) | ||
|
||
target_include_directories(tests-binding_constraints | ||
PRIVATE | ||
${CMAKE_SOURCE_DIR}/solver | ||
) | ||
|
||
add_test(NAME end-to-end-binding_constraints COMMAND tests-binding_constraints) | ||
set_property(TEST end-to-end-binding_constraints PROPERTY LABELS end-to-end) | ||
set_target_properties(tests-binding_constraints PROPERTIES FOLDER Unit-tests/end_to_end) | ||
include(${CMAKE_SOURCE_DIR}/tests/macros.cmake) | ||
|
||
add_boost_test(tests-binding_constraints | ||
SRC test_binding_constraints.cpp | ||
LIBS | ||
model_antares | ||
antares-solver-simulation | ||
antares-solver-hydro | ||
antares-solver-ts-generator | ||
Antares::tests::in-memory-study) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,35 +1,11 @@ | ||
find_package(Boost COMPONENTS unit_test_framework REQUIRED) | ||
enable_testing() | ||
|
||
#bigobj support needed for windows compilation | ||
if(MSVC) | ||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /bigobj") | ||
endif(MSVC) | ||
|
||
add_executable(tests-simple-study | ||
simple-study.cpp | ||
) | ||
|
||
target_link_libraries(tests-simple-study | ||
PRIVATE | ||
antares-solver-hydro | ||
antares-solver-variable | ||
antares-solver-simulation | ||
antares-solver-ts-generator | ||
model_antares | ||
${Boost_UNIT_TEST_FRAMEWORK_LIBRARY} | ||
Antares::tests::in-memory-study | ||
) | ||
|
||
target_include_directories(tests-simple-study | ||
PRIVATE | ||
${CMAKE_SOURCE_DIR}/solver | ||
) | ||
|
||
add_test(NAME end-to-end-simple-study COMMAND tests-simple-study) | ||
set_property(TEST end-to-end-simple-study PROPERTY LABELS end-to-end) | ||
set_target_properties(tests-simple-study PROPERTIES FOLDER Unit-tests/end_to_end) | ||
|
||
# Storing tests-simple-study under the folder Unit-tests in the IDE | ||
|
||
#---------------------------------------------------------- | ||
include(${CMAKE_SOURCE_DIR}/tests/macros.cmake) | ||
|
||
add_boost_test(tests-simple-study | ||
SRC simple-study.cpp | ||
LIBS | ||
antares-solver-hydro | ||
antares-solver-variable | ||
antares-solver-simulation | ||
antares-solver-ts-generator | ||
model_antares | ||
Antares::tests::in-memory-study) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,38 @@ | ||
# The following function allows to add a test in a single line | ||
# Arguments | ||
# SRC path to the sources | ||
# (optional) LIBS path to the libs to link | ||
# (optional) INCLUDE include paths | ||
# NOTE it's not necessary to add Boost::unit_test_framework | ||
|
||
function(add_boost_test) | ||
set(options "") | ||
set(oneValueArgs) | ||
set(multiValueArgs SRC LIBS INCLUDE) | ||
cmake_parse_arguments(PARSE_ARGV 0 arg | ||
"${options}" "${oneValueArgs}" "${multiValueArgs}") | ||
# Bypass cmake_parse_arguments for the 1st argument | ||
set(TEST_NAME ${ARGV0}) | ||
add_executable(${TEST_NAME} ${arg_SRC}) | ||
# All tests use boost | ||
target_link_libraries(${TEST_NAME} PRIVATE ${arg_LIBS} Boost::unit_test_framework) | ||
|
||
# Optional: add private include directories | ||
if (NOT "${arg_INCLUDE}" STREQUAL "") | ||
target_include_directories(${TEST_NAME} PRIVATE ${arg_INCLUDE}) | ||
endif() | ||
|
||
add_test(NAME ${TEST_NAME} COMMAND ${TEST_NAME}) | ||
|
||
# Adding labels allows ctest filter what tests to run | ||
set_property(TEST ${TEST_NAME} PROPERTY LABELS unit) | ||
|
||
# Give the IDE some directions to display tests in a "Unit-tests" folder | ||
set_target_properties(${TEST_NAME} PROPERTIES FOLDER Unit-tests) | ||
|
||
# Linux only. TODO remove ? | ||
if(UNIX AND NOT APPLE) | ||
target_link_libraries(${TEST_NAME} PRIVATE stdc++fs) | ||
endif() | ||
|
||
endfunction() |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,28 +1,11 @@ | ||
set(EXECUTABLE_NAME test-api) | ||
add_executable(${EXECUTABLE_NAME}) | ||
|
||
target_sources(${EXECUTABLE_NAME} | ||
PRIVATE | ||
test_api.cpp | ||
) | ||
|
||
target_link_libraries(${EXECUTABLE_NAME} | ||
PRIVATE | ||
Boost::unit_test_framework | ||
Antares::solver_api | ||
Antares::tests::in-memory-study | ||
test_utils_unit | ||
) | ||
|
||
target_include_directories(${EXECUTABLE_NAME} | ||
PRIVATE | ||
#Allow to use the private headers | ||
$<TARGET_PROPERTY:Antares::solver_api,INCLUDE_DIRECTORIES> | ||
) | ||
|
||
# Storing tests-ts-numbers under the folder Unit-tests in the IDE | ||
set_target_properties(${EXECUTABLE_NAME} PROPERTIES FOLDER Unit-tests) | ||
|
||
add_test(NAME test-api COMMAND ${EXECUTABLE_NAME}) | ||
|
||
set_property(TEST test-api PROPERTY LABELS unit) | ||
include(${CMAKE_SOURCE_DIR}/tests/macros.cmake) | ||
|
||
add_boost_test(test-api | ||
SRC test_api.cpp | ||
LIBS | ||
Antares::solver_api | ||
Antares::tests::in-memory-study | ||
test_utils_unit | ||
#Allow to use the private headers | ||
INCLUDE | ||
$<TARGET_PROPERTY:Antares::solver_api,INCLUDE_DIRECTORIES>) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,20 +1,5 @@ | ||
set(EXECUTABLE_NAME test-client-api) | ||
add_executable(${EXECUTABLE_NAME}) | ||
include(${CMAKE_SOURCE_DIR}/tests/macros.cmake) | ||
|
||
target_sources(${EXECUTABLE_NAME} | ||
PRIVATE | ||
test_api.cpp | ||
) | ||
|
||
target_link_libraries(${EXECUTABLE_NAME} | ||
PRIVATE | ||
Boost::unit_test_framework | ||
Antares::solver_api | ||
) | ||
|
||
# Storing tests-ts-numbers under the folder Unit-tests in the IDE | ||
set_target_properties(${EXECUTABLE_NAME} PROPERTIES FOLDER Unit-tests) | ||
|
||
add_test(NAME test-client-api COMMAND ${EXECUTABLE_NAME}) | ||
|
||
set_property(TEST test-client-api PROPERTY LABELS unit) | ||
add_boost_test(test-client-api | ||
SRC test_api.cpp | ||
LIBS Antares::solver_api) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
25 changes: 7 additions & 18 deletions
25
src/tests/src/libs/antares/antlr4-interface/CMakeLists.txt
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,20 +1,9 @@ | ||
include(${CMAKE_SOURCE_DIR}/tests/macros.cmake) | ||
|
||
find_package(antlr4-runtime CONFIG REQUIRED) | ||
Set(SRCS test_antlr_interface.cpp | ||
) | ||
|
||
set(execname "antlr-interface-test") | ||
add_executable(${execname} ${SRCS}) | ||
target_link_libraries(${execname} | ||
PRIVATE | ||
antlr-interface | ||
Boost::unit_test_framework | ||
) | ||
|
||
|
||
target_include_directories(${execname} | ||
PRIVATE | ||
${ANTLR4_INCLUDE_DIR}) | ||
add_test(NAME antlr-interface COMMAND ${execname}) | ||
|
||
set_tests_properties(antlr-interface PROPERTIES LABELS unit) | ||
add_boost_test(antlr-interface-test | ||
SRC test_antlr_interface.cpp | ||
LIBS | ||
antlr-interface | ||
INCLUDE | ||
${ANTLR4_INCLUDE_DIR}) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,15 +1,5 @@ | ||
set(PROJ test-duration-collector) | ||
include(${CMAKE_SOURCE_DIR}/tests/macros.cmake) | ||
|
||
add_executable(${PROJ}) | ||
target_sources(${PROJ} PRIVATE test_duration_collector.cpp) | ||
target_link_libraries(${PROJ} | ||
PRIVATE | ||
Antares::benchmarking | ||
Boost::unit_test_framework | ||
) | ||
|
||
set_target_properties(${PROJ} PROPERTIES FOLDER Unit-tests/${PROJ}) | ||
|
||
add_test(NAME ${PROJ} COMMAND ${PROJ}) | ||
|
||
set_property(TEST ${PROJ} PROPERTY LABELS unit) | ||
add_boost_test(test-duration-collector | ||
SRC test_duration_collector.cpp | ||
LIBS Antares::benchmarking) |
Oops, something went wrong.