Skip to content

Commit

Permalink
Add and use add_boost_test CMake helper function
Browse files Browse the repository at this point in the history
  • Loading branch information
flomnes committed Dec 19, 2024
1 parent 03508de commit e0b7168
Show file tree
Hide file tree
Showing 5 changed files with 54 additions and 105 deletions.
41 changes: 11 additions & 30 deletions src/tests/end-to-end/binding_constraints/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,30 +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-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
Boost::unit_test_framework
model_antares
antares-solver-simulation
antares-solver-hydro
antares-solver-ts-generator
Antares::tests::in-memory-study)
47 changes: 12 additions & 35 deletions src/tests/end-to-end/simple_study/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,35 +1,12 @@
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
${Boost_UNIT_TEST_FRAMEWORK_LIBRARY}
Antares::tests::in-memory-study)
14 changes: 14 additions & 0 deletions src/tests/macros.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
function(add_boost_test)
set(options "")
set(oneValueArgs)
set(multiValueArgs SRC LIBS)
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)
add_test(NAME ${TEST_NAME} COMMAND ${TEST_NAME})
set_property(TEST ${TEST_NAME} PROPERTY LABELS unit)
endfunction()
34 changes: 10 additions & 24 deletions src/tests/src/api_internal/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,28 +1,14 @@
set(EXECUTABLE_NAME test-api)
add_executable(${EXECUTABLE_NAME})
include(${CMAKE_SOURCE_DIR}/tests/macros.cmake)

target_sources(${EXECUTABLE_NAME}
PRIVATE
test_api.cpp
)
add_boost_test(test-api
SRC test_api.cpp
LIBS
Boost::unit_test_framework
Antares::solver_api
Antares::tests::in-memory-study
test_utils_unit)

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}
target_include_directories(test-api
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)
$<TARGET_PROPERTY:Antares::solver_api,INCLUDE_DIRECTORIES>)
23 changes: 7 additions & 16 deletions src/tests/src/libs/antares/antlr4-interface/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,20 +1,11 @@
include(${CMAKE_SOURCE_DIR}/tests/macros.cmake)

find_package(antlr4-runtime CONFIG REQUIRED)
Set(SRCS test_antlr_interface.cpp
)
add_boost_test(antlr-interface-test
SRC test_antlr_interface.cpp
LIBS
antlr-interface)

set(execname "antlr-interface-test")
add_executable(${execname} ${SRCS})
target_link_libraries(${execname}
PRIVATE
antlr-interface
Boost::unit_test_framework
)


target_include_directories(${execname}
target_include_directories(antlr-interface-test
PRIVATE
${ANTLR4_INCLUDE_DIR})
add_test(NAME antlr-interface COMMAND ${execname})

set_tests_properties(antlr-interface PROPERTIES LABELS unit)
${ANTLR4_INCLUDE_DIR})

0 comments on commit e0b7168

Please sign in to comment.