diff --git a/include/continuable/continuable-primitives.hpp b/include/continuable/continuable-primitives.hpp index fb7cb82..dad58b9 100644 --- a/include/continuable/continuable-primitives.hpp +++ b/include/continuable/continuable-primitives.hpp @@ -46,19 +46,6 @@ namespace cti { /// bool operator() (cti::is_ready_arg_t) const; /// std::tuple operator() (cti::query_arg_t); /// }; -/// template -/// struct continuation { -/// template -/// void operator() (callback); -/// bool operator() (cti::is_ready_arg_t) const; -/// T operator() (cti::query_arg_t); -/// }; -/// template<> -/// struct continuation { -/// void operator() (callback<>); -/// bool operator() (cti::is_ready_arg_t) const; -/// void operator() (cti::query_arg_t); -/// }; /// ``` /// ```cpp /// template diff --git a/test/unit-test/CMakeLists.txt b/test/unit-test/CMakeLists.txt index 1307fd9..51c0394 100644 --- a/test/unit-test/CMakeLists.txt +++ b/test/unit-test/CMakeLists.txt @@ -41,11 +41,7 @@ else() set(STEP_RANGE 4) endif() -foreach(STEP RANGE ${STEP_RANGE}) - set(PROJECT_NAME test-continuable-multi-${STEP}) - set(TEST_NAME continuable-unit-tests-multi-${STEP}) - - add_executable(${PROJECT_NAME} +set(TEST_SOURCES ${CMAKE_CURRENT_LIST_DIR}/multi/test-continuable-await.cpp ${CMAKE_CURRENT_LIST_DIR}/multi/test-continuable-base-chaining.cpp ${CMAKE_CURRENT_LIST_DIR}/multi/test-continuable-base-destruct.cpp @@ -62,6 +58,12 @@ foreach(STEP RANGE ${STEP_RANGE}) ${CMAKE_CURRENT_LIST_DIR}/multi/test-continuable-regression.cpp ${CMAKE_CURRENT_LIST_DIR}/multi/test-continuable-transforms.cpp) +foreach(STEP RANGE ${STEP_RANGE}) + set(PROJECT_NAME test-continuable-multi-${STEP}) + set(TEST_NAME continuable-unit-tests-multi-${STEP}) + + add_executable(${PROJECT_NAME} ${TEST_SOURCES}) + target_link_libraries(${PROJECT_NAME} PUBLIC test-continuable-base) @@ -79,3 +81,27 @@ foreach(STEP RANGE ${STEP_RANGE}) NAME ${TEST_NAME} COMMAND ${PROJECT_NAME}) endforeach() + +# The ready tests +set(PROJECT_NAME test-continuable-multi-ready) +set(TEST_NAME continuable-unit-tests-multi-ready) + +add_executable(${PROJECT_NAME} ${TEST_SOURCES}) + +target_link_libraries(${PROJECT_NAME} + PUBLIC + test-continuable-base) + +target_include_directories(${PROJECT_NAME} + PUBLIC + ${CMAKE_CURRENT_LIST_DIR} + ${CMAKE_CURRENT_LIST_DIR}/multi) + +target_compile_definitions(${PROJECT_NAME} + PUBLIC + -DUNIT_TEST_STEP=0 + -DUNIT_TEST_READY_CONTINUABLES) + +add_test( + NAME ${TEST_NAME} + COMMAND ${PROJECT_NAME}) diff --git a/test/unit-test/test-continuable.hpp b/test/unit-test/test-continuable.hpp index afc6dd8..2a0ca4c 100644 --- a/test/unit-test/test-continuable.hpp +++ b/test/unit-test/test-continuable.hpp @@ -77,11 +77,15 @@ public: template auto supply(Args&&... args) { +#ifdef UNIT_TEST_READY_CONTINUABLES + return cti::make_ready_continuable(std::forward(args)...); +#else identity...> arg_types; auto hint_types = to_hint(arg_types); return this->make(arg_types, hint_types, supplier_of(std::forward(args)...)); +#endif // UNIT_TEST_READY_CONTINUABLES } template >