From 52e62ccbf447708034fb267712f0def824dfe437 Mon Sep 17 00:00:00 2001 From: Denis Blank Date: Wed, 1 Mar 2017 13:50:51 +0100 Subject: [PATCH] Split the unit test type instantiations for reducing memory usage --- test/playground/CMakeLists.txt | 3 +++ test/unit-test/CMakeLists.txt | 41 +++++++++++++++++------------ test/unit-test/test-continuable.hpp | 14 +++++++--- 3 files changed, 37 insertions(+), 21 deletions(-) diff --git a/test/playground/CMakeLists.txt b/test/playground/CMakeLists.txt index 461b71c..725be13 100644 --- a/test/playground/CMakeLists.txt +++ b/test/playground/CMakeLists.txt @@ -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 diff --git a/test/unit-test/CMakeLists.txt b/test/unit-test/CMakeLists.txt index 95dc8ff..335f2d6 100644 --- a/test/unit-test/CMakeLists.txt +++ b/test/unit-test/CMakeLists.txt @@ -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() diff --git a/test/unit-test/test-continuable.hpp b/test/unit-test/test-continuable.hpp index 4c42b20..28afa23 100644 --- a/test/unit-test/test-continuable.hpp +++ b/test/unit-test/test-continuable.hpp @@ -148,20 +148,26 @@ template 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_continuation_and_left, + provide_continuation_and_left // provide_continuation_and_left, // provide_continuation_and_left, // provide_continuation_and_right, - provide_continuation_and_right, +#elif UNIT_TEST_STEP == 3 + provide_continuation_and_right // provide_continuation_and_left, - // provide_continuation_and_left +#elif UNIT_TEST_STEP == 4 + provide_continuation_and_left +#elif UNIT_TEST_STEP == 5 provide_continuation_seq_right +#endif >; // clang-format on