mirror of
https://github.com/Naios/continuable.git
synced 2025-12-06 16:56:44 +08:00
* Can be used to specialize the asynchronous control flow
on immediate available asynchronous results mostly returned by:
- make_ready_continuable
- make_exceptional_continuable
* Usable to avoid longer unnecessary synchronous callback nestings.
* cti::query_arg_t was renamed into cti::unpack_arg_t.
* The continuation overload nowreturns result<Args...> rather
than std::tuple<Args...>.
* Add is_ready optimizations to make_exceptional_continuable.
116 lines
3.9 KiB
CMake
116 lines
3.9 KiB
CMake
add_library(test-continuable-base STATIC
|
|
${CMAKE_CURRENT_LIST_DIR}/test-continuable.hpp
|
|
${CMAKE_CURRENT_LIST_DIR}/test-continuable.cpp)
|
|
|
|
target_include_directories(test-continuable-base
|
|
PUBLIC
|
|
${CMAKE_CURRENT_LIST_DIR})
|
|
|
|
target_link_libraries(test-continuable-base
|
|
PUBLIC
|
|
gtest
|
|
gtest-main
|
|
continuable
|
|
continuable-features-flags
|
|
continuable-features-warnings
|
|
continuable-features-noexcept)
|
|
|
|
add_executable(test-continuable-single
|
|
${CMAKE_CURRENT_LIST_DIR}/single/test-continuable-promise.cpp
|
|
${CMAKE_CURRENT_LIST_DIR}/single/test-continuable-connection-noinst
|
|
${CMAKE_CURRENT_LIST_DIR}/single/test-continuable-forward-decl.cpp
|
|
${CMAKE_CURRENT_LIST_DIR}/single/test-continuable-flat-variant.cpp
|
|
${CMAKE_CURRENT_LIST_DIR}/single/test-continuable-result.cpp
|
|
${CMAKE_CURRENT_LIST_DIR}/single/test-continuable-ready.cpp
|
|
${CMAKE_CURRENT_LIST_DIR}/single/test-continuable-promisify.cpp
|
|
${CMAKE_CURRENT_LIST_DIR}/single/test-continuable-erasure.cpp
|
|
${CMAKE_CURRENT_LIST_DIR}/single/test-continuable-traverse.cpp
|
|
${CMAKE_CURRENT_LIST_DIR}/single/test-continuable-traverse-async.cpp)
|
|
|
|
target_link_libraries(test-continuable-single
|
|
PUBLIC
|
|
test-continuable-base)
|
|
|
|
target_include_directories(test-continuable-single
|
|
PUBLIC
|
|
${CMAKE_CURRENT_LIST_DIR}/single)
|
|
|
|
add_test(
|
|
NAME continuable-unit-tests-single
|
|
COMMAND test-continuable-single)
|
|
|
|
if (CTI_CONTINUABLE_WITH_LIGHT_TESTS)
|
|
set(STEP_RANGE 0)
|
|
else()
|
|
set(STEP_RANGE 4)
|
|
endif()
|
|
|
|
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
|
|
${CMAKE_CURRENT_LIST_DIR}/multi/test-continuable-base-errors.cpp
|
|
${CMAKE_CURRENT_LIST_DIR}/multi/test-continuable-base-partial.cpp
|
|
${CMAKE_CURRENT_LIST_DIR}/multi/test-continuable-base-multipath.cpp
|
|
${CMAKE_CURRENT_LIST_DIR}/multi/test-continuable-base-executors.cpp
|
|
${CMAKE_CURRENT_LIST_DIR}/multi/test-continuable-connection-all-seq-ag-1.cpp
|
|
${CMAKE_CURRENT_LIST_DIR}/multi/test-continuable-connection-all-seq-ag-2.cpp
|
|
${CMAKE_CURRENT_LIST_DIR}/multi/test-continuable-connection-all-seq-op.cpp
|
|
${CMAKE_CURRENT_LIST_DIR}/multi/test-continuable-connection-all.cpp
|
|
${CMAKE_CURRENT_LIST_DIR}/multi/test-continuable-connection-any.cpp
|
|
${CMAKE_CURRENT_LIST_DIR}/multi/test-continuable-connection-seq.cpp
|
|
${CMAKE_CURRENT_LIST_DIR}/multi/test-continuable-operations-async.cpp
|
|
${CMAKE_CURRENT_LIST_DIR}/multi/test-continuable-operations-loop.cpp
|
|
${CMAKE_CURRENT_LIST_DIR}/multi/test-continuable-operations-split.cpp
|
|
${CMAKE_CURRENT_LIST_DIR}/multi/test-continuable-erasure.cpp
|
|
${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)
|
|
|
|
target_include_directories(${PROJECT_NAME}
|
|
PUBLIC
|
|
${CMAKE_CURRENT_LIST_DIR}
|
|
${CMAKE_CURRENT_LIST_DIR}/multi)
|
|
|
|
target_compile_definitions(${PROJECT_NAME}
|
|
PUBLIC
|
|
-DUNIT_TEST_STEP=${STEP})
|
|
|
|
add_test(
|
|
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})
|