Split the unit test type instantiations for reducing memory usage

This commit is contained in:
Denis Blank 2017-03-01 13:50:51 +01:00
parent 17ad6d3bc1
commit 52e62ccbf4
3 changed files with 37 additions and 21 deletions

View File

@ -1,4 +1,7 @@
add_executable(test-playground
${CMAKE_SOURCE_DIR}/include/continuable/continuable.hpp
${CMAKE_SOURCE_DIR}/include/continuable/continuable-base.hpp
${CMAKE_SOURCE_DIR}/include/continuable/continuable-testing.hpp
${CMAKE_CURRENT_LIST_DIR}/test-playground.cpp)
target_link_libraries(test-playground

View File

@ -1,19 +1,26 @@
add_executable(test-continuable
${CMAKE_SOURCE_DIR}/include/continuable/continuable.hpp
${CMAKE_SOURCE_DIR}/include/continuable/continuable-base.hpp
${CMAKE_SOURCE_DIR}/include/continuable/continuable-testing.hpp
${CMAKE_CURRENT_LIST_DIR}/test-continuable.hpp
${CMAKE_CURRENT_LIST_DIR}/test-continuable-base.cpp
${CMAKE_CURRENT_LIST_DIR}/test-continuable-connection-all.cpp
${CMAKE_CURRENT_LIST_DIR}/test-continuable-connection-any.cpp
${CMAKE_CURRENT_LIST_DIR}/test-continuable-connection-seq.cpp
${CMAKE_CURRENT_LIST_DIR}/test-continuable-erasure.cpp
${CMAKE_CURRENT_LIST_DIR}/test-continuable-recursion.cpp)
foreach(STEP RANGE 5)
set(PROJECT_NAME test-continuable-${STEP})
set(TEST_NAME continuable-unit-tests-${STEP})
target_link_libraries(test-continuable
PRIVATE
gtest-main
continuable)
add_executable(${PROJECT_NAME}
${CMAKE_CURRENT_LIST_DIR}/test-continuable.hpp
${CMAKE_CURRENT_LIST_DIR}/test-continuable-base.cpp
${CMAKE_CURRENT_LIST_DIR}/test-continuable-connection-all.cpp
${CMAKE_CURRENT_LIST_DIR}/test-continuable-connection-any.cpp
${CMAKE_CURRENT_LIST_DIR}/test-continuable-connection-seq.cpp
${CMAKE_CURRENT_LIST_DIR}/test-continuable-erasure.cpp
${CMAKE_CURRENT_LIST_DIR}/test-continuable-recursion.cpp)
add_test(NAME continuable-unit-tests
COMMAND test-continuable)
target_link_libraries(${PROJECT_NAME}
PRIVATE
gtest-main
continuable)
target_compile_definitions(${PROJECT_NAME}
PUBLIC
-DUNIT_TEST_STEP=${STEP})
add_test(
NAME ${TEST_NAME}
COMMAND ${PROJECT_NAME})
endforeach()

View File

@ -148,20 +148,26 @@ template <typename Provider> struct provide_continuation_seq_right {
// Feel free to uncomment more tests, however this will increase the
// build time significantly.
using single_types = ::testing::Types<
#if UNIT_TEST_STEP == 1
provide_copyable,
// provide_unique,
// provide_copyable_erasure,
provide_unique_erasure,
provide_unique_erasure
#elif UNIT_TEST_STEP == 2
// Some instantiations out commented for compilation speed reasons
// provide_continuation_and_left<provide_copyable>,
provide_continuation_and_left<provide_unique>,
provide_continuation_and_left<provide_unique>
// provide_continuation_and_left<provide_copyable_erasure>,
// provide_continuation_and_left<provide_unique_erasure>,
// provide_continuation_and_right<provide_copyable>,
provide_continuation_and_right<provide_unique>,
#elif UNIT_TEST_STEP == 3
provide_continuation_and_right<provide_unique>
// provide_continuation_and_left<provide_copyable_erasure>,
// provide_continuation_and_left<provide_unique_erasure>
#elif UNIT_TEST_STEP == 4
provide_continuation_and_left<provide_unique_erasure>
#elif UNIT_TEST_STEP == 5
provide_continuation_seq_right<provide_unique>
#endif
>;
// clang-format on